• R/O
  • SSH

mhack: Commit

マルチプレイヤーっぽいローグライク開発用のリポジトリ。


Commit MetaInfo

Revisiond6ebc9201057b9f980b41e3285bca33e2bc0124e (tree)
Time2010-12-17 09:54:14
AuthorSatofumi KAMIMURA
CommiterSatofumi KAMIMURA

Log Message

仕様を追記

Change Summary

Incremental Difference

diff -r a75e1406b371 -r d6ebc9201057 Doxyfile
--- a/Doxyfile Sat Oct 02 19:48:13 2010 +0900
+++ b/Doxyfile Fri Dec 17 09:54:14 2010 +0900
@@ -807,7 +807,7 @@
807807 # the style sheet file to the HTML output directory, so don't put your own
808808 # stylesheet in the HTML output directory as well, or it will be erased!
809809
810-HTML_STYLESHEET =
810+HTML_STYLESHEET = dox/doxygen_stylesheet.css
811811
812812 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
813813 # Doxygen will adjust the colors in the stylesheet and background images
diff -r a75e1406b371 -r d6ebc9201057 dox/adventure_diary.dox
--- a/dox/adventure_diary.dox Sat Oct 02 19:48:13 2010 +0900
+++ b/dox/adventure_diary.dox Fri Dec 17 09:54:14 2010 +0900
@@ -66,10 +66,18 @@
6666
6767 \subsection someone_diary_01_implementation_sample 光源の処理のサンプル実装
6868
69- 環境データと光源を定義し、表示の確認を行った。
69+ 環境データと光源を定義し、表示の確認を行った。\n
70+ 単色の濃淡は、視覚的にわかりにくいことが確認できた。
7071
7172 \image html light_sample_image.png "簡易的に実装した例 ('@' の位置が光源の中心)"
7273
7374 - サンプル
7475 - \ref light_sample.cpp
7576 */
77+
78+
79+/*!
80+ \page someone_diary_02_page 「モンスターとの戦闘」
81+
82+ !!!
83+*/
diff -r a75e1406b371 -r d6ebc9201057 dox/application_scene.dox
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dox/application_scene.dox Fri Dec 17 09:54:14 2010 +0900
@@ -0,0 +1,131 @@
1+/*!
2+ \page application_scene_page アプリケーションのシーン定義
3+
4+ ゲーム中にメニュー画面を開くような処理を実現するために、アプリケーションはゲーム用、メニュー用など目的に応じたシーン処理モジュールを持ち、それらを切替えられるようにする。
5+
6+
7+ \section application_scene_list シーンの一覧
8+
9+ - \ref application_scene_first_menu
10+ - \ref application_scene_menu
11+ - \ref application_scene_game
12+ - \ref application_scene_shop
13+ - \ref application_scene_scenario
14+ - \ref application_scene_quit
15+
16+
17+ \subsection application_scene_first_menu 起動後のメニュー表示
18+
19+ ゲーム起動後のメニュー画面。\n
20+ 新規ゲームの開始、ロードするゲームの選択、オプション設定、などのシーンの選択を待つ。
21+
22+ このメニュー画面の初期化において、サーバに問い合わせを行い、バージョンアップの処理を行っても良い。
23+
24+
25+ \subsection application_scene_option オプション設定
26+
27+ オプション設定を行う。\n
28+ 任意のシーンからこのシーンに遷移するため、背景は透過させない方がよい。
29+
30+ \subsection application_scene_menu ゲーム中のメニュー表示
31+
32+ \ref application_scene_first_menu 以外の全てのシーンからこのシーンに遷移しうる。\n
33+ 背景を半透明にして、ゲーム画面を表示してもよい。
34+
35+
36+ \subsection application_scene_game ダンジョン表示
37+
38+ ゲーム画面。
39+
40+
41+ \subsection application_scene_shop ショップ表示
42+
43+ ショップ毎に表示を変更してもよい。
44+
45+
46+ \subsection application_scene_scenario シナリオ再生
47+
48+ 立ち絵やメッセージの表示、動画の再生を行う。
49+
50+
51+ \subsection application_menu ゲーム中のメニュー
52+
53+ ゲーム中のメニュー項目を表示する。\n
54+ このシーンの処理が終了すると、遷移元のシーンに遷移する。
55+
56+
57+ \subsection application_scene_quit 終了しますかダイアログの表示
58+
59+ Ctrl-q や ALT-F4 による遷移を行う。
60+ 終了しなかった場合、遷移元のシーンに戻る。
61+
62+
63+ \section application_scene_flow シーンの遷移
64+
65+ \subsection application_scene_flow_main 主要なシーン遷移
66+
67+ - quit は全てのシーンから遷移するため、シーン遷移図には記述しない。
68+ - menu は first_menu 以外の全てのシーンから遷移するため、シーン遷移図には記述しない。
69+ - quit, menu を中断すると、遷移元のシーンに戻る。
70+ - 点線は、遷移元のシーンに戻ることを示す。
71+
72+ \dot
73+ digraph scene_flow {
74+ node [fontname = "arialuni.ttf", fontsize = 10];
75+ edge [fontname = "arialuni.ttf", fontsize = 10];
76+
77+ start -> first_menu
78+
79+ first_menu -> end
80+ first_menu -> option
81+ first_menu -> game
82+
83+ option -> first_menu [style = "dotted"];
84+
85+ game -> shop
86+ game -> scenario
87+ game -> first_menu [style = "dotted"];
88+
89+ scenario -> game [style = "dotted"];
90+
91+ shop -> game [style = "dotted"];
92+
93+ first_menu [label = " 起動後のメニュー表示 "];
94+ option [label = " オプション設定 "];
95+ game [label = " ダンジョン表示 "];
96+ shop [label = " ショップ表示 "];
97+ scenario [label = " シナリオ再生 "];
98+ }
99+ \enddot
100+
101+
102+ \subsection application_scene_flow_menu ゲーム中メニューのシーン遷移
103+
104+ \dot
105+ digraph menu_flow {
106+ node [fontname = "arialuni.ttf", fontsize = 10];
107+ edge [fontname = "arialuni.ttf", fontsize = 10];
108+
109+ menu -> option
110+ menu -> first_menu
111+
112+ first_menu [label = " 起動後のメニュー表示 "];
113+ option [label = " オプション設定 "];
114+ menu [label = " ゲーム中のメニュー "];
115+ }
116+ \enddot
117+
118+
119+ \subsection application_scene_flow_quit 終了しいますかダイアログのシーン遷移
120+
121+ \dot
122+ digraph quit_flow {
123+ node [fontname = "arialuni.ttf", fontsize = 10];
124+ edge [fontname = "arialuni.ttf", fontsize = 10];
125+
126+ quit -> end
127+
128+ quit [label = " 終了しますかダイアログの表示 "];
129+ }
130+ \enddot
131+*/
diff -r a75e1406b371 -r d6ebc9201057 dox/class.dox
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dox/class.dox Fri Dec 17 09:54:14 2010 +0900
@@ -0,0 +1,189 @@
1+/*!
2+ \page class_page 職業 (記述中)
3+
4+
5+ \section class_warrior 戦士
6+
7+ 強い力で、ほとんどの武器を使いこなす。
8+
9+ - スキル
10+ \dot
11+ digraph warrior {
12+ node [fontname = "arialuni.ttf", fontsize = 10];
13+
14+ sword_mastery -> two_handed_sword
15+ sword_mastery -> swat_down
16+ pollarm_mastery -> one_handed_pollarm -> mow_down
17+ roar -> berserk
18+
19+ sword_mastery [label = " ソード・マスタリー "]
20+ two_handed_sword [label = " 二刀流 "];
21+ swat_down [label = " 打ち落とし "];
22+ pollarm_mastery [label = " ポールアーム・マスタリー "];
23+ mow_down [label = " 薙ぎ払い "];
24+ one_handed_pollarm [label = " 片手持ち" ];
25+ roar [label = " 咆哮 "];
26+ berserk [label = " 狂戦士 "];
27+ }
28+ \enddot
29+
30+
31+ \section class_sword_fighter 剣士
32+
33+ 剣技のエキスパート。
34+
35+ - スキル
36+ \dot
37+ digraph sword_fighter {
38+ node [fontname = "arialuni.ttf", fontsize = 10];
39+
40+ dodge
41+ sword_mastery -> throw_dagger
42+
43+ dodge [label = " 見切り "];
44+ sword_mastery [label = " ソード・マスタリー "]
45+ throw_dagger [label = " ダガー投げ "];
46+ }
47+ \enddot
48+
49+
50+ \section class_samurai 侍
51+
52+ 東方の剣士。
53+
54+ - スキル
55+ \dot
56+ digraph samurai {
57+ node [fontname = "arialuni.ttf", fontsize = 10];
58+
59+ japanese_sword_mastery -> two_handed_sword
60+ japanese_sword_mastery -> battojutsu -> vorpal
61+ dodge
62+ mind_concentration -> clear_mind
63+
64+ japanese_sword_mastery [label = " 日本刀マスタリー "];
65+ two_handed_sword [label = " 二刀流 "];
66+ battojutsu [label = " 抜刀術 "];
67+ vorpal [label = " 首斬り "];
68+ dodge [label = " 見切り "];
69+ mind_concentration [label = " 精神統一 "];
70+ clear_mind [label = " 明鏡止水 "];
71+ }
72+ \enddot
73+
74+
75+ \section class_thief 盗賊
76+
77+ 隠密能力に優れ、罠の解除や鍵開けが得意。
78+
79+ - スキル
80+ \dot
81+ digraph thief {
82+ node [fontname = "arialuni.ttf", fontsize = 10];
83+
84+ dagger_mastery -> throw_dagger
85+
86+ dagger_mastery [label = " ダガー・マスタリー "]
87+ throw_dagger [label = " ダガー投げ "];
88+ }
89+ \enddot
90+
91+ - ダガー・マスタリー
92+ - \ref feature_silent_walking
93+ - \ref feature_backstab
94+ - 鍵開け
95+ - 交渉術
96+ !!!
97+
98+ - 特徴
99+ - 耐毒
100+ - !!!
101+
102+
103+ \section class_ninja 忍者
104+
105+ 暗殺の専門家。
106+
107+ - スキル
108+ - \ref feature_silent_walking
109+ - \ref feature_backstab
110+ - 闇に潜む
111+ - 毒
112+ - !!!
113+
114+
115+ \section class_wizard 魔法使い
116+
117+ 魔法の専門家。
118+
119+ - スキル
120+ - テレポート
121+ - !!!
122+
123+
124+ \section class_priest 僧侶
125+
126+ 回復や補助魔法の専門家。
127+
128+ - スキル
129+ - !!!
130+
131+
132+ \section class_paradin パラディン
133+
134+ 回復や補助魔法が使える戦士。
135+
136+ - スキル
137+ - !!!
138+
139+
140+ \section class_animal_tamer 猛獣使い
141+
142+ モンスターを従えて戦わせることができる。
143+
144+ - スキル
145+ - !!!
146+
147+
148+ \section class_necromancer ネクロマンサー
149+
150+ 死体を操って戦わせることができる。
151+
152+ - スキル
153+ - !!!
154+
155+
156+ \section class_doctor 医者
157+
158+ 回復と薬の専門家。
159+
160+ - スキル
161+ - !!!
162+
163+ !!!
164+
165+
166+ \section class_art_fighter 格闘家
167+
168+ 肉体を鍛えて戦う闘士。
169+
170+ - スキル
171+ - !!!
172+
173+
174+ \section class_android アンドロイド
175+
176+ 魂を吹き込まれた人造人形。
177+
178+ - スキル
179+ - 硬質化 (Lv.??)
180+ - !!!
181+
182+
183+ \section class_butler_maid 執事/メイド
184+
185+ 人に仕えるエキスパート。
186+
187+ - スキル
188+ - !!!
189+*/
diff -r a75e1406b371 -r d6ebc9201057 dox/development.dox
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dox/development.dox Fri Dec 17 09:54:14 2010 +0900
@@ -0,0 +1,51 @@
1+/*!
2+ \page development_page 開発ドキュメント
3+
4+ \section development_abstract 概要
5+
6+ - \subpage idea_page
7+ - \ref idea_items_singleplay
8+ - \ref idea_items_scripts
9+ - \ref idea_items_log
10+ - \ref idea_items_party
11+ - \ref idea_items_ai
12+ - \ref idea_items_graphic
13+ - \ref idea_items_input
14+
15+ - \subpage layer_page
16+ - \ref layer_draw
17+ - \ref layer_input
18+
19+
20+ \section development_detail 実装の詳細
21+
22+ - \subpage flow_page
23+ - \ref flow_abstract
24+
25+ - \subpage application_scene_page
26+ - \ref application_scene_list
27+ - \ref application_scene_flow
28+
29+ - 行動のターン・ハンドラ
30+ - 行動のターン処理について
31+
32+ - ダンジョンの実現
33+ - ダンジョンのデータ表現
34+ - キャラクターの移動
35+ - アイテムの生成
36+
37+ - ダンジョンの生成
38+ - 固定マップ
39+ - 固定サイズの部屋 + 通路
40+ - 洞窟風
41+ \n \n
42+ - アイテムの実装
43+ \n \n
44+ - キャラクターの実装
45+ - スキルの実装
46+ \n \n
47+ - 町の実装
48+ \n \n
49+ - ショップの実装
50+ - !!!
51+*/
diff -r a75e1406b371 -r d6ebc9201057 dox/development_diary.dox
--- a/dox/development_diary.dox Sat Oct 02 19:48:13 2010 +0900
+++ b/dox/development_diary.dox Fri Dec 17 09:54:14 2010 +0900
@@ -1,10 +1,21 @@
11 /*!
2- \page development_diary_page 開発記録
2+ \page development_diary_page 開発記録 (!!! 削除予定)
33
44 開発方針は、プレイ中のイメージを日記風の文章で書きだし、それを基づいて実装を行うことにします。
55
6- - 基本システム
6+ \section development_diary_system システム
7+
8+ - 基本
79 - \subpage someone_diary_01_page ... 壁、地面、光源の処理、など
10+ - \subpage someone_diary_02_page ... キャラクターの移動と戦闘など
11+
12+
13+ \section development_diary_data ゲーム設定
14+
15+ - \subpage class_page
16+ - \subpage race_page
17+ - \subpage feature_page
18+ - \subpage item_page
819
920 !!!
1021 */
diff -r a75e1406b371 -r d6ebc9201057 dox/doxygen_stylesheet.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dox/doxygen_stylesheet.css Fri Dec 17 09:54:14 2010 +0900
@@ -0,0 +1,688 @@
1+/* The standard CSS for doxygen */
2+
3+body, table, div, p, dl {
4+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
5+ font-size: 12px;
6+}
7+
8+/* @group Heading Levels */
9+
10+h1 {
11+ font-size: 140%;
12+}
13+
14+h2 {
15+ font-size: 130%;
16+ margin-top: 30px;
17+}
18+
19+h3 {
20+ font-size: 120%;
21+ margin-top: 28px;
22+}
23+
24+dt {
25+ font-weight: bold;
26+}
27+
28+div.multicol {
29+ -moz-column-gap: 1em;
30+ -webkit-column-gap: 1em;
31+ -moz-column-count: 3;
32+ -webkit-column-count: 3;
33+}
34+
35+p.startli, p.startdd, p.starttd {
36+ margin-top: 2px;
37+}
38+
39+p.endli {
40+ margin-bottom: 0px;
41+}
42+
43+p.enddd {
44+ margin-bottom: 4px;
45+}
46+
47+p.endtd {
48+ margin-bottom: 2px;
49+}
50+
51+/* @end */
52+
53+caption {
54+ font-weight: bold;
55+}
56+
57+span.legend {
58+ font-size: 70%;
59+ text-align: center;
60+}
61+
62+h3.version {
63+ font-size: 90%;
64+ text-align: center;
65+}
66+
67+div.qindex, div.navtab{
68+ background-color: #EBEFF6;
69+ border: 1px solid #A3B4D7;
70+ text-align: center;
71+ margin: 2px;
72+ padding: 2px;
73+}
74+
75+div.qindex, div.navpath {
76+ width: 100%;
77+ line-height: 140%;
78+}
79+
80+div.navtab {
81+ margin-right: 15px;
82+}
83+
84+/* @group Link Styling */
85+
86+a {
87+ color: #3D578C;
88+ font-weight: normal;
89+ text-decoration: none;
90+}
91+
92+.contents a:visited {
93+ color: #4665A2;
94+}
95+
96+a:hover {
97+ text-decoration: underline;
98+}
99+
100+a.qindex {
101+ font-weight: bold;
102+}
103+
104+a.qindexHL {
105+ font-weight: bold;
106+ background-color: #9CAFD4;
107+ color: #ffffff;
108+ border: 1px double #869DCA;
109+}
110+
111+.contents a.qindexHL:visited {
112+ color: #ffffff;
113+}
114+
115+a.el {
116+ font-weight: bold;
117+}
118+
119+a.elRef {
120+}
121+
122+a.code {
123+ color: #4665A2;
124+}
125+
126+a.codeRef {
127+ color: #4665A2;
128+}
129+
130+/* @end */
131+
132+dl.el {
133+ margin-left: -1cm;
134+}
135+
136+.fragment {
137+ font-family: monospace, fixed;
138+ font-size: 105%;
139+}
140+
141+pre.fragment {
142+ border: 1px solid #C4CFE5;
143+ background-color: #FBFCFD;
144+ padding: 4px 6px;
145+ margin: 4px 8px 4px 2px;
146+ overflow: auto;
147+ word-wrap: break-word;
148+ font-size: 9pt;
149+ line-height: 125%;
150+}
151+
152+div.ah {
153+ background-color: black;
154+ font-weight: bold;
155+ color: #ffffff;
156+ margin-bottom: 3px;
157+ margin-top: 3px;
158+ padding: 0.2em;
159+ border: solid thin #333;
160+ border-radius: 0.5em;
161+ -webkit-border-radius: .5em;
162+ -moz-border-radius: .5em;
163+ box-shadow: 2px 2px 3px #999;
164+ -webkit-box-shadow: 2px 2px 3px #999;
165+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
166+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
167+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
168+}
169+
170+div.groupHeader {
171+ margin-left: 16px;
172+ margin-top: 12px;
173+ font-weight: bold;
174+}
175+
176+div.groupText {
177+ margin-left: 16px;
178+ font-style: italic;
179+}
180+
181+body {
182+ background: white;
183+ color: black;
184+ margin: 0;
185+}
186+
187+div.contents {
188+ margin-top: 10px;
189+ margin-left: 10px;
190+ margin-right: 10px;
191+}
192+
193+td.indexkey {
194+ background-color: #EBEFF6;
195+ font-weight: bold;
196+ border: 1px solid #C4CFE5;
197+ margin: 2px 0px 2px 0;
198+ padding: 2px 10px;
199+}
200+
201+td.indexvalue {
202+ background-color: #EBEFF6;
203+ border: 1px solid #C4CFE5;
204+ padding: 2px 10px;
205+ margin: 2px 0px;
206+}
207+
208+tr.memlist {
209+ background-color: #EEF1F7;
210+}
211+
212+p.formulaDsp {
213+ text-align: center;
214+}
215+
216+img.formulaDsp {
217+
218+}
219+
220+img.formulaInl {
221+ vertical-align: middle;
222+}
223+
224+div.center {
225+ text-align: center;
226+ margin-top: 0px;
227+ margin-bottom: 0px;
228+ padding: 0px;
229+}
230+
231+div.center img {
232+ border: 0px;
233+}
234+
235+address.footer {
236+ text-align: right;
237+ padding-right: 12px;
238+}
239+
240+img.footer {
241+ border: 0px;
242+ vertical-align: middle;
243+}
244+
245+/* @group Code Colorization */
246+
247+span.keyword {
248+ color: #008000
249+}
250+
251+span.keywordtype {
252+ color: #604020
253+}
254+
255+span.keywordflow {
256+ color: #e08000
257+}
258+
259+span.comment {
260+ color: #800000
261+}
262+
263+span.preprocessor {
264+ color: #806020
265+}
266+
267+span.stringliteral {
268+ color: #002080
269+}
270+
271+span.charliteral {
272+ color: #008080
273+}
274+
275+span.vhdldigit {
276+ color: #ff00ff
277+}
278+
279+span.vhdlchar {
280+ color: #000000
281+}
282+
283+span.vhdlkeyword {
284+ color: #700070
285+}
286+
287+span.vhdllogic {
288+ color: #ff0000
289+}
290+
291+/* @end */
292+
293+/*
294+.search {
295+ color: #003399;
296+ font-weight: bold;
297+}
298+
299+form.search {
300+ margin-bottom: 0px;
301+ margin-top: 0px;
302+}
303+
304+input.search {
305+ font-size: 75%;
306+ color: #000080;
307+ font-weight: normal;
308+ background-color: #e8eef2;
309+}
310+*/
311+
312+td.tiny {
313+ font-size: 75%;
314+}
315+
316+.dirtab {
317+ padding: 4px;
318+ border-collapse: collapse;
319+ border: 1px solid #A3B4D7;
320+}
321+
322+th.dirtab {
323+ background: #EBEFF6;
324+ font-weight: bold;
325+}
326+
327+hr {
328+ height: 0px;
329+ border: none;
330+ border-top: 1px solid #4A6AAA;
331+}
332+
333+hr.footer {
334+ height: 1px;
335+}
336+
337+/* @group Member Descriptions */
338+
339+table.memberdecls {
340+ border-spacing: 0px;
341+ padding: 0px;
342+}
343+
344+.mdescLeft, .mdescRight,
345+.memItemLeft, .memItemRight,
346+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
347+ background-color: #F9FAFC;
348+ border: none;
349+ margin: 4px;
350+ padding: 1px 0 0 8px;
351+}
352+
353+.mdescLeft, .mdescRight {
354+ padding: 0px 8px 4px 8px;
355+ color: #555;
356+}
357+
358+.memItemLeft, .memItemRight, .memTemplParams {
359+ border-top: 1px solid #C4CFE5;
360+}
361+
362+.memItemLeft, .memTemplItemLeft {
363+ white-space: nowrap;
364+}
365+
366+.memTemplParams {
367+ color: #4665A2;
368+ white-space: nowrap;
369+}
370+
371+/* @end */
372+
373+/* @group Member Details */
374+
375+/* Styles for detailed member documentation */
376+
377+.memtemplate {
378+ font-size: 80%;
379+ color: #4665A2;
380+ font-weight: normal;
381+ margin-left: 9px;
382+}
383+
384+.memnav {
385+ background-color: #EBEFF6;
386+ border: 1px solid #A3B4D7;
387+ text-align: center;
388+ margin: 2px;
389+ margin-right: 15px;
390+ padding: 2px;
391+}
392+
393+.memitem {
394+ padding: 0;
395+ margin-bottom: 10px;
396+}
397+
398+.memname {
399+ white-space: nowrap;
400+ font-weight: bold;
401+ margin-left: 6px;
402+}
403+
404+.memproto {
405+ border-top: 1px solid #A8B8D9;
406+ border-left: 1px solid #A8B8D9;
407+ border-right: 1px solid #A8B8D9;
408+ padding: 6px 0px 6px 0px;
409+ color: #253555;
410+ font-weight: bold;
411+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
412+ /* opera specific markup */
413+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
414+ border-top-right-radius: 8px;
415+ border-top-left-radius: 8px;
416+ /* firefox specific markup */
417+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
418+ -moz-border-radius-topright: 8px;
419+ -moz-border-radius-topleft: 8px;
420+ /* webkit specific markup */
421+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
422+ -webkit-border-top-right-radius: 8px;
423+ -webkit-border-top-left-radius: 8px;
424+ background-image:url('nav_f.png');
425+ background-repeat:repeat-x;
426+ background-color: #E2E8F2;
427+
428+}
429+
430+.memdoc {
431+ border-bottom: 1px solid #A8B8D9;
432+ border-left: 1px solid #A8B8D9;
433+ border-right: 1px solid #A8B8D9;
434+ padding: 2px 5px;
435+ background-color: #FBFCFD;
436+ border-top-width: 0;
437+ /* opera specific markup */
438+ border-bottom-left-radius: 8px;
439+ border-bottom-right-radius: 8px;
440+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
441+ /* firefox specific markup */
442+ -moz-border-radius-bottomleft: 8px;
443+ -moz-border-radius-bottomright: 8px;
444+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
445+ background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
446+ /* webkit specific markup */
447+ -webkit-border-bottom-left-radius: 8px;
448+ -webkit-border-bottom-right-radius: 8px;
449+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
450+ background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
451+}
452+
453+.paramkey {
454+ text-align: right;
455+}
456+
457+.paramtype {
458+ white-space: nowrap;
459+}
460+
461+.paramname {
462+ color: #602020;
463+ white-space: nowrap;
464+}
465+.paramname em {
466+ font-style: normal;
467+}
468+
469+.params, .retval, .exception, .tparams {
470+ border-spacing: 6px 2px;
471+}
472+
473+.params .paramname, .retval .paramname {
474+ font-weight: bold;
475+ vertical-align: top;
476+}
477+
478+.params .paramtype {
479+ font-style: italic;
480+ vertical-align: top;
481+}
482+
483+.params .paramdir {
484+ font-family: "courier new",courier,monospace;
485+ vertical-align: top;
486+}
487+
488+
489+
490+
491+/* @end */
492+
493+/* @group Directory (tree) */
494+
495+/* for the tree view */
496+
497+.ftvtree {
498+ font-family: sans-serif;
499+ margin: 0px;
500+}
501+
502+/* these are for tree view when used as main index */
503+
504+.directory {
505+ font-size: 9pt;
506+ font-weight: bold;
507+ margin: 5px;
508+}
509+
510+.directory h3 {
511+ margin: 0px;
512+ margin-top: 1em;
513+ font-size: 11pt;
514+}
515+
516+/*
517+The following two styles can be used to replace the root node title
518+with an image of your choice. Simply uncomment the next two styles,
519+specify the name of your image and be sure to set 'height' to the
520+proper pixel height of your image.
521+*/
522+
523+/*
524+.directory h3.swap {
525+ height: 61px;
526+ background-repeat: no-repeat;
527+ background-image: url("yourimage.gif");
528+}
529+.directory h3.swap span {
530+ display: none;
531+}
532+*/
533+
534+.directory > h3 {
535+ margin-top: 0;
536+}
537+
538+.directory p {
539+ margin: 0px;
540+ white-space: nowrap;
541+}
542+
543+.directory div {
544+ display: none;
545+ margin: 0px;
546+}
547+
548+.directory img {
549+ vertical-align: -30%;
550+}
551+
552+/* these are for tree view when not used as main index */
553+
554+.directory-alt {
555+ font-size: 100%;
556+ font-weight: bold;
557+}
558+
559+.directory-alt h3 {
560+ margin: 0px;
561+ margin-top: 1em;
562+ font-size: 11pt;
563+}
564+
565+.directory-alt > h3 {
566+ margin-top: 0;
567+}
568+
569+.directory-alt p {
570+ margin: 0px;
571+ white-space: nowrap;
572+}
573+
574+.directory-alt div {
575+ display: none;
576+ margin: 0px;
577+}
578+
579+.directory-alt img {
580+ vertical-align: -30%;
581+}
582+
583+/* @end */
584+
585+div.dynheader {
586+ margin-top: 8px;
587+}
588+
589+address {
590+ font-style: normal;
591+ color: #2A3D61;
592+}
593+
594+table.doxtable {
595+ border-collapse:collapse;
596+}
597+
598+table.doxtable td, table.doxtable th {
599+ border: 1px solid #2D4068;
600+ padding: 3px 7px 2px;
601+}
602+
603+table.doxtable th {
604+ background-color: #374F7F;
605+ color: #FFFFFF;
606+ font-size: 110%;
607+ padding-bottom: 4px;
608+ padding-top: 5px;
609+ text-align:left;
610+}
611+
612+.tabsearch {
613+ top: 0px;
614+ left: 10px;
615+ height: 36px;
616+ background-image: url('tab_b.png');
617+ z-index: 101;
618+ overflow: hidden;
619+ font-size: 13px;
620+}
621+
622+.navpath ul
623+{
624+ font-size: 11px;
625+ background-image:url('tab_b.png');
626+ background-repeat:repeat-x;
627+ height:30px;
628+ line-height:30px;
629+ color:#8AA0CC;
630+ border:solid 1px #C2CDE4;
631+ overflow:hidden;
632+ margin:0px;
633+ padding:0px;
634+}
635+
636+.navpath li
637+{
638+ list-style-type:none;
639+ float:left;
640+ padding-left:10px;
641+ padding-right: 15px;
642+ background-image:url('bc_s.png');
643+ background-repeat:no-repeat;
644+ background-position:right;
645+ color:#364D7C;
646+}
647+
648+.navpath a
649+{
650+ height:32px;
651+ display:block;
652+ text-decoration: none;
653+ outline: none;
654+}
655+
656+.navpath a:hover
657+{
658+ color:#6884BD;
659+}
660+
661+div.summary
662+{
663+ float: right;
664+ font-size: 8pt;
665+ padding-right: 5px;
666+ width: 50%;
667+ text-align: right;
668+}
669+
670+div.summary a
671+{
672+ white-space: nowrap;
673+}
674+
675+div.header
676+{
677+ background-image:url('nav_h.png');
678+ background-repeat:repeat-x;
679+ background-color: #F9FAFC;
680+ margin: 0px;
681+ border-bottom: 1px solid #C4CFE5;
682+}
683+
684+div.headertitle
685+{
686+ padding: 5px 5px 5px 10px;
687+}
688+
diff -r a75e1406b371 -r d6ebc9201057 dox/feature.dox
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dox/feature.dox Fri Dec 17 09:54:14 2010 +0900
@@ -0,0 +1,32 @@
1+/*!
2+ \page feature_page 特徴 (記述中)
3+
4+ \section feature_infra_vision 赤外視
5+
6+ 熱を発する物体を見ることができる。
7+
8+
9+ \section feature_not_blindness 盲目にならない
10+
11+ 盲目にならない。
12+
13+
14+ \section feature_fire_ball 火炎弾を吐く
15+
16+ 火炎弾を吐く。
17+
18+
19+ \section feature_silent_walking 足音を消す
20+
21+ 敵に気付かれにくくなる。
22+
23+
24+ \section feature_in_secret 隠密
25+
26+ 暗闇の中で気付かれにくくなる。
27+
28+
29+ \section feature_backstab 背後からの攻撃
30+
31+ 寝ている敵にクリティカルヒット。
32+*/
diff -r a75e1406b371 -r d6ebc9201057 dox/flow.dox
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dox/flow.dox Fri Dec 17 09:54:14 2010 +0900
@@ -0,0 +1,19 @@
1+/*!
2+ \page flow_page ソフトウェアのフロー
3+
4+ \section flow_abstract 基本フロー
5+
6+ \dot
7+ digraph flow_basic {
8+ node [fontname = "arialuni.ttf", fontsize = 10];
9+ edge [fontname = "arialuni.ttf", fontsize = 10];
10+
11+ input -> end
12+ start -> input -> action -> draw -> input
13+
14+ input [label = " 入力 "];
15+ action [label = " 行動 "];
16+ draw [label = "表示" ];
17+ }
18+ \enddot
19+*/
diff -r a75e1406b371 -r d6ebc9201057 dox/idea.dox
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dox/idea.dox Fri Dec 17 09:54:14 2010 +0900
@@ -0,0 +1,63 @@
1+/*!
2+ \page idea_page 実現したいこと
3+
4+ - \ref idea_items_singleplay
5+ - \ref idea_items_scripts
6+ - \ref idea_items_log
7+ - \ref idea_items_party
8+ - \ref idea_items_ai
9+ - \ref idea_items_graphic
10+ - \ref idea_items_input
11+
12+
13+ \section idea_items_singleplay シングルプレイ・ローグライク
14+
15+ このローグライクでは、次の行動を何にするかの決定を楽しむゲームを目指す。次の行動を決定する時間に制限を設けたくないため、リアルタイム性は導入しない。
16+
17+ また、プレイヤー各自のペースで操作できることを保証するために、マルチプレイヤー対応にはしない。ただし、チャットやオークションなど、ゲームプレイに直接関係しないシーンにおいて、複数プレイヤーによるデータ共有を可能にしてもよい。
18+
19+
20+ \section idea_items_scripts 拡張しやすい設定ファイル構成
21+
22+ 拡張性を保証するために、アイテム、キャラクター特性、シナリオの記述はテキストファイルで行う。ただし、特性が記述されたテキストファイルは、配布時に難読化できるようにする。また、テキストで記述した内容における整合性やスペルミスなどのチェックは、専用ツールで検証できるようにする。
23+
24+ 記述については、専用のフォーマットや Light Language 言語の採用を検討している。
25+
26+
27+ \section idea_items_log プレイの記録と中継
28+
29+ ユーザのプレイ状況は、再生できるフォーマットで記録する。\n
30+ このプレイ状況は、プレイヤー自身や、他のプレイヤーも設定によって閲覧できるようにする。
31+
32+ プレイ状況の見どころを再生前に確認するために、体力の値や所持金の値などをグラフで表示する機能を実装してもよい。
33+
34+
35+ \section idea_items_party パーティプレイ
36+
37+ Nethack のペットや Diabllo II の傭兵, Elona の仲間に相当するキャラクターを導入する。これにより、ゲームプレイのバリエーションが増えることを目指す。\n
38+ 疑似的なマルチプレイ実現の一環として、他プレイヤーのキャラクターをレンタルできるようにしてもよい。
39+
40+
41+ \section idea_items_ai キャラクターの AI 操作
42+
43+ 自分の操作するキャラクター以外の行動は、専用のスクリプトにしたがって行動させる。このスクリプトでは可能なかぎり多くの情報を取得できるようにする。\n
44+ また、自分の操作するキャラクターを、作成したスクリプトにしたがって行動するようにできるようにしてもよい。
45+
46+ 最速クリアや低レベルクリアなど、項目毎のスクリプトについてランキング処理ができるような仕組みを実現してもよい。
47+
48+
49+ \section idea_items_graphic グラフィカルを考慮したローグライク
50+
51+ 既存のローグライクユーザの獲得、および新規ユーザの取り込みを目指し、CUI 形式ではなく、グラフィックでの表示を基本とする。
52+
53+ 最終的には Diabllo II の画面内のキャラクターやアイテムが 3D ASCII 文字で表現されているようなものを目指す。3D ASCII 文字による表現は、データを変更することで異なるグラフィックに変更できるようにする。
54+
55+
56+ \section idea_items_input 入力の扱いについて
57+
58+ キー入力、およびタッチパネルでの操作が可能になるようにする。\n
59+
60+ キー入力においては、遠隔攻撃のターゲットをキーを押下することでトグル選択できるようにしたり、処理できるキーの候補を表示したりしてもよい。
61+
62+ タッチパネルでの操作については、最もよく使う行動のアイコンを押し易い位置に配置するなどの工夫を行う。現時点では、どのような入力方法がタッチパネルに適しているかはあまり理解できていない。
63+*/
diff -r a75e1406b371 -r d6ebc9201057 dox/item.dox
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dox/item.dox Fri Dec 17 09:54:14 2010 +0900
@@ -0,0 +1,25 @@
1+/*!
2+ \page item_page アイテム (記述中)
3+
4+ \section arm_section 武器
5+
6+ - 小柄
7+ - 小太刀
8+ - 太刀
9+ - 野太刀
10+ !!!
11+
12+ - 長巻
13+ - 薙刀
14+ !!!
15+
16+
17+ \section shield_section 盾
18+
19+ !!!
20+
21+
22+ \section armor_section 鎧
23+
24+ !!!
25+*/
diff -r a75e1406b371 -r d6ebc9201057 dox/layer.dox
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dox/layer.dox Fri Dec 17 09:54:14 2010 +0900
@@ -0,0 +1,24 @@
1+/*!
2+ \page layer_page ソフトウェアのレイヤー
3+
4+ マルチプラットフォームや入出力デバイスに対する処理を抽象化することを目指し、ソフトウェアを複数のレイヤーに分け、操作 API を定義する。
5+
6+ - \ref layer_draw
7+ - \ref layer_input
8+
9+
10+ \section layer_draw 表示レイヤー
11+
12+ PC や Mobile phone, 様々の OS で動作させることができるように、画面に表示するデータを登録するためのレイヤーを用意して表示まわりを抽象化する。\n
13+ このレイヤーでは、キャラクターやアイテムの位置を渡すと、動作しているプラットフォームに適した表示が行われるようにする。
14+
15+ - 表示レイヤーの実装例
16+ - Curses 用の実装
17+ - SDL + OpenGL 用の実装
18+
19+
20+ \section layer_input 行動の入力レイヤー
21+
22+ キー入力やタッチパッドによる入力を抽象化する。\n
23+ ここのレイヤーでは、移動や攻撃などの行動を決定するまでの入力を抽象化し、行動の処理モジュールに決定された操作を渡す。
24+*/
diff -r a75e1406b371 -r d6ebc9201057 dox/mainpage.dox
--- a/dox/mainpage.dox Sat Oct 02 19:48:13 2010 +0900
+++ b/dox/mainpage.dox Fri Dec 17 09:54:14 2010 +0900
@@ -1,7 +1,8 @@
11 /*!
22 \mainpage マルチプレイ風ローグライク
33
4- 複数プレイヤーとのデータ共有が可能なシングルプレイ・ローグライクです。
4+ 複数プレイヤーとのデータ共有が可能なシングルプレイ・ローグライクです。 \n
5+ 妄想をたくさんつめこんでいく予定です。
56
67 - 作りたいものの特徴
78 - 次のコマンドを選ぶドキドキ感を実現するバランス設定
@@ -36,7 +37,7 @@
3637 - !!! 機を見て作る、または、作らない
3738
3839 - 開発ドキュメント
39- - \subpage development_diary_page
40+ - \subpage development_page
4041
4142 \author Satofumi KAMIMURA <satofumi@users.sourceforge.jp>
4243 */
diff -r a75e1406b371 -r d6ebc9201057 dox/race.dox
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dox/race.dox Fri Dec 17 09:54:14 2010 +0900
@@ -0,0 +1,53 @@
1+/*!
2+ \page race_page 種族
3+
4+
5+ \section race_human 人間
6+
7+ - 特徴
8+ - 普通
9+ - 普通の成長の速さ
10+
11+ - スキル
12+ - なし
13+
14+
15+ \section race_elf エルフ
16+
17+ - 特徴
18+ - 器用、賢い、筋力弱め
19+ - 成長が遅い
20+
21+ - スキル
22+ - \ref feature_infra_vision (Lv.1)
23+
24+
25+ \section race_dwarf ドワーフ
26+
27+ - 特徴
28+ - 体力多め、筋力強い、耐久高め
29+ - 成長が遅い
30+
31+ - スキル
32+ - \ref feature_not_blindness (Lv.1)
33+
34+
35+ \section race_hobbit ホビット
36+
37+ - 特徴
38+ - 器用、素早い、体力少なめ
39+ - 成長が速い
40+
41+ - スキル
42+ - \ref feature_silent_walking (Lv.1)
43+
44+
45+ \section race_dragon_half ハーフ・ドラゴン
46+
47+ - 特徴
48+ - とても体力多め、とても筋力強い、とても耐久高め、不器用、頭悪い
49+ - 成長がとても遅い
50+
51+ - スキル
52+ - \ref feature_fire_ball (Lv.1)
53+*/
diff -r a75e1406b371 -r d6ebc9201057 sample/Makefile
--- a/sample/Makefile Sat Oct 02 19:48:13 2010 +0900
+++ b/sample/Makefile Fri Dec 17 09:54:14 2010 +0900
@@ -2,6 +2,8 @@
22
33 all :
44 cd light_sample/ && $(MAKE)
5+ cd walking_sample/ && $(MAKE)
56
67 clean :
78 cd light_sample/ && $(MAKE) clean
9+ cd walking_sample/ && $(MAKE) clean
Show on old repository browser