OSDN Git Service

implement rendering queue
authoro_ggy <o_ggy@users.sourceforge.jp>
Fri, 4 Mar 2011 05:21:45 +0000 (14:21 +0900)
committero_ggy <o_ggy@users.sourceforge.jp>
Fri, 4 Mar 2011 05:21:45 +0000 (14:21 +0900)
55 files changed:
TODO.txt
moflib-1.0/lib/Debug/moflib.lib
moflib-1.0/lib/Debug/moflib.pdb
moflib-1.0/src/mof/VertexBuffer.hpp
moflib-1.0/src/mof/script/CommandSet.hpp
moflib-1.0/src/mof/script/Environment.cpp
moflib-1.0/src/mof/script/Environment.hpp
moflib-1.0/src/mof/script/ObjectData.hpp
moflib-1.0/src/mof/script/lua_state.cpp
moflib-1.0/src/mof/script/rendering_packet.hpp [new file with mode: 0644]
saisei-1.0/resource/data/armor.csv [deleted file]
saisei-1.0/resource/data/dideal.csv [deleted file]
saisei-1.0/resource/data/effect/flame.csv [deleted file]
saisei-1.0/resource/data/effect/ice.csv [deleted file]
saisei-1.0/resource/data/effect/shock.csv [deleted file]
saisei-1.0/resource/data/effect/vol.csv [deleted file]
saisei-1.0/resource/data/monster.action.csv [deleted file]
saisei-1.0/resource/data/monster.csv [deleted file]
saisei-1.0/resource/data/monster.type.csv [deleted file]
saisei-1.0/resource/data/monster.unit.csv [deleted file]
saisei-1.0/resource/data/motion/ap.csv [deleted file]
saisei-1.0/resource/data/motion/common/aidling.csv [deleted file]
saisei-1.0/resource/data/motion/common/attack.csv [deleted file]
saisei-1.0/resource/data/motion/common/special.csv [deleted file]
saisei-1.0/resource/data/motion/damage.csv [deleted file]
saisei-1.0/resource/data/motion/explosion.csv [deleted file]
saisei-1.0/resource/data/motion/heel.csv [deleted file]
saisei-1.0/resource/data/motion/hero/aidling.csv [deleted file]
saisei-1.0/resource/data/motion/icicle.csv [deleted file]
saisei-1.0/resource/data/motion/rh/aidling.csv [deleted file]
saisei-1.0/resource/data/motion/rh/attack.csv [deleted file]
saisei-1.0/resource/data/motion/shock.csv [deleted file]
saisei-1.0/resource/data/motion/test.csv [deleted file]
saisei-1.0/resource/data/motion/throw.csv [deleted file]
saisei-1.0/resource/data/potion.csv [deleted file]
saisei-1.0/resource/data/weapon.csv [deleted file]
saisei-1.0/resource/image/Thumbs.db
saisei-1.0/resource/image/area/Thumbs.db
saisei-1.0/resource/image/battler/Thumbs.db
saisei-1.0/resource/image/battler/src/Thumbs.db
saisei-1.0/resource/image/shop/Thumbs.db
saisei-1.0/resource/inputLog.txt [deleted file]
saisei-1.0/resource/script/effect.lua
saisei-1.0/resource/script/effect_test.lua
saisei-1.0/resource/script/land_menu.lua
saisei-1.0/resource/script/main_menu.lua
saisei-1.0/resource/script/marcket_menu.lua
saisei-1.0/resource/script/moflib.lua
saisei-1.0/resource/script/service_menu.lua
saisei-1.0/resource/script/shop_menu_test.lua
saisei-1.0/resource/script/stage_menu.lua
saisei-1.0/resource/script/world_menu.lua
saisei-1.0/src/CMakeLists.txt
saisei-1.0/src/script/MyEnvironment.cpp
saisei-1.0/src/script/MyEnvironment.hpp

