• R/O
  • SSH
  • HTTPS

marathon: コミット


コミットメタ情報

リビジョン392 (tree)
日時2007-07-21 00:03:29
作者hogepiyo

ログメッセージ

*** empty log message ***

変更サマリ

差分

--- marathon/trunk/MapEditorWX/src/MapEditorWX.cpp (revision 391)
+++ marathon/trunk/MapEditorWX/src/MapEditorWX.cpp (revision 392)
@@ -236,6 +236,13 @@
236236 {
237237 return &this->visualModeManager;
238238 }
239+/**
240+ 履歴マネージャーを取得します
241+*/
242+hpl::aleph::map::HPLDoneHistory* MapEditorWX::getDoneHistoryManager()
243+{
244+ return &this->doneHistoryManager;
245+}
239246
240247
241248 //ビュー座標をワールド座標に直す操作の簡易版
--- marathon/trunk/MapEditorWX/src/MainFrameEvent.cpp (revision 391)
+++ marathon/trunk/MapEditorWX/src/MainFrameEvent.cpp (revision 392)
@@ -434,13 +434,11 @@
434434 //点
435435 for(int i = 0; i < (int)sel->getSelPoints()->size(); i ++){
436436 struct hpl::aleph::map::SelPoint* selp = &sel->getSelPoints()->at(i);
437+ int index = selp->index;
437438 //位置変更
438- get_endpoint_data(selp->index)->vertex.x = wmp.x + selp->offset[0] * div;
439- get_endpoint_data(selp->index)->vertex.y = wmp.y + selp->offset[1] * div;
439+ get_endpoint_data(index)->vertex.x = wmp.x + selp->offset[0] * div;
440+ get_endpoint_data(index)->vertex.y = wmp.y + selp->offset[1] * div;
440441
441- //位置が変更されたことによる変更を行う
442- //関連する線
443- std::vector<int> lineIndexes =
444442 }
445443
446444 //線
--- marathon/trunk/MapEditorWX/src/MainFrameLeftDown.cpp (revision 391)
+++ marathon/trunk/MapEditorWX/src/MainFrameLeftDown.cpp (revision 392)
@@ -144,6 +144,10 @@
144144 //選択できたので
145145 //範囲選択は解除します
146146 wxGetApp().getEventManager()->setSelectingGroup(false);
147+
148+ //アンドゥ情報に追加しておきます
149+ hpl::aleph::map::HPLDoneHistory* hmgr = wxGetApp().getDoneHistoryManager();
150+ hmgr->push_back(&wxGetApp().selData);
147151 }else{
148152 //選択されなかった
149153 //範囲選択の開始
--- marathon/trunk/MapEditorWX/src/MapEditorWX.h (revision 391)
+++ marathon/trunk/MapEditorWX/src/MapEditorWX.h (revision 392)
@@ -163,10 +163,10 @@
163163
164164 //編集モードとメニューIDの対応
165165 //TODO menu
166- std::map<int, int> menuIDMap;
166+// std::map<int, int> menuIDMap;
167167
168- //リソースファイル
169- wxXmlResource xrc;
168+ //リソースファイル(試験的に定義)
169+// wxXmlResource xrc;
170170
171171 //高さが範囲外の線を表示するかどうか(デフォルト:false)
172172 bool isRevealHiddenLines;
@@ -214,6 +214,9 @@
214214 //ビジュアルモード管理 <en> manager for visual mode
215215 hpl::shapes::HPLVisualModeManager visualModeManager;
216216
217+ //アンドゥ管理マネージャー
218+ hpl::aleph::map::HPLDoneHistory doneHistoryManager;
219+
217220 //ツールごとのカーソル
218221 wxCursor cursors[ToolType::NUMBER_OF_TOOLS];
219222
@@ -241,6 +244,11 @@
241244 ///////////////////////////////////
242245 // 関数
243246
247+ /**
248+ 履歴マネージャーを取得します
249+ */
250+ hpl::aleph::map::HPLDoneHistory* getDoneHistoryManager();
251+
244252 /**
245253 ビューグリッドの調整マネージャーを取得します
246254 */
--- marathon/trunk/MapEditorWX/src/MainFrameMenuEvent.cpp (revision 391)
+++ marathon/trunk/MapEditorWX/src/MainFrameMenuEvent.cpp (revision 392)
@@ -90,6 +90,9 @@
9090 //セットアップ
9191 wxGetApp().getStockManager()->updateDeletes();
9292
93+ //履歴初期化
94+ wxGetApp().getDoneHistoryManager()->init();
95+
9396 //プレイヤーポジションを設定
9497 //プレイヤーを捜す
9598 for(int i = 0 ; i < (int)SavedObjectList.size(); i ++){
--- marathon/trunk/MapEditorWX/WXTODOリスト.txt (revision 391)
+++ marathon/trunk/MapEditorWX/WXTODOリスト.txt (revision 392)
@@ -264,7 +264,7 @@
264264
265265 //?ʒu?L??
266266 ?{?^????????
267-?I?????聨?ʒu?{?????
267+?I??????(???ˆ?‚????I??)???ʒu?{?????
268268 ?I????Ń{?^?????????ʒu?{?????
269269 ?I????????
270-?{?^????????
270+?{?^?????????ʒu?{???L??
--- marathon/trunk/MapEditorCommonSrc/MapEditorOneSetting.h (revision 391)
+++ marathon/trunk/MapEditorCommonSrc/MapEditorOneSetting.h (revision 392)
@@ -78,6 +78,10 @@
7878 static char* INNER_DATA_FILE_PATH = "data/InnerSetting.ini";
7979 static char* START_POINT_IMAGE_FILE_PATH = "data/Map Icons/center X.bmp";
8080
81+//アンドゥ・リドゥの回数(合計)
82+const int UNDO_NUM = 10;
83+
84+
8185 //point flags
8286 enum
8387 {
--- marathon/trunk/HPLLib/HPLDoneHistory.cpp (revision 391)
+++ marathon/trunk/HPLLib/HPLDoneHistory.cpp (revision 392)
@@ -1,6 +1,8 @@
11 #include "HPLDoneHistory.h"
22 #include "HPLError.h"
33
4+const int DEFAULT_INDEX_MAX = 10;
5+
46 hpl::aleph::map::HPLActionItem::HPLActionItem(int t, hpl::aleph::map::HPLSelectData& sel, hpl::aleph::map::HPLRealMapData& real)
57 {
68 type = t;
@@ -16,6 +18,7 @@
1618 hpl::aleph::map::HPLDoneHistory::HPLDoneHistory()
1719 {
1820 index = -1;
21+ setIndexMax(DEFAULT_INDEX_MAX);
1922 }
2023 hpl::aleph::map::HPLDoneHistory::~HPLDoneHistory()
2124 {
@@ -22,6 +25,18 @@
2225 actionList.clear();
2326 }
2427 /**
28+ 最大数を設定します
29+*/
30+void hpl::aleph::map::HPLDoneHistory::setIndexMax(int m)
31+{
32+ this->indexMax = m;
33+}
34+int hpl::aleph::map::HPLDoneHistory::getIndexMax()
35+{
36+ return this->indexMax;
37+}
38+
39+/**
2540 情報を追加します
2641 */
2742 void hpl::aleph::map::HPLDoneHistory::push_back(int type, HPLSelectData& selData)
@@ -87,6 +102,9 @@
87102 void hpl::aleph::map::HPLDoneHistory::updateIndexes(hpl::aleph::HPLStockManager* smgr)
88103 {
89104 //TODO
105+ //そんなもん保持するわけないだろう
106+ //常識的に考えて…
107+ hpl::error::halt("Invalid function you called :/");
90108 }
91109 int hpl::aleph::map::HPLDoneHistory::getIndex()
92110 {
@@ -100,3 +118,11 @@
100118 {
101119 return (int)actionList.size() - index;
102120 }
121+
122+/**
123+ 初期化します
124+*/
125+void hpl::aleph::map::HPLDoneHistory::init()
126+{
127+ this->actionList.clear();
128+}
--- marathon/trunk/HPLLib/HPLDoneHistory.h (revision 391)
+++ marathon/trunk/HPLLib/HPLDoneHistory.h (revision 392)
@@ -17,10 +17,26 @@
1717 namespace hpl{
1818 namespace aleph{
1919 namespace map{
20+ /**
21+ 行動タイプ
22+ */
2023 namespace ActionType{
2124 enum{
25+ //何もしていない状態
26+ //移動前の情報を入れておく
27+ None,
28+ //新規作成
29+ //オブジェクト情報をそのまま保持。もし保存などを行いインデックスが整理されてしまった場合は
30+ //最後に新規で作成され直すことになる。
2231 Add,
32+ //削除
33+ //Addと同様
2334 Delete,
35+ //移動
36+ //移動のみを扱い、それに伴う特性データを保持
37+ Move,
38+ //情報の変更
39+ //特徴データの変更のみを行い、移動・追加・削除については無視
2440 Modify,
2541 };
2642 };
@@ -32,7 +48,13 @@
3248 private:
3349 HPLActionItem(){}
3450 public:
35- HPLActionItem(int t, hpl::aleph::map::HPLSelectData& sel, hpl::aleph::map::HPLRealMapData& real);
51+ /**
52+ @param t タイプ ActionType::
53+ @param sel 選択している情報(インデックスのみ)
54+ @param real 選択している物体の真の情報(memcpyの産物)
55+ */
56+ HPLActionItem(int t, hpl::aleph::map::HPLSelectData& sel,
57+ hpl::aleph::map::HPLRealMapData& real);
3658 ~HPLActionItem();
3759 int type;
3860 hpl::aleph::map::HPLSelectData selectData;
@@ -44,14 +66,19 @@
4466 std::vector<HPLActionItem> actionList;
4567
4668 int index;
69+ int indexMax;
4770 public:
4871 HPLDoneHistory();
4972 ~HPLDoneHistory();
5073
5174 public:
75+ /**
76+ 最大数を設定します
77+ */
78+ void setIndexMax(int m);
79+ int getIndexMax();
5280 /**
5381 情報を追加します
54- @param type ActionTypeで定義している、ユーザが取った行動
5582 */
5683 void push_back(int type, HPLSelectData& selData);
5784
@@ -71,6 +98,11 @@
7198 */
7299 void updateIndexes(hpl::aleph::HPLStockManager* smgr);
73100
101+ /**
102+ 初期化します
103+ */
104+ void init();
105+
74106 int getIndex();
75107 int getRemainUndoCount();
76108 int getRemainRedoCount();
旧リポジトリブラウザで表示