• R/O
  • SSH
  • HTTPS

marathon: コミット


コミットメタ情報

リビジョン215 (tree)
日時2007-02-08 13:29:32
作者hogepiyo

ログメッセージ

*** empty log message ***

変更サマリ

差分

--- marathon/trunk/MapDamagerOne/README_en_jp.txt (nonexistent)
+++ marathon/trunk/MapDamagerOne/README_en_jp.txt (revision 215)
@@ -0,0 +1,100 @@
1+READ ME
2+You might need runtime.
3+http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee
4+
5+<en>
6+
7+--------------------------
8+Software name :Map Damager One
9+Author :HogePiyo
10+License :GPL
11+
12+Thank you for downloading this program!
13+
14+The purpose of this program is to split (unmerge) any maps.
15+
16+With this, you can get every levels of a map.
17+
18+--
19+How to use.
20+
21+1.launch this program
22+
23+2.select map file you want to unmerge
24+
25+3.then, select directory for saving levels
26+
27+4.completion dialog shown and click ok.
28+
29+5.if warned error, click ok to skip it, or click cancel to quit program
30+--
31+Not yet.
32+
33+-cannot save merged physics datas (but soon)
34+-cannot save merged terminal text (but soon,too)
35+-cannot save merged terminal pictures (need for method to load from resources)
36+
37+--
38+Please report bugs and requests at MapEditorOne topics in Pfhorums
39+http://www.pfhorums.com/index.php?showtopic=860
40+</en>
41+
42+<jp>
43+
44+Look this in Shift-JIS!
45+--------------------------------
46+ソフト名 :Map Damager One
47+作者 :HogePiyo
48+ライセンス :GPL
49+
50+ダウンロードありがとうございます。
51+
52+このソフトはマップを各レベルごとに分解する目的で作っています。
53+
54+MapEditorOneの保存機能を調整して形にしました。
55+
56+標準マップならば遊べる程度に保存できるはずです。
57+
58+他のサードパーティ系は未確認です。
59+
60+ちなみに、MapEditorOneとMapViewerOne、そしてこのMapDamagerOneで
61+ファイル保存機構のバージョンが若干違います。
62+
63+2007/02/08 現時点ではMapDamagerOneが最新かつ確実にMapデータを保存できるはずです。
64+
65+他二つについてはそれぞれの次回リリースまでお待ちください。
66+
67+--
68+使い方
69+
70+1.起動するとファイル選択が出るので、マップファイルを選びます
71+
72+2.次にディレクトリ選択が出るので、出力先を指定します。
73+
74+3.完了ダイアログが出れば終了です。
75+
76+4.エラーメッセージが出たら、okかcancelを押します。
77+ -ok :スキップして続行します。
78+ -cancel:終了します。
79+
80+--
81+未実装
82+
83+-マージされている物理ファイルの保存
84+-マージされているターミナルテキスト(スクリプト)の保存
85+-ターミナルピクチャの保存
86+
87+ピクチャはリソースを除いたりする必要もあるので分かりませんが、
88+物理ファイルとターミナルテキストは取得できているのですぐできると思います。
89+--
90+バグや要望があれば、
91+PfhorumsのMapEditorOneスレか、
92+http://www.pfhorums.com/index.php?showtopic=860
93+
94+MarathonWikiのForums、
95+http://mjolnir.logue.tk/
96+http://forum.logue.tk/#6
97+
98+あるいは2chのスレとかにでも書いてください。
99+http://game12.2ch.net/test/read.cgi/gamef/1157461574/l50
100+2chスレは古くなると見れなくなりますので、その場合はMarathonWikiから最新のスレに移ってください。
--- marathon/trunk/MapDamagerOne/src/MapDamager.cpp (revision 214)
+++ marathon/trunk/MapDamagerOne/src/MapDamager.cpp (revision 215)
@@ -305,15 +305,23 @@
305305 sprintf(buf, "%sL%s%s.sceA", dir.c_str(),
306306 numstr.c_str(), names[i].c_str());
307307 //保存
308- MapIndexList.clear();
308+/* MapIndexList.clear();
309309 MapIndexList.push_back(0);
310- dynamic_world->map_index_count = 1;
310+ dynamic_world->map_index_count = 1;*/
311311 // dynamic_world->platform_count = PlatformList.size();
312312 if(!save_level(buf)){
313313 char cbuf[MAX_PATH+100];
314314 sprintf(cbuf, "save error with [%s]", buf);
315315 charToWChar(cbuf, wbuf);
316- MessageBox(hwnd, wbuf, TEXT("save error"), MB_OK);
316+ int id = MessageBox(hwnd, wbuf, TEXT("save error"), MB_OKCANCEL);
317+ if(id == IDOK){
318+ //skip
319+ }else{
320+ //quit
321+ MessageBox(hwnd, TEXT("process banned by user selection"),
322+ TEXT("user assertion"), MB_OK);
323+ break;
324+ }
317325 }
318326 }
319327
--- marathon/trunk/MapViewerOne/README_en_jp.txt (revision 214)
+++ marathon/trunk/MapViewerOne/README_en_jp.txt (revision 215)
@@ -1,4 +1,7 @@
11 READ ME
2+You might need runtime.
3+http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee
4+
25 <en>
36
47 -----------------------------
@@ -33,7 +36,7 @@
3336 </en>
3437
3538 <jp>
36-Look this in Shif-JIS!
39+Look this in Shift-JIS!
3740
3841 -----------------------------
3942 ソフト名 :Map Viewer One
--- marathon/trunk/AlephOneSrc/map.cpp (revision 214)
+++ marathon/trunk/AlephOneSrc/map.cpp (revision 215)
@@ -430,6 +430,7 @@
430430 MapAnnotationList.clear();
431431
432432 PlatformList.clear();
433+
433434 /* map_polygons= NULL;
434435 map_sides= NULL;
435436 map_lines= NULL;
--- marathon/trunk/AlephOneSrc/game_wad.cpp (revision 214)
+++ marathon/trunk/AlephOneSrc/game_wad.cpp (revision 215)
@@ -140,7 +140,9 @@
140140 /* -------- local globals */
141141 FileSpecifier MapFileSpec;
142142 static bool file_is_set= false;
143-static std::vector<static_platform_data> staticPlatforms;
143+static vector<static_platform_data> staticPlatforms;
144+static vector<side_data> oldSideList;
145+static vector<static_light_data> staticLightList;
144146
145147 // LP addition: was a physics model loaded from the previous level loaded?
146148 static bool PhysicsModelLoadedEarlier = false;
@@ -388,6 +390,18 @@
388390 return (!error_pending());
389391 }
390392
393+static void exportTag(int tag, struct wad_data* wad)
394+{
395+ size_t size;//offset, alloc_size;
396+ Uint8 *data;
397+ data = tag_to_global_array_and_size(tag, &size);
398+// if(data){
399+ append_data_to_wad(wad, tag, data, size, 0);
400+ //offset += alloc_size;
401+ delete data;
402+// }
403+}
404+
391405 //HogePiyo added
392406 /**
393407 export level
@@ -395,6 +409,8 @@
395409 */
396410 static struct wad_data* export_level_wad_data()
397411 {
412+ recalculate_map_counts();
413+
398414 //empty wad
399415 struct wad_data* wad = create_empty_wad();
400416
@@ -404,41 +420,49 @@
404420
405421 //offset = 0;
406422
423+ //sideをコピーする
424+ /*
425+ for(int i = 0; i < (int)SideList.size(); i ++){
426+ memcpy(&SideList[i],&oldSideList[i], sizeof(side_data));
427+ }*/
407428 //one of lines/side/polygons must be first of all !!!
408429 int tags[] ={
409- ENDPOINT_DATA_TAG, LINE_TAG, SIDE_TAG, POLYGON_TAG,
430+ ENDPOINT_DATA_TAG, LINE_TAG, //SIDE_TAG,
431+ };
432+ int tags2[]={
433+ POLYGON_TAG,
434+
435+ //LIGHTSOURCE_TAG,
436+ DYNAMIC_STRUCTURE_TAG,
410437 ANNOTATION_TAG, OBJECT_TAG,
411438 MAP_INFO_TAG, ITEM_PLACEMENT_STRUCTURE_TAG,
412439 TERMINAL_DATA_TAG, MEDIA_TAG, AMBIENT_SOUND_TAG,
413- RANDOM_SOUND_TAG, //PLATFORM_STATIC_DATA_TAG,
414- PLATFORM_STRUCTURE_TAG,
440+ RANDOM_SOUND_TAG, PLATFORM_STRUCTURE_TAG,
415441 MAP_INDEXES_TAG,
416442 };
417443 for(int i = 0; i < sizeof(tags) / sizeof(int); i ++){
418- data = tag_to_global_array_and_size(tags[i], &size);
419- if(data){
420- append_data_to_wad(wad, tags[i], data, size, 0);
421- //offset += alloc_size;
422- delete data;
423- }
444+ exportTag(tags[i], wad);
424445 }
425-
426- size_t count = 0;
427-
428- //platform
429- count = staticPlatforms.size();
430- if(count > 0){
431- size = SIZEOF_static_platform_data * count;
446+ //side
447+ size_t count = oldSideList.size();
448+ //if(count > 0)
449+ {
450+ size = SIZEOF_side_data * count;
432451 data = new Uint8[size];
433- pack_static_platform_data(data, &staticPlatforms[0], count);
434- append_data_to_wad(wad, PLATFORM_STATIC_DATA_TAG, data, size, 0);
452+ pack_side_data(data, &oldSideList[0], count);
453+
454+ append_data_to_wad(wad, SIDE_TAG, data, size, 0);
435455 delete data;
436456 }
437-
457+ for(int i = 0; i < sizeof(tags2) / sizeof(int); i ++){
458+ exportTag(tags2[i], wad);
459+ }
438460 //light
439461 //light's data is illigal
462+
440463 count = LightList.size();
441- if(count > 0){
464+ //if(count > 0)
465+ {
442466 size = SIZEOF_static_light_data * count;
443467 data = new Uint8[size];
444468 struct static_light_data* slights = new struct static_light_data[count];
@@ -445,11 +469,35 @@
445469 for(size_t i = 0; i < count; i ++){
446470 memcpy(&slights[i], &LightList[i].static_data, SIZEOF_static_light_data);
447471 }
448- pack_static_light_data(data, slights, count);
472+ pack_static_light_data(data, &staticLightList[0], count);
449473 delete slights;
450474 append_data_to_wad(wad, LIGHTSOURCE_TAG, data, size, 0);
451475 delete data;
476+ }/*
477+ for(int i = 0; i < sizeof(tags2) / sizeof(int); i ++){
478+ exportTag(tags2[i], wad);
479+ }*/
480+
481+ //platform
482+ /*
483+ count = staticPlatforms.size();
484+ {
485+ size = SIZEOF_static_platform_data * count;
486+ data = new Uint8[size];
487+ pack_static_platform_data(data, &staticPlatforms[0], count);
488+ append_data_to_wad(wad, PLATFORM_STATIC_DATA_TAG, data, size, 0);
489+ delete data;
452490 }
491+//*/
492+ //PLATFORM_STATIC_DATA_TAG,
493+ // PLATFORM_STRUCTURE_TAG,
494+/* {
495+ int tag = PLATFORM_STRUCTURE_TAG;
496+ data = tag_to_global_array_and_size(tag, &size);
497+ append_data_to_wad(wad, tag, data, size, 0);
498+ //offset += alloc_size;
499+ delete data;
500+ }*/
453501 //terminal
454502 /*count = map_terminal_text.size();
455503 if(count > 0){
@@ -533,7 +581,7 @@
533581
534582 struct directory_entry entry = {0,1,0};
535583
536- static_world->physics_model = 0;
584+ //static_world->physics_model = 0;
537585
538586
539587 wad = export_level_wad_data();
@@ -956,7 +1004,7 @@
9561004 MapIndexList.clear();
9571005 MapIndexList.reserve(map_index_count);
9581006 dynamic_world->map_index_count= 0;
959-
1007+
9601008 // Stuff that needs the max number of polygons
9611009 //allocate_render_memory();
9621010 allocate_flood_map_memory();
@@ -1004,6 +1052,7 @@
10041052
10051053 for(loop=0; loop<count; ++loop)
10061054 {
1055+ //oldSideList.push_back(map_sides[loop]);
10071056 if(version==MARATHON_ONE_DATA_VERSION)
10081057 {
10091058 map_sides[loop].transparent_texture.texture= UNONE;
@@ -1072,7 +1121,7 @@
10721121 {
10731122 case MARATHON_ONE_DATA_VERSION: {
10741123
1075- // Unpack the old lights into a temporary array
1124+ // Unpack the old lights into a temporary arr
10761125 OldLights = new old_light_data[count];
10771126 unpack_old_light_data(_lights,OldLights,count);
10781127
@@ -1092,6 +1141,9 @@
10921141 case MARATHON_TWO_DATA_VERSION:
10931142 case MARATHON_INFINITY_DATA_VERSION:
10941143 // OK to modify the data pointer since it was passed by value
1144+ staticLightList.resize(count);
1145+ unpack_static_light_data(_lights, &staticLightList[0], count);
1146+
10951147 for(loop= 0; loop<count; ++loop)
10961148 {
10971149 static_light_data TempLight;
@@ -1383,10 +1435,12 @@
13831435 /* zero everything so no slots are used */
13841436 initialize_map_for_new_level();
13851437 staticPlatforms.clear();
1438+ oldSideList.clear();
1439+ staticLightList.clear();
13861440
13871441 /* Calculate the length (for reallocate map) */
13881442 allocate_map_structure_for_map(wad);
1389-
1443+
13901444 /* Extract points */
13911445 data= (uint8 *)extract_type_from_wad(wad, POINT_TAG, &data_length);
13921446 // if(data){
@@ -1429,6 +1483,8 @@
14291483 count = data_length/SIZEOF_side_data;
14301484 assert(data_length == count*SIZEOF_side_data);
14311485 load_sides(data, count, version);
1486+ oldSideList.resize(count);
1487+ unpack_side_data(data, &oldSideList[0],count);
14321488
14331489 /* Extract polygons */
14341490 data= (uint8 *)extract_type_from_wad(wad, POLYGON_TAG, &data_length);
@@ -1466,6 +1522,7 @@
14661522 count= data_length/SIZEOF_static_light_data;
14671523 assert(count*SIZEOF_static_light_data==data_length);
14681524 load_lights(data, count, version);
1525+
14691526 }
14701527 // }
14711528
@@ -1913,7 +1970,7 @@
19131970 size_t *size
19141971 )
19151972 {
1916- uint8 *array= NULL;
1973+ uint8 *arr= NULL;
19171974 size_t unit_size = 0;
19181975 size_t count = 0;
19191976 unsigned index;
@@ -2002,6 +2059,7 @@
20022059 case TERMINAL_DATA_TAG:
20032060 count= calculate_packed_terminal_data_length();
20042061 break;
2062+
20052063 case WEAPON_STATE_TAG:
20062064 count= dynamic_world->player_count;
20072065 break;
@@ -2032,104 +2090,104 @@
20322090 // indicate if there is nothing to be written
20332091 *size= count*unit_size;
20342092 if (*size > 0)
2035- array = new byte[*size];
2093+ arr = new byte[*size];
20362094 else
20372095 return NULL;
20382096
2039- // An OK-to-alter version of that array pointer
2040- uint8 *temp_array = array;
2097+ // An OK-to-alter version of that arr pointer
2098+ uint8 *temp_array = arr;
20412099
20422100 switch (tag)
20432101 {
20442102 case ENDPOINT_DATA_TAG:
2045- pack_endpoint_data(array,map_endpoints,count);
2103+ pack_endpoint_data(arr,map_endpoints,count);
20462104 break;
20472105 case LINE_TAG:
2048- pack_line_data(array,map_lines,count);
2106+ pack_line_data(arr,map_lines,count);
20492107 break;
20502108 case SIDE_TAG:
2051- pack_side_data(array,map_sides,count);
2109+ pack_side_data(arr,map_sides,count);
20522110 break;
20532111 case POLYGON_TAG:
2054- pack_polygon_data(array,map_polygons,count);
2112+ pack_polygon_data(arr,map_polygons,count);
20552113 break;
20562114 case LIGHTSOURCE_TAG:
2057- pack_light_data(array,lights,count);
2115+ pack_light_data(arr,lights,count);
20582116 break;
20592117 case ANNOTATION_TAG:
2060- pack_map_annotation(array,map_annotations,count);
2118+ pack_map_annotation(arr,map_annotations,count);
20612119 break;
20622120 case OBJECT_TAG:
2063- pack_map_object(array,saved_objects,count);
2121+ pack_map_object(arr,saved_objects,count);
20642122 break;
20652123 case MAP_INFO_TAG:
2066- pack_static_data(array,static_world,count);
2124+ pack_static_data(arr,static_world,count);
20672125 break;
20682126 case PLAYER_STRUCTURE_TAG:
2069- pack_player_data(array,players,count);
2127+ pack_player_data(arr,players,count);
20702128 break;
20712129 case DYNAMIC_STRUCTURE_TAG:
2072- pack_dynamic_data(array,dynamic_world,count);
2130+ pack_dynamic_data(arr,dynamic_world,count);
20732131 break;
20742132 case OBJECT_STRUCTURE_TAG:
2075- pack_object_data(array,objects,count);
2133+ pack_object_data(arr,objects,count);
20762134 break;
20772135 case MAP_INDEXES_TAG:
20782136 ListToStream(temp_array,map_indexes,count); // E-Z packing here...
20792137 break;
20802138 case AUTOMAP_LINES:
2081- memcpy(array,automap_lines,*size);
2139+ memcpy(arr,automap_lines,*size);
20822140 break;
20832141 case AUTOMAP_POLYGONS:
2084- memcpy(array,automap_polygons,*size);
2142+ memcpy(arr,automap_polygons,*size);
20852143 break;
20862144 case MONSTERS_STRUCTURE_TAG:
2087- pack_monster_data(array,monsters,count);
2145+ pack_monster_data(arr,monsters,count);
20882146 break;
20892147 case EFFECTS_STRUCTURE_TAG:
2090- pack_effect_data(array,effects,count);
2148+ pack_effect_data(arr,effects,count);
20912149 break;
20922150 case PROJECTILES_STRUCTURE_TAG:
2093- pack_projectile_data(array,projectiles,count);
2151+ pack_projectile_data(arr,projectiles,count);
20942152 break;
20952153 case MEDIA_TAG:
2096- pack_media_data(array,medias,count);
2154+ pack_media_data(arr,medias,count);
20972155 break;
20982156 case ITEM_PLACEMENT_STRUCTURE_TAG:
2099- pack_object_frequency_definition(array,get_placement_info(),count);
2157+ pack_object_frequency_definition(arr,get_placement_info(),count);
21002158 break;
21012159 case PLATFORM_STRUCTURE_TAG:
2102- pack_platform_data(array,platforms,count);
2160+ pack_platform_data(arr,platforms,count);
21032161 break;
21042162 case AMBIENT_SOUND_TAG:
2105- pack_ambient_sound_image_data(array,ambient_sound_images,count);
2163+ pack_ambient_sound_image_data(arr,ambient_sound_images,count);
21062164 break;
21072165 case RANDOM_SOUND_TAG:
2108- pack_random_sound_image_data(array,random_sound_images,count);
2166+ pack_random_sound_image_data(arr,random_sound_images,count);
21092167 break;
21102168 case TERMINAL_DATA_TAG:
2111- pack_map_terminal_data(array,count);
2169+ pack_map_terminal_data(arr,count);
21122170 break;
21132171 case WEAPON_STATE_TAG:
2114- pack_player_weapon_data(array,count);
2172+ pack_player_weapon_data(arr,count);
21152173 break;
21162174 case TERMINAL_STATE_TAG:
2117- pack_player_terminal_data(array,count);
2175+ pack_player_terminal_data(arr,count);
21182176 break;
21192177 case MONSTER_PHYSICS_TAG:
2120- pack_monster_definition(array,count);
2178+ pack_monster_definition(arr,count);
21212179 break;
21222180 case EFFECTS_PHYSICS_TAG:
2123- pack_effect_definition(array,count);
2181+ pack_effect_definition(arr,count);
21242182 break;
21252183 case PROJECTILE_PHYSICS_TAG:
2126- pack_projectile_definition(array,count);
2184+ pack_projectile_definition(arr,count);
21272185 break;
21282186 case PHYSICS_PHYSICS_TAG:
2129- pack_physics_constants(array,count);
2187+ pack_physics_constants(arr,count);
21302188 break;
21312189 case WEAPONS_PHYSICS_TAG:
2132- pack_weapon_definition(array,count);
2190+ pack_weapon_definition(arr,count);
21332191 break;
21342192 default:
21352193 assert(false);
@@ -2136,7 +2194,7 @@
21362194 break;
21372195 }
21382196
2139- return array;
2197+ return arr;
21402198 }
21412199
21422200 /* Build the wad, with all the crap */
旧リポジトリブラウザで表示