OSDN Git Service

fix cmake/Macros.cmake
[moflib/moflib.git] / saisei-1.0 / rpg / rpg / oldcode / AreaMenu.cpp
1 #include "AreaMenu.h"
2 #include "mof/KeyFrameAnimation.h"
3 #include "MyWindow.h"
4
5
6 et::AreaMenu::AreaMenu(et::Area& area , mof::TextureManager* pTextureManager , 
7                                            et::World* pWorld , et::GameData* pGameData , mof::Vector2D& position)
8 : et::MyFrame(mof::Line2D( 650 , 50 , 800 , 200) , true , pTextureManager->getResource(_T("image/frame0.png")) )
9 {
10         m_pTextureManager = pTextureManager;
11         m_pWorld = pWorld;
12         m_pGameData = pGameData;
13         m_position = position;
14         m_pSelector = NULL;
15         std::vector<mof::Window*> selectables;
16
17         mof::Window* pSelectable = NULL;
18         add(mof::Sprite::createSpriteFromText(_T("\83G\83\8a\83A\83\81\83j\83\85\81[") , 16) );
19         pSelectable = addSelectableTextItem(this , selectables , _T("\92¬\82ð\96K\96â") , 16);
20         if(!area.town)pSelectable->setAvailable(false);
21         pSelectable = addSelectableTextItem(this , selectables , _T("\83G\83\8c\83\81\83\93\83g") , 16);
22         if(area.hasSomethingIcon())pSelectable->setAvailable(false);
23         addSelectableTextItem(this , selectables , _T("\82à\82Ç\82é") , 16);
24         m_pSelector = new mof::SelectionModel(selectables , mof::AnimationResource());
25         setVisible(true);
26 }
27
28
29
30
31 et::AreaMenu::~AreaMenu(void)
32 {
33         delete m_pSelector;
34 }
35
36
37
38
39 void et::AreaMenu::setVisible(bool visible){
40         et::MyFrame::setVisible(visible);
41         if(visible){
42                 mof::KeyFrameAnimation* pAnimation = new mof::KeyFrameAnimation();
43                 pAnimation->setPosition(0 , mof::Vector2D(650 , 50));
44                 pAnimation->setPosition(7 , mof::Vector2D(440 , 50));
45                 mof::AnimationResource resource(pAnimation);
46                 m_pSelector->setMenuAnimation(resource);
47                 setAnimation(0 , resource);
48         }
49         else {
50                 mof::KeyFrameAnimation* pAnimation = new mof::KeyFrameAnimation();
51                 pAnimation->setPosition(0 , mof::Vector2D(440 , 50));
52                 pAnimation->setPosition(7 , mof::Vector2D(650 , 50));
53                 mof::AnimationResource resource(pAnimation);
54                 m_pSelector->setMenuAnimation(resource);
55                 setAnimation(0 , resource);
56         }
57 }
58
59 et::MyFrame* et::AreaMenu::performAction(){
60
61         switch(getSelectionModel()->getSelectingIndex()){
62                 case 1 : //\83G\83\8c\83\81\83\93\83g\94z\92u
63                         {
64                         et::Area area = m_pWorld->getArea(m_position.x , m_position.y);
65                         area.forestGen = true;
66                         m_pWorld->setArea(m_position.x , m_position.y , area);
67                         m_pGameData->addRegenerationEvent(et::RegenerationEvent::createForestGenEvent(m_pWorld->getTerm() , m_position));
68                         setVisible(false);
69                         return NULL;
70                         }
71                 case 2 : //\82à\82Ç\82é
72                         setVisible(false);
73                         return NULL;
74                 default :
75                         DEBUG_PRINT("\96¢\92è\8b`\82Ì\83A\83N\83V\83\87\83\93\82ª\97v\8b\81\82³\82ê\82Ü\82µ\82½");
76                         return NULL;
77         }
78                         
79 }
80
81 mof::Window* et::AreaMenu::addSelectableTextItem(mof::Window* pOwner, std::vector<mof::Window*>& selectables , TCHAR* text , int size){
82         mof::Window* pSelectable = new et::MyWindow(mof::Sprite::createSpriteFromText(text , size) , m_pTextureManager);
83         pOwner->add(pSelectable);
84         selectables.push_back(pSelectable);
85         return pSelectable;
86 }