index b267dc2..0a572a1 100644 (file)
--- a/TODO.txt
+++ b/TODO.txt
@@ -12,10 +12,9 @@ PART 10
 \81¡\82»\82Ì\91¼
        \83T\83E\83\93\83h\95Ò\8fW\83c\81[\83\8b\82Ì\8dì\90¬
        \83e\83L\83X\83g\82Ì\8dX\90V(\83\81\83j\83\85\81[\81j
-       multi_index(Object_Data)
        thread\82Ì\89ñ\8eû
        CWaveFile\81Ahirukoya\82ð\8aO\95\94\82É\8fo\82·
-       \83I\83u\83W\83F\83N\83g\82Ì\95`\89æpriority\90Ý\92è
+       \83I\83u\83W\83F\83N\83g\82Ì\95`\89æpriority\90Ý\92è(TODO vertex_buffer, particle)
 
 \81¡\83}\83b\83v\88Ú\93®
        \83}\83b\83v\88Ú\93®\95\9c\8a\88
index 06167d5..fe0ffc4 100644 (file)
Binary files a/moflib-1.0/lib/Debug/moflib.lib and b/moflib-1.0/lib/Debug/moflib.lib differ
index a6ef888..6ed78d3 100644 (file)
Binary files a/moflib-1.0/lib/Debug/moflib.pdb and b/moflib-1.0/lib/Debug/moflib.pdb differ
index e3e7d28..b8348b3 100644 (file)
@@ -1,6 +1,7 @@
 #pragma once
 #include <boost/scoped_ptr.hpp>
 #include "mof/VertexTypes.hpp"
+#include "mof/Drawable.hpp"
 #include <boost/utility.hpp>
 
 namespace mof{
@@ -8,7 +9,7 @@ namespace mof{
 
 
 template <class T>
-class VertexBuffer : boost::noncopyable{
+class VertexBuffer : public Drawable, boost::noncopyable{
        
        struct Impl;
        boost::scoped_ptr<Impl> m_pImpl;
@@ -24,7 +25,8 @@ public:
 
        int getLength() const;
        mof::PRIMITIVE_TYPE getPrimitiveType() const;
-       void draw() const;
+       virtual void draw() const;
+       virtual void setVisible(bool visible){/*TODO*/;}
 
 };
 
index 88606f1..0b09090 100644 (file)
@@ -36,34 +36,35 @@ namespace script
                 * @brief        \83\81\83b\83Z\81[\83W\83E\83B\83\93\83h\83E\82ð\90\90¬\82·\82é\82½\82ß\82Ì\83R\81[\83\8b\83o\83b\83N
                 * @return      \90\90¬\82µ\82½\83\81\83b\83Z\81[\83W\83E\83B\83\93\83h\83E
                 */
-               virtual int message_create(const mof::tstring& title, const GameData::entry_t& style) = 0;
+               virtual int message_create(const mof::tstring& title, const GameData::entry_t& style, int priority) = 0;
        
-               virtual int menu_create(const mof::tstring& title, const std::vector<mof::tstring>& items, const GameData::entry_t& style) = 0;
+               virtual int menu_create(const mof::tstring& title, const std::vector<mof::tstring>& items, const GameData::entry_t& style, int priority) = 0;
                
                virtual int vertex_buffer_create
                (
                        const mof::VertexXYZRHWCUV& front,
                        const mof::VertexXYZRHWCUV& back,
-                       const mof::Texture::ptr& texture
+                       const mof::Texture::ptr& texture,
+                       int priority
                ) = 0;
 
                virtual int sound_create(const mof::tstring& filepath) = 0;
                
                virtual void sound_play(int id) = 0;
                
-               virtual int picture_create(const mof::tstring& filepath) = 0;
+               virtual int picture_create(const mof::tstring& filepath, int priority) = 0;
                
                virtual int camera_create() = 0;
                
                virtual int particlegen_create() = 0;
                
-               virtual int solid_create(const mof::tstring& class_path) = 0;
+               virtual int solid_create(const mof::tstring& class_path, int priority) = 0;
                
                virtual int light_create(const mof::tstring& class_path) = 0;
                
                virtual void set_light(int id, int light_id) = 0;
                
-               virtual int board_create(const mof::tstring& filepath) = 0;
+               virtual int board_create(const mof::tstring& filepath, int priority) = 0;
 
                /** 
                 * @brief        \83\81\83b\83Z\81[\83W\83E\83B\83\93\83h\83E\82É\83y\81[\83W\82ð\92Ç\89Á\82·\82é\82½\82ß\82Ì\83R\81[\83\8b\83o\83b\83N
@@ -132,7 +133,7 @@ namespace script
                virtual mof::frame_t put_element(ElementType type, int x, int y) = 0;
                virtual void world_sleep() = 0;
                
-               virtual int land_region_create(int x, int y) = 0;
+               virtual int land_region_create(int x, int y, int priority) = 0;
                
                virtual ~CommandSet(){}
 
index a1e4cb6..d01eb4b 100644 (file)
@@ -12,6 +12,7 @@
 #include <mof/AmbientLight.hpp>
 #include <mof/DirectionalLight.hpp>
 #include <mof/script/ObjectData.hpp>
+#include <mof/script/rendering_packet.hpp>
 #include <mof/utilities.hpp>
 #include <boost/bind.hpp>
 #include <boost/format.hpp>
 #include <mof/sound/SoundDevice.hpp>
 #include <mof/sound/StaticSoundBuffer.hpp>
 #include <mof/sound/StreamSoundBuffer.hpp>
+#include <mof/script/rendering_packet.hpp>
 #include <vector>
+#include <set>
 #include <memory>
-       
+
+namespace
+{
+       using namespace boost::intrusive;
+       using namespace mof::script;
+       typedef member_hook<rendering_packet, rendering_packet::queue_hook_t, &rendering_packet::queue_hook_> rendering_queue_set_hook;
+       typedef member_hook<rendering_packet, rendering_packet::dead_hook_t, &rendering_packet::dead_hook_> rendering_dead_list_hook;
+}
+
 namespace mof
 {
 namespace script
@@ -41,9 +52,10 @@ namespace script
                        scheduler_.update();
                }
 
-               bool waiting_;///< Interpreterにコマンド実行の停止を伝えるための状態変数
-               mof::EventScheduler scheduler_; ///< キー入力待機など
+               bool waiting_;///< Interpreter\82É\83R\83}\83\93\83h\8eÀ\8ds\82Ì\92â\8e~\82ð\93`\82¦\82é\82½\82ß\82Ì\8fó\91Ô\95Ï\90\94
+               mof::EventScheduler scheduler_; ///< \83L\81[\93ü\97Í\91Ò\8b@\82È\82Ç
        };
+
 //{{{ Impl
        struct Environment::Impl
        {
@@ -51,14 +63,20 @@ namespace script
        std::shared_ptr<mof::InputReceiver> input_;
                std::vector<std::shared_ptr<mof::script::MessageData>> message_data_list_;
                std::vector<std::shared_ptr<mof::script::MenuData>> menu_data_list_;
-               std::vector<std::shared_ptr<mof::script::StaticSoundData>> static_sound_data_list_;
-               std::vector<std::shared_ptr<mof::script::SoundSourceData>> sound_source_data_list_;
                std::vector<mof::script::PictureData::ptr> picture_data_list_;
                std::vector<mof::script::BoardData::ptr> board_data_list_;
                std::vector<mof::script::ParticlegenData::ptr> particlegen_data_list_;
                std::vector<mof::script::SolidData::ptr> solid_data_list_;
-               std::vector<mof::script::CameraData::ptr> camera_data_list_;// 現在、要素数は1つだけ
                std::vector<mof::script::vertex_buffer_obj::ptr> vertex_buffer_obj_list_;
+
+               // rendering TODO \83N\83\89\83X\89»
+               boost::intrusive::multiset<mof::script::rendering_packet, rendering_queue_set_hook, constant_time_size<false>> rendering_queue_set_;
+               boost::intrusive::list<mof::script::rendering_packet, rendering_dead_list_hook, constant_time_size<false>> rendering_dead_list_;
+               std::vector<mof::script::rendering_packet> rendering_memory_pool_;
+
+               std::vector<std::shared_ptr<mof::script::StaticSoundData>> static_sound_data_list_;
+               std::vector<std::shared_ptr<mof::script::SoundSourceData>> sound_source_data_list_;
+               std::vector<mof::script::CameraData::ptr> camera_data_list_;// \8c»\8dÝ\81A\97v\91f\90\94\82Í1\82Â\82¾\82¯
                std::vector<mof::script::light_obj::ptr> light_obj_list_;
 
                std::map<std::string, int> property_map_;
@@ -73,6 +91,53 @@ namespace script
                )
                        : input_(input), texture_manager_(texture_manager), mesh_builder_manager_(mesh_builder_manager)
                {
+                       rendering_memory_pool_.reserve(1000);
+               }
+
+               template <typename T, typename K>
+               size_t add_obj
+               (
+                       std::vector<T>& objs,
+                       T& obj,
+                       std::shared_ptr<K> T::element_type::*drawable,
+                       int priority
+               )
+               {
+                       if (!rendering_dead_list_.empty()) {
+                               // \8eg\82Á\82Ä\82È\82¢\97v\91f\82ª\82 \82é\82È\82ç\81A\82»\82±\82©\82ç\89ñ\8eû
+                               int index = std::distance(&(rendering_memory_pool_.front()), &(rendering_dead_list_.front()));
+                               obj->r_packet_ = &rendering_memory_pool_[index];
+                               rendering_dead_list_.pop_front();
+                               rendering_memory_pool_[index] = rendering_packet((obj.get()->*drawable).get(), priority);
+                               rendering_queue_set_.insert(rendering_memory_pool_[index]);
+                       }
+                       else {
+                               // \90V\82½\82Épool\82É\8am\95Û
+                               rendering_memory_pool_.push_back(rendering_packet((obj.get()->*drawable).get(), priority));
+                               obj->r_packet_ = &(rendering_memory_pool_.back());
+                               rendering_queue_set_.insert(rendering_memory_pool_.back());
+                       }
+
+                       // \8dÄ\97\98\97p\82Å\82«\82é\97v\91f\82ª\82 \82ê\82Î\81A\82»\82ê\82ð\8eg\82¤
+                       // TODO \90ü\8c`\92T\8dõ\82µ\82Ä\82µ\82Ü\82¤\82Ì\82ª\8bC\82É\82È\82é\81E\81E\81E
+                       std::vector<T>::iterator itr = std::find_if(objs.begin(), objs.end(),
+                                       [drawable] (const T& obj)->bool {return !obj;});
+                       if (itr == objs.end()) {
+                               // \90V\8bK\92Ç\89Á
+                               objs.push_back(obj);
+                               return objs.size() - 1;
+                       }
+                       else {
+                               // \8eg\97p\82µ\82Ä\82¢\82È\82¢\97v\91f\82ª\8c©\82Â\82©\82Á\82½\82Ì\82Å\81A\82»\82ê\82ð\8eg\82¤
+                               *itr = obj;
+                               return std::distance(objs.begin(), itr);
+                       }
+               }
+
+               void dispose_render_node(rendering_packet* r_packet)
+               {
+                       r_packet->queue_hook_.unlink();
+                       rendering_dead_list_.push_back(*r_packet);
                }
 
        };
@@ -88,7 +153,7 @@ namespace script
        {
                impl_->property_map_["system.menu.move_cursor_sound"] = sound_create(_T("sound/move_cursor.wav"));
 
-               // カメラの初期化
+               // \83J\83\81\83\89\82Ì\8f\89\8aú\89»
                auto data = std::make_shared<CameraData>();
                data->camera_ = 
                        std::make_shared<Camera>
@@ -107,15 +172,16 @@ namespace script
        }
 //}}}
 //{{{ message_create
-       int Environment::message_create(const mof::tstring& title, const GameData::entry_t& style)
+       int Environment::message_create(const mof::tstring& title, const GameData::entry_t& style, int priority)
        {
                using namespace mof::script;
                using namespace boost;
 
                DEBUG_PRINT("message_create(" << title << ")");
+               // ***Data\82Í\8eÀ\91Ì\82Ì\94z\97ñ\82Å\8aÇ\97\9d\82µ\82½\82Ù\82¤\82ª\82æ\82¢
                std::shared_ptr<MessageData> data = std::shared_ptr<MessageData>(create_message_data(title, style).release());
-               impl_->message_data_list_.push_back(data);// TODO 再利用
-               return impl_->message_data_list_.size() -1;
+               data->view_ = data->frame_->getView();
+               return impl_->add_obj(impl_->message_data_list_, data, &MessageData::view_, priority);
        }
 //}}}  
 //{{{ massage_next
@@ -132,7 +198,8 @@ namespace script
        (
                const mof::tstring& title,
                const std::vector<mof::tstring>& items,
-               const GameData::entry_t& style
+               const GameData::entry_t& style,
+               int priority
        )
        {
                using namespace mof::script;
@@ -140,8 +207,8 @@ namespace script
 
                DEBUG_PRINT("menu_create(" << title << ")");
                std::shared_ptr<MenuData> data = std::shared_ptr<MenuData>(create_menu_data(title, items, style).release());
-               impl_->menu_data_list_.push_back(data);
-               return impl_->menu_data_list_.size() -1;
+               data->view_ = data->frame_->getView();
+               return impl_->add_obj(impl_->menu_data_list_, data, &MenuData::view_, priority);
        }
 //}}}  
 //{{{ menu_move_cursor
@@ -203,7 +270,7 @@ namespace script
        void Environment::wait_for_key(size_t id, mof::InputReceiver::Key key)
        {
                DEBUG_PRINT("wait_for_key(" << id << ", " << key << ")");
-               if (impl_->threads.end() == impl_->threads.find(id)) impl_->threads.insert(std::make_pair(id, thread_t()));// スレッドがなければつくる 
+               if (impl_->threads.end() == impl_->threads.find(id)) impl_->threads.insert(std::make_pair(id, thread_t()));// \83X\83\8c\83b\83h\82ª\82È\82¯\82ê\82Î\82Â\82­\82é 
                bool& waiting = impl_->threads[id].waiting_;
         impl_->threads[id].scheduler_.addEvent
         (
@@ -218,7 +285,7 @@ namespace script
        {
                DEBUG_PRINT("wait_frame(" << id << ", " << frame << ")");
                if (frame == 0)return;
-               if (impl_->threads.end() == impl_->threads.find(id)) impl_->threads.insert(std::make_pair(id, thread_t()));// スレッドがなければつくる 
+               if (impl_->threads.end() == impl_->threads.find(id)) impl_->threads.insert(std::make_pair(id, thread_t()));// \83X\83\8c\83b\83h\82ª\82È\82¯\82ê\82Î\82Â\82­\82é 
                bool& waiting = impl_->threads[id].waiting_;
                impl_->threads[id].scheduler_.addEvent(frame, [&waiting](){waiting = false;});// set waiting_ false after 'frame' 
                impl_->threads[id].waiting_ = true;
@@ -227,14 +294,14 @@ namespace script
 //{{{ get_last_key
        mof::InputReceiver::Key Environment::get_last_key()
        {
-               //TODO 複数同時をtimestampで識別
+               //TODO \95¡\90\94\93¯\8e\9e\82ðtimestamp\82Å\8e¯\95Ê
                DEBUG_PRINT("get_last_key()");
                for (int key = mof::InputReceiver::BEGIN + 1; key < mof::InputReceiver::ANY; ++key) {
                        if (impl_->input_->testKeyState(static_cast<mof::InputReceiver::Key>(key))) {
-                               return static_cast<mof::InputReceiver::Key>(key);// 最初に見つかったものを選ぶ
+                               return static_cast<mof::InputReceiver::Key>(key);// \8dÅ\8f\89\82É\8c©\82Â\82©\82Á\82½\82à\82Ì\82ð\91I\82Ô
                        }
                }
-               return mof::InputReceiver::END;// 何も入力されていないとき
+               return mof::InputReceiver::END;// \89½\82à\93ü\97Í\82³\82ê\82Ä\82¢\82È\82¢\82Æ\82«
        }
 //}}}
 //{{{ sound_create
@@ -285,7 +352,7 @@ namespace script
        }
 //}}}
 //{{{ picture_create
-       int Environment::picture_create(const mof::tstring& class_path)
+       int Environment::picture_create(const mof::tstring& class_path, int priority)
        {
                using namespace mof::script;
                using namespace boost;
@@ -296,7 +363,7 @@ namespace script
                split(splited_list, class_path, is_any_of("."));
                auto data = std::make_shared<PictureData>();
                if (splited_list.front() == "file") {
-                       // ファイルから読み込む
+                       // \83t\83@\83C\83\8b\82©\82ç\93Ç\82Ý\8d\9e\82Þ
                        splited_list.pop_front();
                        mof::tstring filepath = join(splited_list, ".");
                        data->sprite_ = 
@@ -308,10 +375,7 @@ namespace script
                } 
                data->sprite_->getRectangleCoordinatesStream() <<
                        data->texcoord_ref_.makeRef(Rectangle<float>(0, 0, 1, 1));
-
-               
-               impl_->picture_data_list_.push_back(data);// TODO 再利用
-               return impl_->picture_data_list_.size() -1;
+               return impl_->add_obj(impl_->picture_data_list_, data, &PictureData::sprite_, priority);
 
        }
 //}}}  
@@ -326,13 +390,13 @@ namespace script
                auto data = std::make_shared<ParticlegenData>();
                data->particlegen_ = std::make_shared<mof::particlegen>();
                data->particlegen_->world_transform() << data->position_ref_.makeRef(Matrix3D::createIdentity());
-               impl_->particlegen_data_list_.push_back(data);// TODO 再利用
+               impl_->particlegen_data_list_.push_back(data);// TODO \8dÄ\97\98\97p
                return impl_->particlegen_data_list_.size() -1;
 
        }
 //}}}  
 //{{{ solid_create
-       int Environment::solid_create(const mof::tstring& class_path)
+       int Environment::solid_create(const mof::tstring& class_path, int priority)
        {
                using namespace mof::script;
                using namespace boost;
@@ -343,7 +407,7 @@ namespace script
 
                auto data = std::make_shared<SolidData>();
                if (splited_list.front() == "file") {
-                       // ファイルから読み込む
+                       // \83t\83@\83C\83\8b\82©\82ç\93Ç\82Ý\8d\9e\82Þ
                        splited_list.pop_front();
                        mof::tstring filepath = join(splited_list, ".");
                        auto builder = impl_->mesh_builder_manager_->getResource(filepath);
@@ -356,12 +420,11 @@ namespace script
                data->solid_->world_transform() 
                        << data->size_ref_.makeRef(Matrix3D::createIdentity())
                        << data->position_ref_.makeRef(Matrix3D::createIdentity());
-               impl_->solid_data_list_.push_back(data);
-               return impl_->solid_data_list_.size() -1;
+               return impl_->add_obj(impl_->solid_data_list_, data, &SolidData::solid_, priority);
        }
 //}}}  
 //{{{ board_create
-       int Environment::board_create(const mof::tstring& class_path)
+       int Environment::board_create(const mof::tstring& class_path, int priority)
        {
                using namespace mof::script;
                using namespace boost;
@@ -372,16 +435,14 @@ namespace script
                split(splited_list, class_path, is_any_of("."));
                auto data = std::make_shared<BoardData>();
                if (splited_list.front() == "file") {
-                       // ファイルから読み込む
+                       // \83t\83@\83C\83\8b\82©\82ç\93Ç\82Ý\8d\9e\82Þ
                        splited_list.pop_front();
                        mof::tstring filepath = join(splited_list, ".");
                        data->board_ = std::make_shared<Board>();
                        data->board_->setTexture(impl_->texture_manager_->getResource(filepath));
                }
                
-               impl_->board_data_list_.push_back(data);// TODO 再利用
-               return impl_->board_data_list_.size() -1;
-
+               return impl_->add_obj(impl_->board_data_list_, data, &BoardData::board_, priority);
        }
 //}}}  
 //{{{ camera_create
@@ -417,7 +478,8 @@ namespace script
        (
                const mof::VertexXYZRHWCUV& front,
                const mof::VertexXYZRHWCUV& back,
-               const mof::Texture::ptr& texture
+               const mof::Texture::ptr& texture,
+               int priority
        )
        {
                using namespace mof::script;
@@ -427,8 +489,7 @@ namespace script
                std::shared_ptr<vertex_buffer_obj> obj = std::make_shared<vertex_buffer_obj>();
                obj->buffer_ = std::make_shared<mof::VertexBuffer<mof::VertexXYZRHWCUV>>(front, back, mof::PRIMITIVE_TYPE_TRIANGLELIST);
                obj->texture_ = texture;
-               impl_->vertex_buffer_obj_list_.push_back(obj);
-               return impl_->vertex_buffer_obj_list_.size() -1;
+               return impl_->add_obj(impl_->vertex_buffer_obj_list_, obj, &vertex_buffer_obj::buffer_, priority);
        }
 //}}}  
 // methods for common objects 
@@ -476,29 +537,45 @@ void Environment::dispose(int id, const mof::tstring& class_path)
                using namespace mof::script;
                using namespace boost;
 
+               DEBUG_PRINT("----- obj\8eg\97p\8fó\8bµ ------");
+               DEBUG_PRINT("message  = " << impl_->message_data_list_.size() );
+               DEBUG_PRINT("menu     = " << impl_->menu_data_list_.size() );
+               DEBUG_PRINT("picture  = " << impl_->picture_data_list_.size() );
+               DEBUG_PRINT("solid    = " << impl_->solid_data_list_.size() );
+               DEBUG_PRINT("board    = " << impl_->board_data_list_.size() );
+               DEBUG_PRINT("------------------------");
+               DEBUG_PRINT("rendring = " << impl_->rendering_memory_pool_.size() );
+
                if (class_path == "menu") {
                        DEBUG_PRINT("menu_dispose(" << id << ")");
+                       impl_->dispose_render_node(impl_->menu_data_list_.at(id)->r_packet_);
                        impl_->menu_data_list_.at(id).reset();
                } else if (class_path == "message") {
                        DEBUG_PRINT("message_dispose(" << id << ")");
+                       impl_->dispose_render_node(impl_->message_data_list_.at(id)->r_packet_);
                        impl_->message_data_list_.at(id).reset();
                } else if (class_path == "picture") {
                        DEBUG_PRINT("picture_dispose(" << id << ")");
+                       impl_->dispose_render_node(impl_->picture_data_list_.at(id)->r_packet_);
                        impl_->picture_data_list_.at(id).reset();
+               } else if (class_path == "picture") {
                } else if (class_path == "particlegen") {
                        DEBUG_PRINT("particlegen_dispose(" << id << ")");
                        impl_->particlegen_data_list_.at(id).reset();
                } else if (class_path == "solid") {
                        DEBUG_PRINT("solid_dispose(" << id << ")");
+                       impl_->dispose_render_node(impl_->solid_data_list_.at(id)->r_packet_);
                        impl_->solid_data_list_.at(id).reset();
                } else if (class_path == "board") {
                        DEBUG_PRINT("board_dispose(" << id << ")");
+                       impl_->dispose_render_node(impl_->board_data_list_.at(id)->r_packet_);
                        impl_->board_data_list_.at(id).reset();
                } else if (class_path == "sound") {
                        DEBUG_PRINT("sound_dispose(" << id << ")");
                        impl_->sound_source_data_list_.at(id).reset();
                } else if (class_path == "vertex_buffer") {
                        DEBUG_PRINT("vertex_buffer_dispose(" << id << ")");
+                       impl_->dispose_render_node(impl_->vertex_buffer_obj_list_.at(id)->r_packet_);
                        impl_->vertex_buffer_obj_list_.at(id).reset();
                } else if (class_path == "light") {
                        DEBUG_PRINT("light_dispose(" << id << ")");
@@ -604,7 +681,7 @@ void Environment::dispose(int id, const mof::tstring& class_path)
                        mof::tstring target = splited_list[1];
                        if (type == "directional") {
                                auto light = reinterpret_cast<mof::DirectionalLight*>(p->light_.get());
-                               // TODO tweenを設定できるように
+                               // TODO tween\82ð\90Ý\92è\82Å\82«\82é\82æ\82¤\82É
                                if (target == "ambient") light->setAmbientColor(seq->value(0).toColorCode());
                                else if (target == "diffuse") light->setDiffuseColor(seq->value(0).toColorCode());
                                else throw std::logic_error("unknown target:" + target);
@@ -703,7 +780,7 @@ void Environment::dispose(int id, const mof::tstring& class_path)
                        DEBUG_PRINT(p->type_.size());
                        if (type == "directional") {
                                auto light = reinterpret_cast<mof::DirectionalLight*>(p->light_.get());
-                               // TODO tweenを設定できるように
+                               // TODO tween\82ð\90Ý\92è\82Å\82«\82é\82æ\82¤\82É
                                light->setDirection(seq);
                                return;
                        }
@@ -841,7 +918,9 @@ void Environment::dispose(int id, const mof::tstring& class_path)
                DEBUG_PRINT("set_light(" << id << "," << light_id << ")");      
 
                auto p = impl_->solid_data_list_.at(id);
-               p->light_ = impl_->light_obj_list_.at(light_id)->light_;
+               p->r_packet_->queue_hook_.unlink();// \88ê\92[\8aO\82µ\82Ä
+               p->r_packet_->light() = impl_->light_obj_list_.at(light_id)->light_;// \8f\91\82«\8a·\82¦\82Ä
+               impl_->rendering_queue_set_.insert(*p->r_packet_);// \82Ü\82½\92Ç\89Á
        }
 //}}}
 
@@ -881,7 +960,7 @@ void Environment::dispose(int id, const mof::tstring& class_path)
                foreach (auto& data, impl_->static_sound_data_list_) {
                        if (data) {
                                if (!data->sound_->is_playing()) {
-                                       data.reset();// 停止したサウンドは回収する
+                                       data.reset();// \92â\8e~\82µ\82½\83T\83E\83\93\83h\82Í\89ñ\8eû\82·\82é
                                        continue;
                                }
                                data->sound_->update(); 
@@ -903,9 +982,10 @@ void Environment::dispose(int id, const mof::tstring& class_path)
                        impl_->camera_data_list_.front()->camera_->getViewMatrix()
                );
        
+               /*
                foreach (auto data, impl_->solid_data_list_) {
                        if (data) {
-                               // ライトが設定されていれば、それを使う
+                               // \83\89\83C\83g\82ª\90Ý\92è\82³\82ê\82Ä\82¢\82ê\82Î\81A\82»\82ê\82ð\8eg\82¤
                                if (data->light_) {
                                        mof::GraphicsDevice::lightEnable(true);
                                        data->light_->setEnable(true);
@@ -915,7 +995,12 @@ void Environment::dispose(int id, const mof::tstring& class_path)
                        }
 
                }
+               */
+               foreach (auto r_packet, impl_->rendering_queue_set_) {
+                       r_packet.draw();
+               }
 
+               /*
                mof::GraphicsDevice::setWorldTransform(mof::Matrix3D());
                foreach (auto& obj, impl_->vertex_buffer_obj_list_) {
                        if (obj) {
@@ -924,14 +1009,18 @@ void Environment::dispose(int id, const mof::tstring& class_path)
                        }
 
                }
+               */
 
+               /*
                foreach (auto data, impl_->board_data_list_) {
                        if (data.get()) data->board_->draw();
                }
+               */
 
        
                mof::GraphicsDevice::setAlphaBlendingMode(mof::GraphicsDevice::BLENDING_MODE_ADD);
                mof::GraphicsDevice::setZBuffer(false);
+               /*
                foreach (auto& data, impl_->particlegen_data_list_) {
                        if (data) {
                                auto& list = data->particlegen_->drawables(); 
@@ -939,21 +1028,26 @@ void Environment::dispose(int id, const mof::tstring& class_path)
                        }
 
                }
+               */
                mof::GraphicsDevice::setZBuffer(true);
                mof::GraphicsDevice::setAlphaBlendingMode(mof::GraphicsDevice::BLENDING_MODE_ALPHA);
 
+               /*
                foreach (auto data, impl_->picture_data_list_) {
                        if (data.get()) data->sprite_->draw();
                }
+               */
 
 
+               /*
                foreach (auto data,  impl_->message_data_list_) {
                        if (data.get()) data->frame_->getView()->draw();
                }
                
                foreach (auto data, impl_->menu_data_list_) {
                        if (data.get()) data->frame_->getView()->draw();
-               }//TODO ソート
+               }//TODO \83\\81[\83g
+               */
        
                
        }
index 6b6c1bd..4d25bd1 100644 (file)
@@ -27,7 +27,7 @@ namespace script
 
                virtual ~Environment();
 
-               virtual int message_create(const mof::tstring& title, const GameData::entry_t& style);
+               virtual int message_create(const mof::tstring& title, const GameData::entry_t& style, int priority);
                
                virtual int message_next(int id, const tstring& text);
           
@@ -37,13 +37,14 @@ namespace script
                
                virtual void wait_frame(size_t id, size_t frame);
 
-               virtual int menu_create(const mof::tstring& title, const std::vector<mof::tstring>& items, const GameData::entry_t& style);
+               virtual int menu_create(const mof::tstring& title, const std::vector<mof::tstring>& items, const GameData::entry_t& style, int priority);
 
                virtual int vertex_buffer_create
                (
                        const mof::VertexXYZRHWCUV& front,
                        const mof::VertexXYZRHWCUV& back,
-                       const mof::Texture::ptr& texture
+                       const mof::Texture::ptr& texture,
+                       int priority
                );
 
                virtual int menu_move_cursor(int id, MoveDirection direction);
@@ -62,19 +63,19 @@ namespace script
 
                virtual void print_debug(const mof::tstring& message);
 
-               virtual int picture_create(const mof::tstring& filepath);
+               virtual int picture_create(const mof::tstring& filepath, int priority);
                
                virtual int camera_create();
                
                virtual int particlegen_create();
                
-               virtual int solid_create(const mof::tstring& class_path);
+               virtual int solid_create(const mof::tstring& class_path, int priority);
                
                virtual int light_create(const mof::tstring& class_path);
                
                virtual void set_light(int id, int light_id);
 
-               virtual int board_create(const mof::tstring& class_path);
+               virtual int board_create(const mof::tstring& class_path, int priority);
                
                // 共通のメソッド
                virtual int show(int id, const mof::tstring& class_path);
index 8a0a56c..6a04654 100644 (file)
@@ -26,24 +26,30 @@ namespace widget
        class Pager;
        class Menu;
        class Frame;
+       class WidgetView;
 }
        class SoundBuffer;
 
 namespace script
 {
+       class rendering_packet;
+
 //{{{ MessageData
                struct MessageData
                {
+                       std::shared_ptr<mof::widget::WidgetView> view_;// Drawer
                        std::shared_ptr<mof::widget::Pager> message_;
-                       std::shared_ptr<mof::widget::Frame> frame_;// Drawer
+                       std::shared_ptr<mof::widget::Frame> frame_;
+                       rendering_packet* r_packet_;
                };
 //}}}  
 //{{{ MenuData
                struct MenuData
                {
+                       std::shared_ptr<mof::widget::WidgetView> view_;// Drawer
                        std::shared_ptr<mof::widget::Menu> menu_;
-                       std::shared_ptr<mof::widget::Frame> frame_;// Drawer
-
+                       std::shared_ptr<mof::widget::Frame> frame_;
+                       rendering_packet* r_packet_;
                };
 //}}}
 //{{{ PictureData
@@ -52,6 +58,7 @@ namespace script
                        std::shared_ptr<mof::Sprite> sprite_;
                        ReferenceWrapper<Rectangle<float>> texcoord_ref_;
                        typedef std::shared_ptr<PictureData> ptr;
+                       rendering_packet* r_packet_;
                };
 //}}}  
 //{{{ vertex_buffer_obj
@@ -60,12 +67,14 @@ namespace script
                        std::shared_ptr<mof::VertexBuffer<VertexXYZRHWCUV>> buffer_;
                        mof::Texture::ptr texture_;
                        typedef std::shared_ptr<vertex_buffer_obj> ptr;
+                       rendering_packet* r_packet_;
                };
 //}}}
 //{{{ BoardData
                struct BoardData
                {
                        std::shared_ptr<mof::Board> board_;
+                       rendering_packet* r_packet_;
                        typedef std::shared_ptr<BoardData> ptr;
                };
 //}}}
@@ -80,10 +89,10 @@ namespace script
 //{{{ SolidData
                struct SolidData
                {
-                       mof::Graphics3D::ptr solid_;
+                       std::shared_ptr<mof::Graphics3D> solid_;
+                       rendering_packet* r_packet_;
                        ReferenceWrapper<Matrix3D> position_ref_;
                        ReferenceWrapper<Matrix3D> size_ref_;
-                       std::shared_ptr<mof::Light> light_;
                        typedef std::shared_ptr<SolidData> ptr;
                };
 //}}}  
index 89d63f9..b283322 100644 (file)
@@ -32,9 +32,9 @@ namespace script
        }
 //}}}
 //{{{ binders *
-       int message_create(const tstring& title, const tstring& style)
+       int message_create(const tstring& title, const tstring& style, int priority)
        { 
-               return lua_state::instance().command_set()->message_create(title, unpack_style(style));
+               return lua_state::instance().command_set()->message_create(title, unpack_style(style), priority);
        }
        int message_next(int id, const tstring& text){ return lua_state::instance().command_set()->message_next(id, text); }
        void wait_for_key(mof::InputReceiver::Key key)
@@ -55,8 +55,10 @@ namespace script
         if(!lua_isstring(l , 1))throw std::runtime_error("invalid call");
         if(!lua_istable(l , 2))throw std::runtime_error("invalid call");
         if(!lua_isstring(l , 3))throw std::runtime_error("invalid call");
+        if(!lua_isnumber(l , 4))throw std::runtime_error("invalid call");
         mof::tstring title = lua_tostring(l , 1);
         mof::tstring style = lua_tostring(l , 3);
+        int priority = lua_tonumber(l , 4);
     
         std::vector<mof::tstring> items;
         for (int i = 1 ; ; i++) {
@@ -70,7 +72,7 @@ namespace script
         lua_pop(l , n);
                if (items.empty()) items.push_back("aaa");
 
-               int id = lua_state::instance().command_set()->menu_create(title, items, unpack_style(style));
+               int id = lua_state::instance().command_set()->menu_create(title, items, unpack_style(style), priority);
                lua_pushnumber(l, id);
         return 1;
     } 
@@ -107,11 +109,11 @@ namespace script
 
        }
        //}}}
-       int picture_create(const mof::tstring& filepath){ return lua_state::instance().command_set()->picture_create(filepath); }
+       int picture_create(const mof::tstring& filepath, int priority){ return lua_state::instance().command_set()->picture_create(filepath, priority); }
        int camera_create(){ return lua_state::instance().command_set()->camera_create(); }
        void glue_print_debug(const mof::tstring& text){ return lua_state::instance().command_set()->print_debug(text); }
        int particlegen_create(){ return lua_state::instance().command_set()->particlegen_create(); }
-       int solid_create(const mof::tstring& path){ return lua_state::instance().command_set()->solid_create(path); }
+       int solid_create(const mof::tstring& path, int priority){ return lua_state::instance().command_set()->solid_create(path, priority); }
        //{{{ object_set_behavior
        int object_set_behavior(lua_State* l)
        {
@@ -210,8 +212,8 @@ namespace script
        void get_property(int id, const tstring& class_path){ lua_state::instance().command_set()->dispose(id, class_path); }
        int glue_put_element(mof::script::CommandSet::ElementType type, int x, int y) {return lua_state::instance().command_set()->put_element(type, x, y);}
        void glue_world_sleep() {lua_state::instance().command_set()->world_sleep();}
-       int glue_board_create(const mof::tstring& filepath){ return lua_state::instance().command_set()->board_create(filepath); }
-       int glue_land_region_create(int x, int y){ return lua_state::instance().command_set()->land_region_create(x, y); }
+       int glue_board_create(const mof::tstring& filepath, int priority){ return lua_state::instance().command_set()->board_create(filepath, priority); }
+       int glue_land_region_create(int x, int y, int priority){ return lua_state::instance().command_set()->land_region_create(x, y, priority); }
        int glue_light_create(const tstring& class_path){ return lua_state::instance().command_set()->light_create(class_path); }
        void glue_set_light(int id, int light_id){ lua_state::instance().command_set()->set_light(id, light_id); }
        //{{{ get_properties
diff --git a/moflib-1.0/src/mof/script/rendering_packet.hpp b/moflib-1.0/src/mof/script/rendering_packet.hpp
new file mode 100644 (file)
index 0000000..5254959
--- /dev/null
@@ -0,0 +1,75 @@
+#pragma once
+#include <mof/script/ObjectData.hpp>
+#include <boost/intrusive/set.hpp>
+#include <boost/intrusive/list.hpp>
+
+namespace mof
+{
+       class Drawable;
+
+namespace script
+{
+//{{{
+       // renderable
+       class rendering_packet
+       {
+               const mof::Drawable* drawable_;
+               std::shared_ptr<mof::Light> light_;
+               int priority_;     // \8f¬\82³\82¢\92ö\90æ\82É\95`\89æ\82³\82ê\82é
+               float z_order_;   // \8f¬\82³\82¢\92ö\90æ\82É\95`\89æ\82³\82ê\82é
+
+       public:
+               typedef boost::intrusive::set_member_hook<boost::intrusive::link_mode<boost::intrusive::auto_unlink>> queue_hook_t;
+               typedef boost::intrusive::list_member_hook<boost::intrusive::link_mode<boost::intrusive::auto_unlink>> dead_hook_t;
+               queue_hook_t queue_hook_;
+               dead_hook_t dead_hook_;
+
+               rendering_packet
+               (
+                       const mof::Drawable* drawable,
+                       int priority,
+                       float z_order = 0
+               )
+                       : drawable_(drawable),
+                         priority_(priority), z_order_(z_order)
+               {
+                       // \89½\82à\82µ\82È\82¢
+               }
+
+               inline bool operator <(const rendering_packet& packet) const
+               {
+                       return priority_ == packet.priority_ 
+                               ? z_order_ < packet.z_order_
+                               : priority_ < packet.priority_;
+               }
+                       
+               inline bool operator >(const rendering_packet& packet) const
+               {
+                       return priority_ == packet.priority_ 
+                               ? z_order_ > packet.z_order_
+                               : priority_ > packet.priority_;
+               }
+
+               inline void draw() const
+               {
+                       if (light_) {
+                               // \83\89\83C\83g\82ª\90Ý\92è\82³\82ê\82Ä\82¢\82ê\82Î\81A\82»\82ê\82ð\8eg\82¤
+                               mof::GraphicsDevice::lightEnable(true);
+                               light_->setEnable(true);
+                       }
+                       else mof::GraphicsDevice::lightEnable(false);
+                       
+                       drawable_->draw();
+               }
+
+               inline std::shared_ptr<mof::Light>& light()
+               {
+                       return light_;
+               }
+
+               // TODO z_oerder_
+
+       };
+//}}}
+}
+}
diff --git a/saisei-1.0/resource/data/armor.csv b/saisei-1.0/resource/data/armor.csv
deleted file mode 100644 (file)
index 8d4a042..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-"Name","Guard","Fire","Ice","Thunder","Grabity","Durability","Price"
-"\83{\83\8d\82«\82ê",1,0,0,0,0,0,1
-"\83\8c\83U\81[\83\8d\81[\83u",5,5,5,5,5,5,120
-"\83K\83\89\83N\83^\82æ\82ë\82¢",1,0,0,0,0,0,1
-"\83\8c\83U\81[\83A\81[\83}\81[",,,,,,,
-"\83X\83P\83C\83\8b\83\81\83C\83\8b",,,,,,,
-"\83`\83F\83C\83\93\83\81\83C\83\8b",,,,,,,
-"\83v\83\8c\81[\83g\83\81\83C\83\8b",,,,,,,
-"\8e¾\95\97\82Ì\83\8d\81[\83u",,,,,,,
-"\83A\83\8b\83e\83~\83X\83\8d\81[\83u",,,,,,,
-"\83h\83\89\83S\83\93\83\81\83C\83\8b",,,,,,,
-"\8fd\90í\8em\82Ì\82æ\82ë\82¢",,,,,,,
-"\96\82\96@\8bâ\82Ì\8aZ",,,,,,,
-"\89Î\97³\82Ì\8aZ",,,,,,,
-"\8cQ\89_\82Ì\8aZ",,,,,,,
-"\95X\89Í\82Ì\8aZ",,,,,,,
-"\83o\83\93\83f\83B\83b\83g\83A\81[\83}\81[",,,,,,,
diff --git a/saisei-1.0/resource/data/dideal.csv b/saisei-1.0/resource/data/dideal.csv
deleted file mode 100644 (file)
index ccd5ba5..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-"Name","Type","Effect","Durability","Target"
-"\83K\83\8b\83i\83N\83\8a\83t",0,20,5,20
-"\83{\83{",,,,
-"\83N\83@\83e\83B\81[\83X",,,,
-"\83V\83\93",,,,
-"\83f\83B\83A\83\93\83\80\81[",,,,
-"\83A\83X\83g\83\8d\83e\83C\83\93",,,,
-"\83\94\83@\83h\83D",,,,
-"\83v\83\8d\83g\83\8d\83\93",,,,
diff --git a/saisei-1.0/resource/data/effect/flame.csv b/saisei-1.0/resource/data/effect/flame.csv
deleted file mode 100644 (file)
index 01c12b4..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-"Object","Motion","Class","Texture","Delay","Loop"
-"fireball","data/motion/explosion.csv","Billboard","image/explosion.dds",20,
diff --git a/saisei-1.0/resource/data/effect/ice.csv b/saisei-1.0/resource/data/effect/ice.csv
deleted file mode 100644 (file)
index 4323580..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-"Object","Motion","Class","Texture","Delay","Loop"
-"icicle","data/motion/icicle.csv","model/ice.x","image/ice.bmp",20,
diff --git a/saisei-1.0/resource/data/effect/shock.csv b/saisei-1.0/resource/data/effect/shock.csv
deleted file mode 100644 (file)
index 5b15bd4..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-"Object","Motion","Class","Texture","Delay","Loop"
-"a","data/motion/shock.csv","Billboard","image/shock.dds",20,
diff --git a/saisei-1.0/resource/data/effect/vol.csv b/saisei-1.0/resource/data/effect/vol.csv
deleted file mode 100644 (file)
index b37520b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-"Object","Motion","Class","Texture","Delay","Loop"
-"rock","data/motion/throw.csv","model/stone.x",,20,
-"explosion","data/motion/explosion.csv","Billboard","image/explosion.dds",60,
diff --git a/saisei-1.0/resource/data/monster.action.csv b/saisei-1.0/resource/data/monster.action.csv
deleted file mode 100644 (file)
index cd1bccc..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-"Name","Type","Cost","Base","Coefficient","Attribute","Effect","Message"
-"\8eã\8dU\8c\82","\8dU\8c\82",2,0,100,,"data/effect/shock.csv","novalue"
-"\92\86\8dU\8c\82","\8dU\8c\82",3,0,150,,"data/effect/shock.csv","novalue"
-"\8b­\8dU\8c\82","\8dU\8c\82",4,0,200,,"data/effect/shock.csv","novalue"
-"\89Î\8eR\92e","\8dU\8c\82",5,20,0,"Fire","data/effect/vol.csv","\89Î\8eR\92e"
-"\96h\8cä",,,,,,,
diff --git a/saisei-1.0/resource/data/monster.csv b/saisei-1.0/resource/data/monster.csv
deleted file mode 100644 (file)
index 5acc232..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-"Name","Type","Color","Hp","Offense","Defense","Speed","Fire","Ice","Thunder","Gravity","AI","DirectAttack1","DirectAttack2","SpecialAttack1","SpecialAttack2"
-"\83\8a\81[\83\8b","\83\8a\81[\83\8b\8cn","FFFFFF",20,15,3,3,0,100,100,100,"\83U\83R\83^\83C\83v","\8eã\8dU\8c\82",,,
-"\83E\83b\83f\83B\81[","\83E\83b\83f\83B\81[\8cn","FFFFFF",10,5,3,3,100,100,100,100,"\83U\83R\83^\83C\83v","\8eã\8dU\8c\82",,,
-"\83R\83\93\83t\83\85\81[\83W\83\87\83\93\83X\83\89\83C\83\80","\83R\83\93\83t\83\85\81[\83W\83\87\83\93\83X\83\89\83C\83\80\8cn",,,,,,,,,,,,,,
-"\83}\83E\83X\83B\81[","\83}\83E\83X\83B\81[\8cn",,,,,,,,,,,,,,
-"\83k\83\89\81[\83k","\83k\83\89\81[\83k\8cn",,,,,,,,,,,,,,
-"\83\8d\83b\83L\81[","\83\8d\83b\83L\81[\8cn","FFFFFF",20,18,8,3,30,170,70,100,"\83U\83R\83^\83C\83v",,,"\89Î\8eR\92e",
-"\83N\83\89\83\80\83X\83l\83C\83\8b","\83N\83\89\83\80\83X\83l\83C\83\8b\8cn",,,,,,,,,,,,,,
-"\83v\83\89\83\93\83e\83B\81[","\83E\83b\83f\83B\81[\8cn",,,,,,,,,,,,,,
-"\83k\83\89\83k\83X","\83k\83\89\81[\83k\8cn",,,,,,,,,,,,,,
-"\83G\83\8c\83L\83k\83\89\81[\83k","\83k\83\89\81[\83k\8cn",,,,,,,,,,,,,,
-"\83o\83\8b\81[\83\93","\83R\83\93\83t\83\85\81[\83W\83\87\83\93\83X\83\89\83C\83\80\8cn",,,,,,,,,,,,,,
-"\83A\83L\83\8c\83X","\83\8a\81[\83\8b\8cn",,,,,,,,,,,,,,
-"\82Ù\82Ì\82¨\82Ì\83i\83}\83Y","\83k\83\89\81[\83k\8cn",,,,,,,,,,,,,,
-"\83}\83O\83}\83b\83L\83B\81[","\83\8d\83b\83L\81[\8cn",,,,,,,,,,,,,,
-"\83n\83\93\83O\83\89\81[","\83}\83E\83X\83B\81[\8cn",,,,,,,,,,,,,,
-"\83e\83\8b\83e\83\8b","\83R\83\93\83t\83\85\81[\83W\83\87\83\93\83X\83\89\83C\83\80\8cn",,,,,,,,,,,,,,
-"\83g\83\8c\83\93\83e\83B\81[","\83E\83b\83f\83B\81[\8cn",,,,,,,,,,,,,,
-"\83^\83C\83j\81[\83S\81[\83\8c\83\80","\83\8d\83b\83L\81[\8cn",,,,,,,,,,,,,,
-"\83O\83\89\83g\83\93","\83}\83E\83X\83B\81[\8cn",,,,,,,,,,,,,,
-"\83\8c\83b\83h\83h\83\8c\83C\83N","\83m\83_\83S\83\93\8cn",,,,,,,,,,,,,,
-"\83n\83\89\83y\83R\81[\83\8b","\83}\83E\83X\83B\81[\8cn",,,,,,,,,,,,,,
-"\83n\83\93\83O\83\8a\81[\83h\83b\83O","\83n\83\93\83O\83\8a\81[\83h\83b\83O\8cn","FFFFFF",120,30,10,6,100,100,100,100,"\83A\83^\83b\83J\81[","\8eã\8dU\8c\82",,,
-"\83X\83\8f\83\93\83p\83X","\83X\83\8f\83\93\83p\83X\8cn",,,,,,,,,,,,,,
-"\83\89\83~\83A\83\93\83n\81[\83s\81[","\83\89\83~\83A\83\93\83n\81[\83s\81[\8cn","FFFFFF",33,12,6,10,200,150,120,90,"\83U\83R\83^\83C\83v","\8eã\8dU\8c\82",,,
-"\83_\81[\83N\83h\83\89\83O\81[\83\93","\83_\81[\83N\83h\83\89\83O\81[\83\93\8cn",,,,,,,,,,,,,,
-"\83}\83\93\83h\83\89\83S\83\89","\83}\83\93\83h\83\89\83S\83\89\8cn","FFFFFF",60,30,20,10,180,150,50,100,"\83U\83R\83^\83C\83v","\92\86\8dU\8c\82",,,
-"\83m\83_\83S\83\93","\83m\83_\83S\83\93\8cn",,,,,,,,,,,,,,
-"\83g\83\8a\83P\83\89\83\8c\83b\83N\83X","\83m\83_\83S\83\93\8cn",,,,,,,,,,,,,,
-"\83o\81[\83j\83\93\83O\83c\83\8a\81[","\83o\81[\83j\83\93\83O\83c\83\8a\81[\8cn",,,,,,,,,,,,,,
-"\83O\83\8a\81[\83\93\83s\81[\83|\83b\83h","\83O\83\8a\81[\83\93\83s\81[\83|\83b\83h\8cn",,,,,,,,,,,,,,
-"\83W\83F\83m\83T\83C\83h\83n\81[\83v\81[\83\93","\83O\83\8a\81[\83\93\83s\81[\83|\83b\83h\8cn",,,,,,,,,,,,,,
-"\83K\83\8b\83\80","\83n\83\93\83O\83\8a\81[\83h\83b\83O\8cn",,,,,,,,,,,,,,
diff --git a/saisei-1.0/resource/data/monster.type.csv b/saisei-1.0/resource/data/monster.type.csv
deleted file mode 100644 (file)
index 5821575..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-"Name","Image","AidlingMotion","DirectAttack1Motion","DirectAttack2Motion","SpecialAttack1Motion","SpecialAttack2Motion"
-"\83\8a\81[\83\8b\8cn","riel.png","data/motion/common/aidling.csv","data/motion/common/attack.csv",,,
-"\83E\83b\83f\83B\81[\8cn",,,,,,
-"\83R\83\93\83t\83\85\81[\83W\83\87\83\93\83X\83\89\83C\83\80\8cn",,,,,,
-"\83}\83E\83X\83B\81[\8cn",,,,,,
-"\83k\83\89\81[\83k\8cn",,,,,,
-"\83\8d\83b\83L\81[\8cn","rock.png","data/motion/common/aidling.csv","data/motion/common/attack.csv",,"data/motion/common/special.csv",
-"\83N\83\89\83\80\83X\83l\83C\83\8b\8cn",,,,,,
-"\83E\83b\83f\83B\81[\8cn",,,,,,
-"\83m\83_\83S\83\93\8cn",,,,,,
-"\83n\83\93\83O\83\8a\81[\83h\83b\83O\8cn","hd.png","data/motion/common/aidling.csv","data/motion/common/attack.csv",,,
-"\83X\83\8f\83\93\83p\83X\8cn",,,,,,
-"\83\89\83~\83A\83\93\83n\81[\83s\81[\8cn","rh.png","data/motion/rh/aidling.csv","data/motion/rh/attack.csv",,,
-"\83_\81[\83N\83h\83\89\83O\81[\83\93\8cn",,,,,,
-"\83}\83\93\83h\83\89\83S\83\89\8cn","mdg.png","data/motion/common/aidling.csv","data/motion/common/attack.csv",,,
-"\83o\81[\83j\83\93\83O\83c\83\8a\81[\8cn",,,,,,
-"\83O\83\8a\81[\83\93\83s\81[\83|\83b\83h\8cn",,,,,,
diff --git a/saisei-1.0/resource/data/monster.unit.csv b/saisei-1.0/resource/data/monster.unit.csv
deleted file mode 100644 (file)
index 55e6ce3..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-"Name","Monster1","Monster2","Monster3"
-"Test","\83\8a\81[\83\8b","\83\8a\81[\83\8b","\83\8a\81[\83\8b"
diff --git a/saisei-1.0/resource/data/motion/ap.csv b/saisei-1.0/resource/data/motion/ap.csv
deleted file mode 100644 (file)
index 074b2f1..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ"
-1,0,0,,"FFE797",,,,,,,,,,
-3,0,-3,,,,,,,,,,,,
-6,0,-5,,,,,,,,,,,,
diff --git a/saisei-1.0/resource/data/motion/common/aidling.csv b/saisei-1.0/resource/data/motion/common/aidling.csv
deleted file mode 100644 (file)
index 60a3df5..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ","Signal"
-0,,,,,0,0,64,64,,,,,,,
-15,,,,,0,64,64,128,,,,,,,
-29,,,,,0,0,64,64,,,,,,,
diff --git a/saisei-1.0/resource/data/motion/common/attack.csv b/saisei-1.0/resource/data/motion/common/attack.csv
deleted file mode 100644 (file)
index 942b6b6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ","Signal"
-0,,,,,64,0,128,64,,,,,,,10
-10,,,,,64,64,128,128,,,,,,,
-20,,,,,64,128,128,192,,,,,,,
diff --git a/saisei-1.0/resource/data/motion/common/special.csv b/saisei-1.0/resource/data/motion/common/special.csv
deleted file mode 100644 (file)
index 7a08cd2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ","Signal"
-0,,,,,128,0,192,64,,,,,,,10
-10,,,,,128,64,192,128,,,,,,,
-20,,,,,128,128,192,192,,,,,,,
diff --git a/saisei-1.0/resource/data/motion/damage.csv b/saisei-1.0/resource/data/motion/damage.csv
deleted file mode 100644 (file)
index 2a6452d..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ"
-1,0,0,,"FFFFFF",,,,,,,,,,
-3,0,-3,,,,,,,,,,,,
-6,0,-5,,,,,,,,,,,,
-9,0,-3,,,,,,,,,,,,
-11,0,0,,,,,,,,,,,,
diff --git a/saisei-1.0/resource/data/motion/explosion.csv b/saisei-1.0/resource/data/motion/explosion.csv
deleted file mode 100644 (file)
index 096bae0..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ","Signal"
-0,1,0,1,,0,0,64,64,0.3,0.3,0.3,,,,0
-3,,,,,64,0,128,64,,,,,,,
-6,,,,,128,0,192,64,,,,,,,
-9,,,,,192,0,256,64,,,,,,,
-12,,,,,0,64,64,128,,,,,,,
-15,,,,,64,64,128,128,,,,,,,
-18,,,,,128,64,192,128,,,,,,,
-21,,,,,192,64,256,128,,,,,,,
-24,,,,,0,128,64,192,,,,,,,
-27,,,,,64,128,128,192,,,,,,,
-30,,,,,128,128,192,192,,,,,,,
-33,,,,,192,128,256,192,,,,,,,
-36,,,,,0,192,64,256,,,,,,,
-39,,,,,64,192,128,256,,,,,,,
-42,,,,,128,192,192,256,,,,,,,
-45,,,,,192,192,256,256,,,,,,,
diff --git a/saisei-1.0/resource/data/motion/heel.csv b/saisei-1.0/resource/data/motion/heel.csv
deleted file mode 100644 (file)
index eaadbf8..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ"
-1,0,0,,"90FF90",,,,,,,,,,
-3,0,-3,,,,,,,,,,,,
-6,0,-5,,,,,,,,,,,,
-9,0,-3,,,,,,,,,,,,
-11,0,0,,,,,,,,,,,,
diff --git a/saisei-1.0/resource/data/motion/hero/aidling.csv b/saisei-1.0/resource/data/motion/hero/aidling.csv
deleted file mode 100644 (file)
index 5f8f72d..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ"
-0,,,,,0,0,64,64,,,,,,
-15,,,,,0,64,64,128,,,,,,
-29,,,,,0,0,64,64,,,,,,
diff --git a/saisei-1.0/resource/data/motion/icicle.csv b/saisei-1.0/resource/data/motion/icicle.csv
deleted file mode 100644 (file)
index 40783f3..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ","Signal"
-0,0,-0.2,0,,,,,,0.3,0.3,0.3,,,,10
-10,0,0,0,,,,,,,,,,,,
-30,0,0,0,,,,,,,,,,,,
-40,0,-0.2,0,,,,,,,,,,,,
diff --git a/saisei-1.0/resource/data/motion/rh/aidling.csv b/saisei-1.0/resource/data/motion/rh/aidling.csv
deleted file mode 100644 (file)
index 724f5cc..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ"
-0,,,,,0,0,64,64,,,,,,
-10,,,,,0,64,64,128,,,,,,
-20,,,,,0,128,64,192,,,,,,
-29,,,,,0,0,64,64,,,,,,
diff --git a/saisei-1.0/resource/data/motion/rh/attack.csv b/saisei-1.0/resource/data/motion/rh/attack.csv
deleted file mode 100644 (file)
index a8b3c25..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ","Signal"
-0,,,,,64,0,128,64,,,,,,,10
-10,,,,,64,64,128,128,,,,,,,
-20,,,,,64,128,128,192,,,,,,,
-30,,,,,0,0,64,64,,,,,,,
diff --git a/saisei-1.0/resource/data/motion/shock.csv b/saisei-1.0/resource/data/motion/shock.csv
deleted file mode 100644 (file)
index 589481c..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ","Signal"
-0,1,0,0,,0,0,64,64,0.4,0.4,0.4,,,,0
-6,,,,,64,0,128,64,,,,,,,
-10,,,,,128,0,192,64,,,,,,,
-13,,,,,192,0,256,64,,,,,,,
-15,,,,,0,64,64,128,,,,,,,
-17,,,,,64,64,128,128,,,,,,,
-19,,,,,128,64,192,128,,,,,,,
-21,,,,,192,64,256,128,,,,,,,
diff --git a/saisei-1.0/resource/data/motion/test.csv b/saisei-1.0/resource/data/motion/test.csv
deleted file mode 100644 (file)
index f4741e6..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-"Name","Type","Color"
-"\83\8a\81[\83\8b","\83\8a\81[\83\8b\8cn","FFFFFF"
-"\83E\83b\83f\83B\81[","\83E\83b\83f\83B\81[\8cn","FFFFFF"
-"\83R\83\93\83t\83\85\81[\83W\83\87\83\93\83X\83\89\83C\83\80","\83R\83\93\83t\83\85\81[\83W\83\87\83\93\83X\83\89\83C\83\80\8cn",
-"\83}\83E\83X\83B\81[","\83}\83E\83X\83B\81[\8cn",
-"\83k\83\89\81[\83k","\83k\83\89\81[\83k\8cn",
diff --git a/saisei-1.0/resource/data/motion/throw.csv b/saisei-1.0/resource/data/motion/throw.csv
deleted file mode 100644 (file)
index 0ceb668..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-"KeyFrame","PositionX","PositionY","PositionZ","Color","Tux","Tuy","Tvx","Tvy","Width","Height","Depth","RotX","RotY","RotZ","Signal"
-0,0.1,0.1,0,,,,,,0.3,0.3,0.3,,,,
-6,0.25,0.3,0,,,,,,,,,,,,
-12,0.4,0.45,0,,,,,,,,,,,,
-18,0.55,0.5,0,,,,,,,,,,,,
-24,0.7,0.45,0,,,,,,,,,,,,
-30,0.85,0.3,0,,,,,,,,,,,,
-36,1,0.1,0,,,,,,0.3,0.3,0.3,,,,
-37,,,,,,,,,0,0,0,,,,
diff --git a/saisei-1.0/resource/data/potion.csv b/saisei-1.0/resource/data/potion.csv
deleted file mode 100644 (file)
index 28d1195..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-"Name","Type","Effect","Durability","Price"
-"\83R\83i\83\93\82Ì\8eÀ",0,20,5,20
-"\82­\82³\82ê\83|\81[\83V\83\87\83\93",0,1,0,1
-"\82¢\82Ì\82¿\82Ì\89Ê\8eÀ",0,70,1,40
-"\97ì\91ù",0,120,5,150
-"\90X\82Ì\8aï\90Õ",0,500,5,1000
-"\83O\83\8a\81[\83\93\83|\81[\83V\83\87\83\93",1,30,3,100
-"\83u\83\8b\81[\83|\81[\83V\83\87\83\93",1,60,3,250
-"\83z\83\8f\83C\83g\83|\81[\83V\83\87\83\93",1,90,3,1000
-"AP\83|\81[\83V\83\87\83\93",2,10,3,500
-"\83}\83i\83|\81[\83V\83\87\83\93",3,0,3,800
-"\83\8b\81[\83\93\83|\81[\83V\83\87\83\93",4,0,3,3000
-"\83~\83\89\83N\83\8b\83|\81[\83V\83\87\83\93",5,0,3,5000
diff --git a/saisei-1.0/resource/data/weapon.csv b/saisei-1.0/resource/data/weapon.csv
deleted file mode 100644 (file)
index 978b981..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-"Name","Type","Attack","Guard","Durability","Price","Attribute","\93X\83\8c\83x\83\8b","\91®\90«",
-"\83u\83\8d\81[\83h\83i\83C\83t",0,5,0,5,120,0,"\95\90\8aí\89®Lv1",,
-"\89º\8b\89\95º\8em\82Ì\8c\95",1,10,0,5,120,0,"\95\90\8aí\89®Lv1",,
-"\83c\83\94\83@\83C\83n\83\93\83_\81[",2,20,0,5,120,0,"\95\90\8aí\89®Lv1",,
-"\83V\83\87\81[\83g\83\\81[\83h",0,20,0,5,300,0,"\95\90\8aí\89®Lv1",,
-"\8bÈ\93\81",1,30,0,5,300,0,"\95\90\8aí\89®Lv1",,
-"\8eR\96Â\82è\82Ì\8c\95",2,50,0,5,300,0,"\95\90\8aí\89®Lv1",,
-"\83}\83\93\83S\81[\83V\83\85",0,20,5,5,450,0,"\95\90\8aí\89®Lv2",,
-"\8fã\8b\89\95º\8em\82Ì\8c\95",1,50,0,5,700,0,"\95\90\8aí\89®Lv2",,
-"\83\94\83@\83\8a\83A\83\93\83g\83\\81[\83h",1,60,0,7,1000,0,"\95\90\8aí\89®Lv2",,
-"\83A\83C\83V\83N\83\8b\83G\83b\83W",0,55,0,5,1500,2,,"\97â\8bC","\96\82\96@\8bâ\82Ì\92Z\93\81\81{\97â\8bC"
-"\96\82\96@\8bâ\82Ì\83_\83K\81[",0,65,0,5,1500,0,"\95\90\8aí\89®Lv2",,
-"\83\94\83@\83C\83X\83_\83K\81[",0,75,0,5,2300,0,"\95\90\8aí\89®Lv2",,
-"\83\8d\83C\83\84\83\8b\83K\81[\83h",1,90,0,5,1500,0,"\95\90\8aí\89®Lv3",,
-"\90¹\96ä\82Ì\96\82\8c\95",2,140,0,5,3000,0,"\95\90\8aí\89®Lv3",,
-"\8d\84\8c\95\83A\83\8c\83N\83T\83\93\83h\83\8d\83X",2,,,,,,,"\8fd\97Í",
-"\89ö\90l\93\81",2,,,,,,"\95\90\8aí\89®Lv2",,
-"\90_\96\82\82Ì\95ó\8c\95",1,,,,,,"\95\90\8aí\89®Lv3",,
-"\83T\83\93\83_\81[\83Z\83C\83o\81[",1,,,,,,,"\97\8b",
-"\83\8c\83\94\83@\83\93\83e\83C\83\93",2,,,,,,,"\89\8a",
-"\97³\96ä\82Ì\96\82\8c\95",2,,,,,,,"\89\8a",
-"\8f»\96ä\82Ì\96\82\8c\95",2,,,,,,,"\97â\8bC",
-"\93S\96ä\82Ì\96\82\8c\95",2,,,,,,,"\8fd\97Í",
-"\8e\87\96ä\82Ì\96\82\8c\95",2,,,,,,,"\97\8b",
-"\8eç\8cì\82Ì\92Z\8c\95",0,,,,,,"\95\90\8aí\89®Lv3",,
-"\96»\95{\82Ì\89\8a\8c\95",1,,,,,,,"\89\8a",
-"\94\9a\8dÓ\82Ì\8fd\8c\95",2,,,,,,,"\8fd\97Í",
-"\83K\83X\83g\83u\83\8a\83\93\83K\81[",1,,,,,,,"\97\8b",
-"\90_\98b\82Ì\8cä\8c\95",0,,,,,,,,
-"\83J\83^\83i\83u\83\8c\81[\83h",2,,,,,,,,
-"\83A\81[\83N\83X\83\8c\83C\83\84\81[",,,,,,,,,
-"\83\\81[\83h\83u\83\8c\83C\83J\81[",0,,,,,,,,
-"\83W\83F\83l\83V\83X\83\\81[\83h",1,,,,,,,,
-"\83h\83\89\83S\83\93\83g\83D\81[\83X",0,,,,,,,,
-"\90Ô\94M\82Ì\83i\83C\83t",,,,,,,,,
index d1315e0..d5bd62a 100644 (file)
Binary files a/saisei-1.0/resource/image/Thumbs.db and b/saisei-1.0/resource/image/Thumbs.db differ
index 0037410..e6f662d 100644 (file)
Binary files a/saisei-1.0/resource/image/area/Thumbs.db and b/saisei-1.0/resource/image/area/Thumbs.db differ
index 6ccdf38..0992a70 100644 (file)
Binary files a/saisei-1.0/resource/image/battler/Thumbs.db and b/saisei-1.0/resource/image/battler/Thumbs.db differ
index d70497f..60f3d5f 100644 (file)
Binary files a/saisei-1.0/resource/image/battler/src/Thumbs.db and b/saisei-1.0/resource/image/battler/src/Thumbs.db differ
index 9d29d88..c1aeb42 100644 (file)
Binary files a/saisei-1.0/resource/image/shop/Thumbs.db and b/saisei-1.0/resource/image/shop/Thumbs.db differ
diff --git a/saisei-1.0/resource/inputLog.txt b/saisei-1.0/resource/inputLog.txt
deleted file mode 100644 (file)
index a3d0f1a..0000000
+++ /dev/null
@@ -1,6009 +0,0 @@
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
index 5ce8d41..ec52494 100644 (file)
@@ -2,9 +2,9 @@ require("script/moflib");
 require('script/common')
 
 --{{{ forest_element
-function forest_element(x, y, z)
+function forest_element(x, y, z, priority)
        sound('sound/element.wav')
-       local b = Board:new('file.image/element.png')
+       local b = Board:new('file.image/element.png', priority)
        b:set_tween('position3', {[0] = {x, y + 0.5, z}, [90] = {x, y, z}})
        b:set_tween('texcoord', {[0] = {0, 1/8, 1/8, 2/8}})
        b:set_tween('color', {[0] = {1, 1, 1, 1}, [90] = {0, 1, 1, 1}})
@@ -14,9 +14,9 @@ function forest_element(x, y, z)
 end
 --}}}
 --{{{ earth_element
-function earth_element(x, y, z)
+function earth_element(x, y, z, priority)
        sound('sound/element.wav')
-       local b = Board:new('file.image/element.png')
+       local b = Board:new('file.image/element.png', priority)
        b:set_tween('position3', {[0] = {x, y + 0.5, z}, [90] = {x, y, z}})
        b:set_tween('texcoord', {[0] = {0, 2/8, 1/8, 3/8}})
        b:set_tween('color', {[0] = {1, 1, 1, 1}, [90] = {0, 1, 1, 1}})
@@ -26,9 +26,9 @@ function earth_element(x, y, z)
 end
 --}}}
 --{{{ water_element
-function water_element(x, y, z)
+function water_element(x, y, z, priority)
        sound('sound/element.wav')
-       local b = Board:new('file.image/element.png')
+       local b = Board:new('file.image/element.png', priority)
        b:set_tween('position3', {[0] = {x, y + 0.5, z}, [90] = {x, y, z}})
        b:set_tween('texcoord', {[0] = {0, 3/8, 1/8, 4/8}})
        b:set_tween('color', {[0] = {1, 1, 1, 1}, [90] = {0, 1, 1, 1}})
index 3dd136b..999cfb8 100644 (file)
@@ -8,8 +8,8 @@ function effect_test()
        camera:set_tween('eye', {[0] = {0, 0.8*1.5, -1.4*1.5}})
        camera:set_tween('lookat', {[0] = {0, 0, 0}})
 
-       local s = Solid:new('file.model/floor.x')
-       local human = Solid:new('file.model/human.x')
+       local s = Solid:new('file.model/floor.x', 1)
+       local human = Solid:new('file.model/human.x', 2)
 
        local world_light = Light:new('directional')
        world_light:set_tween('position3', 
index f2ba4df..3a1d384 100644 (file)
@@ -12,7 +12,6 @@ end
 --}}}
 --{{{ make_service_explanation
 function make_service_explanation(service)
-       print_debug(service)
        local syuzoku = 
                {{'ehves', tonumber(service.ehves)}, {'bolony', tonumber(service.bolony)}, {'stra', tonumber(service.stra)}}
        
@@ -31,7 +30,7 @@ end
 function land_menu(x, y)
 
        local answer = 0
-       local jem_text = text('', '<layout w="200" h="32" xalign="right" yalign="center">400JEM</layout>', '', FeedTween:new(0.05, 0.9, 0.3, 0.07))
+       local jem_text = text('', '<layout w="200" h="32" xalign="right" yalign="center">400JEM</layout>', 100, '', FeedTween:new(0.05, 0.9, 0.3, 0.07))
        
        local services = load_game_data('gamedata.area_service.' .. x .. '.' .. y)
        local area = load_game_data('gamedata.area_profile.' .. x .. '.' .. y)
@@ -41,10 +40,10 @@ function land_menu(x, y)
        end
        table.insert(items, '\83}\81[\83P\83b\83g')
 
-       local explanation_text = text('', make_service_explanation(services[1]), '', FeedTween:new(0.3, 0.7, 0.65, 0.1))
+       local explanation_text = text('', make_service_explanation(services[1]), 100, '', FeedTween:new(0.3, 0.7, 0.65, 0.1))
 
        while true do
-               answer = question(make_caption_text('Land Menu'), items, nil, FeedTween:new(0.3, 0.25, 0.65, 0.4), false, 
+               answer = question(make_caption_text('Land Menu'), items, 100, nil, FeedTween:new(0.3, 0.25, 0.65, 0.4), false, 
                        function (index)
                                -- \83T\81[\83r\83X\82Ì\90à\96¾\82ð\8dX\90V
                                if index == #services then 
index 105d699..3811ccd 100644 (file)
@@ -41,7 +41,7 @@ function question_attached(item_tween, explanation_text)
                end
        end
        explanation_text:next(make_shop_item_explanation(attached_items[1]))
-       return question('\8f\8a\8e\9d\83A\83C\83e\83\80(\8ec\82è0\83X\83\8d\83b\83g)', list, 'view=scroll', item_tween, false,
+       return question('\8f\8a\8e\9d\83A\83C\83e\83\80(\8ec\82è0\83X\83\8d\83b\83g)', list, 100, 'view=scroll', item_tween, false,
                function (index)        
                        explanation_text:next(make_shop_item_explanation(attached_items[index + 1]))
                end
@@ -60,7 +60,7 @@ function question_stored(item_tween, explanation_text)
                end
        end
        explanation_text:next(make_shop_item_explanation(stored_items[1]))
-       return question('\91q\8cÉ\83A\83C\83e\83\80', list, 'view=scroll', item_tween, false, 
+       return question('\91q\8cÉ\83A\83C\83e\83\80', list, 100, 'view=scroll', item_tween, false, 
                function (index)        
                        explanation_text:next(make_shop_item_explanation(stored_items[index + 1]))
                end
@@ -81,7 +81,7 @@ function question_relic(item_tween, explanation_text)
        end
        explanation_text:next(make_relic_explanation(relics[1]))
 
-       return question('\83\8c\83\8a\83b\83N', list, 'view=scroll', item_tween, false,
+       return question('\83\8c\83\8a\83b\83N', list, 100, 'view=scroll', item_tween, false,
                function (index)        
                        explanation_text:next(make_relic_explanation(relics[index + 1]))
                end
@@ -126,7 +126,7 @@ function question_setup_weapon(item_tween, explanation_text)
        end
        explanation_text:next(make_shop_item_explanation(weapon_items[1]))
        local style = 'view=scroll;disable=' .. join(disables, ',')
-       return question('\91\95\94õ\82·\82é\95\90\8aí\82ð\91I\91ð', list, style, item_tween, false,
+       return question('\91\95\94õ\82·\82é\95\90\8aí\82ð\91I\91ð', list, 100, style, item_tween, false,
                function (index)
                        explanation_text:next(make_shop_item_explanation(weapon_items[index + 1]))
                end)
@@ -170,7 +170,7 @@ function question_setup_armer(item_tween, explanation_text)
        end
        explanation_text:next(make_shop_item_explanation(armer_items[1]))
        local style = 'view=scroll;disable=' .. join(disables, ',')
-       return question('\91\95\94õ\82·\82é\96h\8bï\82ð\91I\91ð', list, style, item_tween, false, 
+       return question('\91\95\94õ\82·\82é\96h\8bï\82ð\91I\91ð', list, 100, style, item_tween, false, 
                function (index)
                        explanation_text:next(make_shop_item_explanation(armer_items[index + 1]))
                end)
@@ -210,7 +210,7 @@ function question_setup_item(item_tween, explanation_text)
        end
        local style = 'view=scroll;disable=' .. join(disables, ',')
        explanation_text:next(make_shop_item_explanation(items[1]))
-       return question('\8f\8a\8e\9d\82·\82é\83A\83C\83e\83\80\82ð\91I\91ð(\8ec\82è0\83X\83\8d\83b\83g)', list, style, item_tween, false,
+       return question('\8f\8a\8e\9d\82·\82é\83A\83C\83e\83\80\82ð\91I\91ð(\8ec\82è0\83X\83\8d\83b\83g)', list, 100, style, item_tween, false,
                function (index)
                        explanation_text:next(make_shop_item_explanation(items[index + 1]))
                end)
@@ -224,7 +224,7 @@ function question_setup_ideal(item_tween, explanation_text)
                table.insert(list, make_ideal_text(items[i]))
        end
        explanation_text:next(items[1].explanation)
-       return question('\8fo\8c\82\90_\97ì\82ð\91I\91ð(\8ec\82è0\83X\83\8d\83b\83g)', list, 'scroll', item_tween, false,
+       return question('\8fo\8c\82\90_\97ì\82ð\91I\91ð(\8ec\82è0\83X\83\8d\83b\83g)', list, 100, 'scroll', item_tween, false,
                function (index)
                        explanation_text:next(items[index + 1].explanation)
                end
@@ -248,7 +248,7 @@ function item_menu(explanation_text)
                }
 
        explanation_text:next(explanations[1])
-       local tab_menu = Question:new(make_caption_text('Item Management Menu'), items, 'direction=horizontal')
+       local tab_menu = Question:new(make_caption_text('Item Management Menu'), items, 100, 'direction=horizontal')
        local tw_init = DownSlideTween:new(0.1, 0.1, 0.8, 0.15, 20)
        tw_init(tab_menu)
 
@@ -308,7 +308,7 @@ function setup_menu(explanation_text)
                }
 
        explanation_text:next(explanations[1])
-       local tab_menu = Question:new(make_caption_text('Setup Menu'), items, 'direction=horizontal')
+       local tab_menu = Question:new(make_caption_text('Setup Menu'), items, 100, 'direction=horizontal')
        local tw_init = DownSlideTween:new(0.1, 0.1, 0.8, 0.15, 20)
        tw_init(tab_menu)
 
@@ -352,23 +352,23 @@ end
 --{{{ main_menu
 function main_menu()
        
-       local explanation_text = text('', ' ', nil, UpSlideTween:new(0.1, 0.8, 0.8, 0.12, 20))
-       local character_pic = Picture:new('file.image/battler/hero0.png')
+       local explanation_text = text('', ' ', 100, nil, UpSlideTween:new(0.1, 0.8, 0.8, 0.12, 20))
+       local character_pic = Picture:new('file.image/battler/hero0.png', 90)
        local x, y, w, h = to_client_coord(0.4, 0.4, 0.2, 0.2)
        character_pic:set_tween('position2', {[0] = {x, y}})
        character_pic:set_tween('size2', {[0] = {w, h}})
        character_pic:set_tween('texcoord', {['loop'] = {0, 60}, [0] = {0, 0, 1/4, 1/4}, [30] = {0, 1/4, 1/4, 2/4}})
        
        local status = {}
-       table.insert(status, text('', '<col code="ffffff">\82g\82o:300/300</col>', 'view=no-content-bg', RightSlideTween:new(0.1, 0.3, 0.2, 0.12, 30)))
-       table.insert(status, text('', '<col code="ffffff">\83Q\83C\83\93:80%</col>', 'view=no-content-bg', RightSlideTween:new(0.12, 0.35, 0.2, 0.12, 32)))
-       table.insert(status, text('', '<col code="ffffff">\8dU\8c\82\97Í:200</col>', 'view=no-content-bg', RightSlideTween:new(0.14, 0.4, 0.2, 0.12, 34)))
-       table.insert(status, text('', '<col code="ffffff">\8aÑ\92Ê\97Í:20</col>', 'view=no-content-bg', RightSlideTween:new(0.16, 0.45, 0.2, 0.12, 36)))
-       table.insert(status, text('', '<col code="ffffff">\95¨\97\9d\96h\8cä\97Í:100</col>', 'view=no-content-bg', RightSlideTween:new(0.18, 0.5, 0.2, 0.12, 38)))
-       table.insert(status, text('', '<col code="ffffff">\89\8a\91Ï\90«:50</col>', 'view=no-content-bg', RightSlideTween:new(0.2, 0.55, 0.5, 0.12, 40)))
-       table.insert(status, text('', '<col code="ffffff">\97â\8bC\91Ï\90«:50</col>', 'view=no-content-bg', RightSlideTween:new(0.22, 0.6, 0.2, 0.12, 42)))
-       table.insert(status, text('', '<col code="ffffff">\97\8b\91Ï\90«:50</col>', 'view=no-content-bg', RightSlideTween:new(0.24, 0.65, 0.2, 0.12, 44)))
-       table.insert(status, text('', '<col code="ffffff">\8fd\97Í\91Ï\90«:50</col>', 'view=no-content-bg', RightSlideTween:new(0.26, 0.7, 0.2, 0.12, 46)))
+       table.insert(status, text('', '<col code="ffffff">\82g\82o:300/300</col>', 10, 'view=no-content-bg', RightSlideTween:new(0.1, 0.3, 0.2, 0.12, 30)))
+       table.insert(status, text('', '<col code="ffffff">\83Q\83C\83\93:80%</col>', 10, 'view=no-content-bg', RightSlideTween:new(0.12, 0.35, 0.2, 0.12, 32)))
+       table.insert(status, text('', '<col code="ffffff">\8dU\8c\82\97Í:200</col>', 10, 'view=no-content-bg', RightSlideTween:new(0.14, 0.4, 0.2, 0.12, 34)))
+       table.insert(status, text('', '<col code="ffffff">\8aÑ\92Ê\97Í:20</col>', 10, 'view=no-content-bg', RightSlideTween:new(0.16, 0.45, 0.2, 0.12, 36)))
+       table.insert(status, text('', '<col code="ffffff">\95¨\97\9d\96h\8cä\97Í:100</col>', 10, 'view=no-content-bg', RightSlideTween:new(0.18, 0.5, 0.2, 0.12, 38)))
+       table.insert(status, text('', '<col code="ffffff">\89\8a\91Ï\90«:50</col>', 10, 'view=no-content-bg', RightSlideTween:new(0.2, 0.55, 0.5, 0.12, 40)))
+       table.insert(status, text('', '<col code="ffffff">\97â\8bC\91Ï\90«:50</col>', 10, 'view=no-content-bg', RightSlideTween:new(0.22, 0.6, 0.2, 0.12, 42)))
+       table.insert(status, text('', '<col code="ffffff">\97\8b\91Ï\90«:50</col>', 10, 'view=no-content-bg', RightSlideTween:new(0.24, 0.65, 0.2, 0.12, 44)))
+       table.insert(status, text('', '<col code="ffffff">\8fd\97Í\91Ï\90«:50</col>', 10, 'view=no-content-bg', RightSlideTween:new(0.26, 0.7, 0.2, 0.12, 46)))
 
        -- \8cã\8en\96\96\97p\8aÖ\90\94
        local finalizer = function ()
@@ -402,7 +402,7 @@ function main_menu()
 
        local answer
        while true do
-               answer = question(make_caption_text('Main Menu'), items, 'disable=3;direction=horizontal', DownSlideTween:new(0.1, 0.1, 0.8, 0.15, 20), false,
+               answer = question(make_caption_text('Main Menu'), items, 100, 'disable=3;direction=horizontal', DownSlideTween:new(0.1, 0.1, 0.8, 0.15, 20), false,
                        function (index)
                                explanation_text:next(explanations[index + 1])
                        end)
index 8c979b0..1a088c2 100644 (file)
@@ -62,7 +62,7 @@ function marcket_menu(jem_text, explanation_text, ehves_power, bolony_power, str
        explanation_text:next(make_marcket_relic_explanation(relic_list[1], ehves_power, bolony_power, stra_power))
 
        while true do
-               answer = question('\83}\81[\83P\83b\83g', items, nil, FeedTween:new(0.3, 0.25, 0.65, 0.4), false,
+               answer = question('\83}\81[\83P\83b\83g', items, 100, nil, FeedTween:new(0.3, 0.25, 0.65, 0.4), false,
                        function (index)
                                explanation_text:next(make_marcket_relic_explanation(relic_list[index + 1], ehves_power, bolony_power, stra_power))
                        end)
index b6961b3..e28b005 100644 (file)
@@ -192,8 +192,8 @@ function get_key()
 end
 --}}}
 --{{{ message
-function message(title, texts, style, initializer)
-       local obj = Message:new(title, style)
+function message(title, texts, priority, style, initializer)
+       local obj = Message:new(title, style, priority)
        if initializer ~= nil then initializer(obj) end
        local frame = obj:show()
        --wait_frame(frame)
@@ -209,9 +209,9 @@ function message(title, texts, style, initializer)
 end
 --{{{ new
 Message = {}
-function Message:new(title, style)
+function Message:new(title, style, priority)
        if style == nil then style = '' end
-       local id = messageNewImpl(title, style)
+       local id = messageNewImpl(title, style, priority)
        local obj = {}
        obj.id_ = id
        setmetatable(obj, {__index = Message})
@@ -252,8 +252,8 @@ end
 --}}}
 --}}}
 --{{{ text
-function text(title, text, style, initializer)
-       local obj = Message:new(title, style)
+function text(title, text, priority, style, initializer)
+       local obj = Message:new(title, style, priority)
        if initializer ~= nil then initializer(obj) end
        obj:show()
        local frame = obj:next(text)
@@ -261,7 +261,7 @@ function text(title, text, style, initializer)
 end
 --}}} text
 --{{{ question
-function question(title, items, style, initializer, ignore_cancel, callback_move_cursor, callback_select)
+function question(title, items, priority, style, initializer, ignore_cancel, callback_move_cursor, callback_select)
        if ignore_cancel == nil then ignore_cancel = false end
        local disables = {}
        if not is_empty(style) then 
@@ -275,7 +275,7 @@ function question(title, items, style, initializer, ignore_cancel, callback_move
                        end
                end
        end
-       local obj = Question:new(title, items, style)
+       local obj = Question:new(title, items, priority, style)
        if initializer ~= nil then initializer(obj) end
        local frame = obj:show()
        wait_frame(frame)
@@ -314,9 +314,10 @@ function question(title, items, style, initializer, ignore_cancel, callback_move
 end
 --{{{ new
 Question = {}
-function Question:new(title, items, style)
+function Question:new(title, items, priority, style)
+       print_debug(title)
        if style == nil then style = '' end
-       local id = menuNewImpl(title, items, style)
+       local id = menuNewImpl(title, items, style, priority)
        local obj = {}
        obj.id_ = id
        setmetatable(obj, {__index = Question})
@@ -404,8 +405,8 @@ end
 --{{{ picture
 --{{{ new
 Picture = {}
-function Picture:new(path)
-       local id = pictureCreateImpl(path)
+function Picture:new(path, priority)
+       local id = pictureCreateImpl(path, priority)
        local obj = {}
        obj.id_ = id
        setmetatable(obj, {__index = Picture})
@@ -431,8 +432,8 @@ end
 --{{{ board
 --{{{ new
 Board = {}
-function Board:new(path)
-       local id = mof_board_create(path)
+function Board:new(path, priority)
+       local id = mof_board_create(path, priority)
        local obj = {}
        obj.id_ = id
        setmetatable(obj, {__index = Board})
@@ -497,8 +498,8 @@ end
 --{{{ solid
 --{{{ new
 Solid = {}
-function Solid:new(class_path)
-       local id = solidCreateImpl(class_path)
+function Solid:new(class_path, priority)
+       local id = solidCreateImpl(class_path, priority)
        local obj = {}
        obj.id_ = id
        setmetatable(obj, {__index = Solid})
@@ -545,7 +546,7 @@ end
 --{{{ land_region_create
 LandRegion = {}
 function land_region_create(x, y)
-       local id = mof_land_region_create(x, y) 
+       local id = mof_land_region_create(x, y, 50
        local obj = {}
        obj.id_ = id
        setmetatable(obj, {__index = LandRegion})
index 608d0f1..fa2ce6a 100644 (file)
@@ -54,7 +54,7 @@ function shop_menu(jem_text, explanation_text, service_id, grade, service_name)
 
        local answer = 0
 
-       local chara_pic = Picture:new('file.image/shop/bukiya.png')
+       local chara_pic = Picture:new('file.image/shop/bukiya.png', 50)
        local x, y = to_client_coord(0.01, 0.1)
        chara_pic:set_tween('position2', {[0] = {x, y}}, 0)
        chara_pic:set_tween('size2', {[0] = {256 * 0.9, 512 * 0.9}}, 0) -- TODO
@@ -68,7 +68,7 @@ function shop_menu(jem_text, explanation_text, service_id, grade, service_name)
        explanation_text:next(make_shop_item_explanation(shop_list[1]))
 
        while true do
-               answer = question(service_name, items, 'view=scroll', FeedTween:new(0.3, 0.25, 0.65, 0.4), false,
+               answer = question(service_name, items, 100, 'view=scroll', FeedTween:new(0.3, 0.25, 0.65, 0.4), false,
                        function (index)
                                explanation_text:next(make_shop_item_explanation(shop_list[index + 1]))
                        end)
@@ -85,7 +85,7 @@ function ideal_church_menu(jem_text, explanation_text, service_id, grade, servic
 
        local answer = 0
 
-       local chara_pic = Picture:new('file.image/shop/bukiya.png')
+       local chara_pic = Picture:new('file.image/shop/bukiya.png', 50)
        local x, y = to_client_coord(0.01, 0.1)
        chara_pic:set_tween('position2', {[0] = {x, y}}, 0)
        chara_pic:set_tween('size2', {[0] = {256 * 0.9, 512 * 0.9}}, 0) -- TODO
@@ -110,7 +110,7 @@ function ideal_church_menu(jem_text, explanation_text, service_id, grade, servic
                if #disables ~= 0 then
                        style = style .. ';disable=' .. join(disables, ',')
                end
-               answer = question(service_name, menu_items, style, FeedTween:new(0.3, 0.25, 0.65, 0.4), false,
+               answer = question(service_name, menu_items, 100, style, FeedTween:new(0.3, 0.25, 0.65, 0.4), false,
                        function (index)
                                explanation_text:next(make_ideal_church_explanation(items[index + 1].id))
                        end)
index e93a54f..3b4219e 100644 (file)
@@ -4,8 +4,8 @@ require('script/service_menu')
 require('script/marcket_menu')
 
 function shop_menu_test()
-       local jem_text = text('', '<layout w="200" h="32" xalign="right" yalign="center">400JEM</layout>', '', FeedTween:new(0.05, 0.9, 0.3, 0.07))
-       local explanation_text = text('', ' ', 'view=no-title-bg', FeedTween:new(0.3, 0.7, 0.65, 0.1))
+       local jem_text = text('', '<layout w="200" h="32" xalign="right" yalign="center">400JEM</layout>', 100, '', FeedTween:new(0.05, 0.9, 0.3, 0.07))
+       local explanation_text = text('', ' ', 100, 'view=no-title-bg', FeedTween:new(0.3, 0.7, 0.65, 0.1))
        local service_id = 5
        service_menu(jem_text, explanation_text, service_id, 1)-- grade 1
        service_menu(jem_text, explanation_text, service_id, 2)
index f8a8be4..027aded 100644 (file)
@@ -4,7 +4,7 @@ require('script/common')
 function stage_menu()
 
        local answer = 0
-       local stage_pic = Picture:new('file.image/picture_0.JPG')
+       local stage_pic = Picture:new('file.image/picture_0.JPG', 50)
        stage_pic:set_tween('position2', {[0] = {100, 150}}, 0)
        while true do
                local items = {
@@ -15,6 +15,6 @@ function stage_menu()
                        get_icon_image_tag('empty') .. '<col name="gray">\83X\83e\81[\83W5</col>',
                        get_icon_image_tag('empty') .. '<col name="gray">\83X\83e\81[\83W6</col>',
                }
-               answer = question('\83X\83e\81[\83W\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢', items, 'disable=2,3,4,5,6', FeedTween:new(0.7, 0.3, 0.5, 0.5))
+               answer = question('\83X\83e\81[\83W\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢', items, 100, 'disable=2,3,4,5,6', FeedTween:new(0.7, 0.3, 0.5, 0.5))
        end
 end
index 31154e2..402af50 100644 (file)
@@ -8,7 +8,7 @@ require('script/effect')
 --{{{ enter_land
 function enter_land(area, x, y)
        local answer = question('<font size="20">' .. area.name .. '\82ð\96K\96â\82µ\82Ü\82·<nl/>\82æ\82ë\82µ\82¢\82Å\82·\82©\81H</font>', 
-               {'<layout w="150" h="24" xalign="center">\82Í\82¢</layout>', '<layout w="150" h="24" xalign="center">\82¢\82¢\82¦</layout>'},
+               {'<layout w="150" h="24" xalign="center">\82Í\82¢</layout>', '<layout w="150" h="24" xalign="center">\82¢\82¢\82¦</layout>'}, 100,
                'direction=horizontal;view=no-title-bg', FeedTween:new(0.3, 0.4, 0.4, 0.2), false)
        if answer == 1 then
                land_menu(x, y)
@@ -43,13 +43,13 @@ function element_menu(area, x, y, cursor)
        end
 
        local answer = question('<font size="20">' .. area.name .. '\82É\83G\83\8c\83\81\83\93\83g\82ð\94z\92u\82µ\82Ü\82·</font>', 
-               items, style, FeedTween:new(0.3, 0.4, 0.4, 0.2), false)
+               items, 100, style, FeedTween:new(0.3, 0.4, 0.4, 0.2), false)
        if answer == 1 then
                cursor:set_tween('size3', {[0] = {0.0, 0.0, 0.0}})
                put_element(ELEMENT_TYPE_FOREST, x, y)
                profile[1].forest_element = tonumber(profile[1].forest_element) - 1;
                save_game_data('gamedata.main_profile', profile)
-               invoke(forest_element, 0.2 * x + 0.1, 0, -0.2 * y - 0.1)
+               invoke(forest_element, 0.2 * x + 0.1, 0, -0.2 * y - 0.1, 100)
                wait_frame(150)
                cursor:set_tween('size3', {[0] = {0.2, 0.1, 0.2}, [20] = {0.2, 0.2, 0.2}})
        elseif answer == 2 then
@@ -57,7 +57,7 @@ function element_menu(area, x, y, cursor)
                put_element(ELEMENT_TYPE_EARTH, x, y)
                profile[1].earth_element = tonumber(profile[1].earth_element) - 1;
                save_game_data('gamedata.main_profile', profile)
-               invoke(earth_element, 0.2 * x + 0.1, 0, -0.2 * y - 0.1)
+               invoke(earth_element, 0.2 * x + 0.1, 0, -0.2 * y - 0.1, 100)
                wait_frame(150)
                cursor:set_tween('size3', {[0] = {0.2, 0.1, 0.2}, [20] = {0.2, 0.2, 0.2}})
        elseif answer == 3 then
@@ -65,7 +65,7 @@ function element_menu(area, x, y, cursor)
                put_element(ELEMENT_TYPE_WATER, x, y)
                profile[1].water_element = tonumber(profile[1].water_element) - 1;
                save_game_data('gamedata.main_profile', profile)
-               invoke(water_element, 0.2 * x + 0.1, 0, -0.2 * y - 0.1)
+               invoke(water_element, 0.2 * x + 0.1, 0, -0.2 * y - 0.1, 100)
                wait_frame(150)
                cursor:set_tween('size3', {[0] = {0.2, 0.1, 0.2}, [20] = {0.2, 0.2, 0.2}})
        end
@@ -74,17 +74,17 @@ end
 --}}}
 --{{{ forest_already_located
 function forest_already_located()
-       message('', {get_icon_image_tag('forest') .. '\90X\82Ì\83G\83\8c\83\81\83\93\83g\82ª\8aù\82É\94z\92u\82³\82ê\82Ä\82¢\82Ü\82·'}, nil, FeedTween:new(0.2, 0.4, 0.6, 0.1))
+       message('', {get_icon_image_tag('forest') .. '\90X\82Ì\83G\83\8c\83\81\83\93\83g\82ª\8aù\82É\94z\92u\82³\82ê\82Ä\82¢\82Ü\82·'}, 100, nil, FeedTween:new(0.2, 0.4, 0.6, 0.1))
 end
 --}}}
 --{{{ earth_already_located
 function earth_already_located()
-       message('', {get_icon_image_tag('earth') .. '\91å\92n\82Ì\83G\83\8c\83\81\83\93\83g\82ª\8aù\82É\94z\92u\82³\82ê\82Ä\82¢\82Ü\82·'}, nil, FeedTween:new(0.2, 0.4, 0.6, 0.1))
+       message('', {get_icon_image_tag('earth') .. '\91å\92n\82Ì\83G\83\8c\83\81\83\93\83g\82ª\8aù\82É\94z\92u\82³\82ê\82Ä\82¢\82Ü\82·'}, 100, nil, FeedTween:new(0.2, 0.4, 0.6, 0.1))
 end
 --}}}
 --{{{ water_already_located
 function water_already_located()
-       message('', {get_icon_image_tag('water') .. '\90\85\82Ì\83G\83\8c\83\81\83\93\83g\82ª\8aù\82É\94z\92u\82³\82ê\82Ä\82¢\82Ü\82·'}, nil, FeedTween:new(0.2, 0.4, 0.6, 0.1))
+       message('', {get_icon_image_tag('water') .. '\90\85\82Ì\83G\83\8c\83\81\83\93\83g\82ª\8aù\82É\94z\92u\82³\82ê\82Ä\82¢\82Ü\82·'}, 100, nil, FeedTween:new(0.2, 0.4, 0.6, 0.1))
 end
 --}}}
 --{{{ update_area
@@ -121,7 +121,7 @@ function update_area(cursor, x, y, area_info, area_profile, area_pic)
        area_info:next(table.concat(buf))
 
        if area_pic ~= nil then area_pic:dispose() end
-       area_pic = Picture:new('file.' .. area_profile.picture)
+       area_pic = Picture:new('file.' .. area_profile.picture, 40)
        local x, y = to_client_coord(0.05, 0.25)
        area_pic:set_tween('position2', {[0] = {x, y}}, 0)
        area_pic:set_tween('size2', {[0] = {256 * 0.7, 512 * 0.7}}, 0)-- \83G\83\8a\83A\8fî\95ñ\82Ì\8d\82\82³\82É\82 \82í\82¹\82é
@@ -135,9 +135,9 @@ function area_menu()
        local cursor_y = 0
 
 
-       local s = Solid:new('file.model/area_cursor.x')
+       local s = Solid:new('file.model/area_cursor.x', 11)
        
-       local area_info = text('', ' ', 'view=no-title-bg', FeedTween:new(0.05, 0.05, 0.70, 0.15))
+       local area_info = text('', ' ', 100, 'view=no-title-bg', FeedTween:new(0.05, 0.05, 0.70, 0.15))
 
        --local prop = area_info:get_properties()
        --local w, h = split(prop['size2'], ',')
@@ -199,7 +199,7 @@ function world_menu()
        camera:set_tween('lookat', {[0] = {0.6, 0, -0.6}})
        wait_frame(1)
 
-       local s = Solid:new('world')
+       local s = Solid:new('world', 10)
        local world_light = Light:new('directional')
        world_light:set_tween('position3', 
                {
@@ -220,14 +220,14 @@ function world_menu()
                        if area[1].capital_flag == '1' then
                                local name = area[1].name
                                name = '<col code="000011"><font name="Vinque" size="22"><layout w="50" xalign="center">' .. name .. '</layout></font></col>'
-                               table.insert(land_names, text('', name, 'view=no-content-bg', LandNameTween:new(0.2 * i, 0.2 * j + 0.05)))
+                               table.insert(land_names, text('', name, 100, 'view=no-content-bg', LandNameTween:new(0.2 * i, 0.2 * j + 0.05)))
                        end
                end
        end
 
        local world_profile = load_game_data('gamedata.world_profile')
        local saisei_text = '<font id="1" size="30">Term ' .. world_profile[1].term .. '/\8dÄ\90\93x ' .. world_profile[1].regen .. '</font>'
-       local saisei = text('', saisei_text, 'view=no-title-bg', FeedTween:new(0.55, 0.85, 0.4, 0.1))
+       local saisei = text('', saisei_text, 100, 'view=no-title-bg', FeedTween:new(0.55, 0.85, 0.4, 0.1))
 
        -- \8cã\8en\96\96\97p\8aÖ\90\94
        local finalizer = function () 
@@ -248,11 +248,12 @@ function world_menu()
                        '<layout w="130" h="28" xalign="center" yalign="center">\83\81\83C\83\93\83\81\83j\83\85\81[</layout>',
                }
                local sleep_select = false
-               answer = question(make_caption_text('World Menu'), items, 'direction=horizontal;disable=0', FeedTween:new(0.1, 0.05), true, nil,
+               answer = question(make_caption_text('World Menu'), items, 100, 'direction=horizontal;disable=0', FeedTween:new(0.1, 0.05), true, nil,
                        function (index)
                                if index == 2 then
                                        local answer = question('<font size="20">1term\8fÁ\94ï\82µ\82Ä\81A\93÷\91Ì\82ð\8dÄ\8d\\92z\82µ\82Ü\82·\81B<nl/>\82æ\82ë\82µ\82¢\82Å\82·\82©\81H</font>', 
                                                {'<layout w="150" h="24" xalign="center">\82Í\82¢</layout>', '<layout w="150" h="24" xalign="center">\82¢\82¢\82¦</layout>'},
+                                               100,
                                                'direction=horizontal;view=no-title-bg', FeedTween:new(0.3, 0.4, 0.4, 0.2), false)
                                        if answer == 1 then
                                                -- \83X\83\8a\81[\83v
index 5224ae6..242d235 100644 (file)
@@ -4,6 +4,7 @@ mof_executable_project(
                "./"
                "./widget/"
                "./script/"
+               "./world/"
        LIBRARIES
                "moflib"
                "ogg_static"
index 8efe3e3..10bb5b2 100644 (file)
@@ -375,11 +375,11 @@ namespace script
        }
 //}}}
 //{{{ land_region_create
-       int MyEnvironment::land_region_create(int x, int y)
+       int MyEnvironment::land_region_create(int x, int y, int priority)
        {
                auto vertices = impl_->world_->make_land_region_vertices(x, y);
                auto texture = ::getTextureResourceManager(::SYSTEM)->getResource("image/element.png");
-               return vertex_buffer_create(vertices->front(), vertices->back(), texture);
+               return vertex_buffer_create(vertices->front(), vertices->back(), texture, priority);
        }
 //}}}
 //{{{ save_profile
index 175872f..93490c0 100644 (file)
@@ -43,7 +43,7 @@ namespace script
                        int y
                );
 
-               virtual int land_region_create(int x, int y);
+               virtual int land_region_create(int x, int y, int priority);
 
                virtual void world_sleep();