From 16fc4fea6112b430c17964f0a1670f38ec280bde Mon Sep 17 00:00:00 2001 From: lzwdgc Date: Thu, 1 Jun 2017 21:30:01 +0300 Subject: [PATCH] Some fixes. --- cppan.yml | 4 +-- formats/{mmo2.yml => mmo2.ksy} | 51 ++++++++++++++--------------- src/CMakeLists.txt | 4 +-- src/mmm_extractor/mmm_extractor.bat | 2 ++ src/mmm_extractor/mmm_extractor.py | 25 ++++++++++++++ src/mmo_extractor/mmo_extractor.cpp | 1 + src/mmp_extractor/mmp.cpp | 3 +- src/mmp_extractor/mmp.h | 1 + src/script2txt/CMakeLists.txt | 4 +-- src/tm_converter/tm_converter.cpp | 2 +- 10 files changed, 62 insertions(+), 35 deletions(-) rename formats/{mmo2.yml => mmo2.ksy} (91%) create mode 100644 src/mmm_extractor/mmm_extractor.bat create mode 100644 src/mmm_extractor/mmm_extractor.py diff --git a/cppan.yml b/cppan.yml index 58c8060..d5298ac 100644 --- a/cppan.yml +++ b/cppan.yml @@ -1,6 +1,4 @@ local_settings: dependencies: - #- name: pvt.lzwdgc.polygon4.data_manager - - name: data_manager - local: k:/AIM/DataManager + - pvt.lzwdgc.polygon4.data_manager: master diff --git a/formats/mmo2.yml b/formats/mmo2.ksy similarity index 91% rename from formats/mmo2.yml rename to formats/mmo2.ksy index 347afe7..ad8fb59 100644 --- a/formats/mmo2.yml +++ b/formats/mmo2.ksy @@ -309,92 +309,92 @@ types: type: u4 - id: roads - if: type == segment_type::ROAD + if: type == segment_type::road repeat: expr repeat-expr: n_objects type: map_object_with_array - id: boundaries - if: type == segment_type::BOUNDARY + if: type == segment_type::boundary repeat: expr repeat-expr: n_objects type: map_object_with_array - id: stones - if: type == segment_type::STONE + if: type == segment_type::stone repeat: expr repeat-expr: n_objects type: map_object - id: trees - if: type == segment_type::TREE + if: type == segment_type::tree repeat: expr repeat-expr: n_objects type: map_object - id: helpers - if: type == segment_type::HELPER + if: type == segment_type::helper repeat: expr repeat-expr: n_objects type: map_object - id: buildings - if: type == segment_type::BUILDING + if: type == segment_type::building repeat: expr repeat-expr: n_objects type: map_object - id: lamps - if: type == segment_type::LAMP + if: type == segment_type::lamp repeat: expr repeat-expr: n_objects type: map_object - id: images - if: type == segment_type::IMAGE + if: type == segment_type::image repeat: expr repeat-expr: n_objects type: map_object - id: anomalies - if: type == segment_type::ANOMALY + if: type == segment_type::anomaly repeat: expr repeat-expr: n_objects type: map_object - id: towers - if: type == segment_type::TOWER + if: type == segment_type::tower repeat: expr repeat-expr: n_objects type: map_object - id: sound_zones - if: type == segment_type::SOUND_ZONE + if: type == segment_type::sound_zone repeat: expr repeat-expr: n_objects type: map_object - id: sounds - if: type == segment_type::SOUND + if: type == segment_type::sound repeat: expr repeat-expr: n_objects type: sound enums: segment_type: - 1: TEXTURE - 3: STONE - 4: TREE - 7: HELPER - 8: ROAD - 11: BUILDING - 12: IMAGE - 13: LAMP - 19: SOUND - 20: ANOMALY - 22: TOWER - 23: BOUNDARY - 24: SOUND_ZONE + 1: texture + 3: stone + 4: tree + 7: helper + 8: road + 11: building + 12: image + 13: lamp + 19: sound + 20: anomaly + 22: tower + 23: boundary + 24: sound_zone 21: unk0 27: unk1 @@ -476,4 +476,3 @@ types: repeat-expr: length type: u4 - diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f7ce326..17bd3b9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -11,11 +11,11 @@ endif() file(GLOB mmm_extractor_src "mmm_extractor/*") add_executable(mmm_extractor ${mmm_extractor_src}) -target_link_libraries(mmm_extractor common data_manager) +target_link_libraries(mmm_extractor common pvt.lzwdgc.polygon4.data_manager.data_manager) file(GLOB mmo_extractor_src "mmo_extractor/*") add_executable(mmo_extractor ${mmo_extractor_src}) -target_link_libraries(mmo_extractor common data_manager) +target_link_libraries(mmo_extractor common pvt.lzwdgc.polygon4.data_manager.data_manager) file(GLOB mmp_extractor_src "mmp_extractor/*") add_executable(mmp_extractor ${mmp_extractor_src}) diff --git a/src/mmm_extractor/mmm_extractor.bat b/src/mmm_extractor/mmm_extractor.bat new file mode 100644 index 0000000..954d02a --- /dev/null +++ b/src/mmm_extractor/mmm_extractor.bat @@ -0,0 +1,2 @@ +python mmm_extractor.py --dir h:\Games\AIM\data\minimaps.pak.dir +python mmm_extractor.py --dir h:\Games\Steam\steamapps\common\AIM2\Data\DATA\LOCS \ No newline at end of file diff --git a/src/mmm_extractor/mmm_extractor.py b/src/mmm_extractor/mmm_extractor.py new file mode 100644 index 0000000..544f2d9 --- /dev/null +++ b/src/mmm_extractor/mmm_extractor.py @@ -0,0 +1,25 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +import argparse +import os +import subprocess + +def main(): + parser = argparse.ArgumentParser(description='Batch models converter') + parser.add_argument('--dir', dest='dir', help='path to directory with maps') + pargs = parser.parse_args() + + if pargs.dir: + run(pargs.dir) + +def run(dir): + for file in sorted(os.listdir(dir)): + if os.path.isdir(file) or os.path.splitext(file)[1].lower() != ".mmm": + continue + print('loading: ' + file) + p = subprocess.Popen(['mmm_extractor.exe', dir + '/' + file]) + p.communicate() + +if __name__ == '__main__': + main() diff --git a/src/mmo_extractor/mmo_extractor.cpp b/src/mmo_extractor/mmo_extractor.cpp index 07b2e4c..a00618d 100644 --- a/src/mmo_extractor/mmo_extractor.cpp +++ b/src/mmo_extractor/mmo_extractor.cpp @@ -31,6 +31,7 @@ #include "other.h" #include +#include #include #include diff --git a/src/mmp_extractor/mmp.cpp b/src/mmp_extractor/mmp.cpp index 6b10868..58fc6c6 100644 --- a/src/mmp_extractor/mmp.cpp +++ b/src/mmp_extractor/mmp.cpp @@ -212,7 +212,7 @@ void mmp::process() const int unreal_koef = 51200; const int aim_koef = 10; const double diff = h_max - h_min; - const double scale = aim_koef / (unreal_koef / diff); + scale = aim_koef / (unreal_koef / diff); for (auto &s : segments) { @@ -251,6 +251,7 @@ void mmp::writeFileInfo() ofile << "h_max: " << h_max << "\n"; ofile << "h_diff: " << h_max - h_min << "\n"; ofile << "scale16: " << scale16 << "\n"; + ofile << "scale: " << scale << "\n"; } void mmp::writeTexturesList() diff --git a/src/mmp_extractor/mmp.h b/src/mmp_extractor/mmp.h index 44c142d..c37a4df 100644 --- a/src/mmp_extractor/mmp.h +++ b/src/mmp_extractor/mmp.h @@ -159,6 +159,7 @@ struct mmp Height h_min; Height h_max; double scale16 = 0; + double scale = 0; mat heightmap; mat texmap; mat texmap_colored; diff --git a/src/script2txt/CMakeLists.txt b/src/script2txt/CMakeLists.txt index adca6f8..90216a6 100644 --- a/src/script2txt/CMakeLists.txt +++ b/src/script2txt/CMakeLists.txt @@ -21,7 +21,7 @@ BISON_TARGET(grammar FLEX_TARGET(lexer "${CMAKE_CURRENT_SOURCE_DIR}/lexer.ll" "${CMAKE_CURRENT_BINARY_DIR}/lexer.cpp" - COMPILE_FLAGS --header-file="${CMAKE_CURRENT_BINARY_DIR}/lexer.h" + COMPILE_FLAGS --header-file=${CMAKE_CURRENT_BINARY_DIR}/lexer.h ) ADD_FLEX_BISON_DEPENDENCY(lexer grammar) @@ -45,4 +45,4 @@ set(script2txt_src ${script2txt_src} ) add_executable (script2txt ${script2txt_src} ${script2txt_inc}) -target_link_libraries (script2txt common schema) +target_link_libraries (script2txt common pvt.lzwdgc.polygon4.data_manager.schema) diff --git a/src/tm_converter/tm_converter.cpp b/src/tm_converter/tm_converter.cpp index 26d9e2b..4c25bb0 100644 --- a/src/tm_converter/tm_converter.cpp +++ b/src/tm_converter/tm_converter.cpp @@ -54,7 +54,7 @@ void tm2tga(string fn) src.seek(0x10); src.read(&dxt5_flag, 1); src.seek(0x4C); - + if (dxt5_flag) { dxt5 d;