OSDN Git Service

Merge branch 'master' of o_ggy@git.sourceforge.jp:/gitroot/moflib/moflib
[moflib/moflib.git] / saisei-1.0 / rpg / rpg / oldcode / World.h
1 #pragma once
2 #include "Area.h"
3 #include "mof/Vector2D.h"
4 #include <vector>
5
6 namespace et{
7         struct RegenerationEvent{
8                 int term;
9                 mof::Vector2D position;
10                 bool forest;
11                 bool earth;
12
13                 static RegenerationEvent createSleepEvent(int currentTerm ){
14                         RegenerationEvent event;
15                         event.term = currentTerm;
16                         event.forest = event.earth = false;
17                         return event;
18                 }
19
20                 static RegenerationEvent createForestGenEvent(int currentTerm , mof::Vector2D _position){
21                         RegenerationEvent event;        
22                         event.position = _position;
23                         event.forest = true;
24                         event.earth = false;
25                         event.term = currentTerm;
26                         return event;
27                 }
28
29                 bool isSleepEvent(){
30                         return (!forest && !earth);
31                 }
32         };
33
34
35
36         class World
37         {
38                 et::AreaMap* m_pAreaMap;
39                 int m_regenerationLevel;
40                 int m_term;
41
42                 int updateAreaPowerLevel(mof::Vector2D& position , et::RegenerationEvent& event);
43         public:
44                 World(std::vector<et::RegenerationEvent>& regenerationHistory);
45                 ~World(void);
46
47
48                 et::Area& getArea(int x , int y);
49                 void setArea(int x , int y , et::Area& area);
50                 et::AreaPowerLevelMap getAreaPowerLevelMap();
51                 int getRegenerationLevel(){return m_regenerationLevel;}
52                 int getTerm(){return m_term;}
53                 
54                 int getAreaWidth(){return m_pAreaMap->getWidth();}
55                 int getAreaHeight(){return m_pAreaMap->getHeight();}
56         };
57
58
59
60 };