OSDN Git Service

fix moflib2.0 build system
[moflib/moflib.git] / saisei-1.0 / rpg / rpg / oldcode / IdealMenu.cpp
1 #include "IdealMenu.h"\r
2 #include "mof/KeyFrameAnimation.h"\r
3 #include "MyWindow.h"\r
4 #include "TargetMenu.h"\r
5 #include "BattlerGroup.h"\r
6 #include "BattlerFacade.h"\r
7 \r
8 \r
9 mof::Window* et::IdealMenu::addSelectableTextItem(mof::Window* pOwner, std::vector<mof::Window*>& selectables , TCHAR* text , int size){\r
10         mof::Window* pSelectable = new et::MyWindow(mof::Sprite::createSpriteFromText(text , size) , m_pTextureManager);\r
11         pOwner->add(pSelectable);\r
12         selectables.push_back(pSelectable);\r
13         return pSelectable;\r
14 }\r
15 \r
16 et::IdealMenu::IdealMenu( mof::TextureManager* pTextureManager  , et::BattleData* pBattleData )\r
17 : et::MyFrame(mof::Line2D( 0 , 0 , 200 , 300) , true , pTextureManager->getResource(_T("image/frame0.png")) )\r
18 {\r
19         m_pBattleData = pBattleData;\r
20 \r
21         m_pSelector = NULL;\r
22         m_pTextureManager = pTextureManager;\r
23         std::vector<mof::Window*> selectables;\r
24 \r
25         mof::Window* pSelectable = NULL;\r
26         //\90_\97ì\82Ì\83\8a\83X\83g\8dì\90¬\r
27         for(std::vector<et::BattlerFacade*>::const_iterator itr = m_pBattleData->getBattlerGroup()->getBattlerList().begin() ;\r
28                 itr != m_pBattleData->getBattlerGroup()->getBattlerList().end() ; ++itr){\r
29                 if((*itr)->getType() != et::IDEAL || !(*itr)->getParameter().alive)continue;\r
30                 pSelectable = addSelectableTextItem(this , selectables , (TCHAR*)(*itr)->getParameter().name.c_str() , 16);\r
31                 if((*itr)->getParameter().actionPoint < 5)pSelectable->setAvailable(false);\r
32                 \r
33         }\r
34         m_pSelector = new mof::SelectionModel(selectables , mof::AnimationResource());\r
35         setVisible(true);\r
36 }\r
37 \r
38 et::IdealMenu::~IdealMenu(void)\r
39 {\r
40         delete m_pSelector;\r
41 }\r
42 \r
43 \r
44 \r
45 \r
46 \r
47 void et::IdealMenu::setVisible(bool visible){\r
48         et::MyFrame::setVisible(visible);\r
49         if(visible){\r
50                 mof::KeyFrameAnimation* pAnimation = new mof::KeyFrameAnimation();\r
51                 pAnimation->setPosition(0 , mof::Vector2D(160 ,500));\r
52                 pAnimation->setPosition(10 , mof::Vector2D(160 , 370));\r
53                 mof::AnimationResource resource(pAnimation);\r
54                 m_pSelector->setMenuAnimation(resource);\r
55                 setAnimation(0 , resource);\r
56         }\r
57         else {\r
58                 mof::KeyFrameAnimation* pAnimation = new mof::KeyFrameAnimation();\r
59                 pAnimation->setPosition(0 , mof::Vector2D(160 , 370));\r
60                 pAnimation->setPosition(10 , mof::Vector2D(160 , 500));\r
61                 mof::AnimationResource resource(pAnimation);\r
62                 m_pSelector->setMenuAnimation(resource);\r
63                 setAnimation(0 , resource);\r
64         }\r
65 }\r
66 \r
67 et::MyFrame* et::IdealMenu::performAction(){\r
68         int index = getSelectionModel()->getSelectingIndex();\r
69         et::BattleAction action;\r
70         action.type = et::BattleAction::CAST;\r
71         int cntIdeal = 0;\r
72         for(std::vector<et::BattlerFacade*>::const_iterator itr = m_pBattleData->getBattlerGroup()->getBattlerList().begin() ;\r
73                 itr != m_pBattleData->getBattlerGroup()->getBattlerList().end() ; ++itr){\r
74                 if((*itr)->getType() != et::IDEAL || !(*itr)->getParameter().alive)continue;\r
75                 else if(index == cntIdeal++)action.idealIndex = index;\r
76         }\r
77         \r
78         if(action.idealIndex == 0)return new et::TargetMenu(m_pTextureManager , m_pBattleData , action , 300);//\92P\91Ì\r
79         else if(action.idealIndex == 1){\r
80                 action.pTarget = NULL;\r
81                 m_pBattleData->setBattleAction(action);\r
82                 return this;\r
83         }\r
84         else if(action.idealIndex == 2){\r
85                 action.pTarget = m_pBattleData->getBattlerGroup()->getHeroBattler();\r
86                 m_pBattleData->setBattleAction(action);\r
87                 return this;\r
88         }\r
89 }\r
90 \r
91 \r