From a0902365aee92b18c2ec0a9941cb52cfb85280d2 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Tue, 23 Apr 2019 01:20:14 +0800 Subject: [PATCH 1/4] Add unbuild_interface --- code/nel/tools/3d/CMakeLists.txt | 1 + .../tools/3d/unbuild_interface/CMakeLists.txt | 11 ++ .../unbuild_interface/unbuild_interface.cpp | 155 ++++++++++++++++++ 3 files changed, 167 insertions(+) create mode 100644 code/nel/tools/3d/unbuild_interface/CMakeLists.txt create mode 100644 code/nel/tools/3d/unbuild_interface/unbuild_interface.cpp diff --git a/code/nel/tools/3d/CMakeLists.txt b/code/nel/tools/3d/CMakeLists.txt index 08fd9e776..683f2589a 100644 --- a/code/nel/tools/3d/CMakeLists.txt +++ b/code/nel/tools/3d/CMakeLists.txt @@ -34,6 +34,7 @@ IF(WITH_NEL_TOOLS) ENDIF() SUBDIRS( build_interface + unbuild_interface get_neighbors textures_optimizer textures_tool diff --git a/code/nel/tools/3d/unbuild_interface/CMakeLists.txt b/code/nel/tools/3d/unbuild_interface/CMakeLists.txt new file mode 100644 index 000000000..2a10976d3 --- /dev/null +++ b/code/nel/tools/3d/unbuild_interface/CMakeLists.txt @@ -0,0 +1,11 @@ +FILE(GLOB SRC *.cpp *.h) + +SOURCE_GROUP("" FILES ${SRC}) + +ADD_EXECUTABLE(unbuild_interface ${SRC}) + +TARGET_LINK_LIBRARIES(unbuild_interface nelmisc) +NL_DEFAULT_PROPS(unbuild_interface "NeL, Tools, 3D: unbuild_interface") +NL_ADD_RUNTIME_FLAGS(unbuild_interface) + +INSTALL(TARGETS unbuild_interface RUNTIME DESTINATION bin COMPONENT tools3d) diff --git a/code/nel/tools/3d/unbuild_interface/unbuild_interface.cpp b/code/nel/tools/3d/unbuild_interface/unbuild_interface.cpp new file mode 100644 index 000000000..48443cae7 --- /dev/null +++ b/code/nel/tools/3d/unbuild_interface/unbuild_interface.cpp @@ -0,0 +1,155 @@ +/** + * \file unbuild_interface.cpp + * \brief Unbuild Interface + * \date 2009-03-14 13:25GMT + * \author Jan Boon (Kaetemi) + * Unbuild Interface + */ + +/* + * Copyright (C) 2009 by authors + * + * This file is part of NEVRAX NEL. + * NEVRAX NEL is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation, either version 2 of the License, + * or (at your option) any later version. + * + * NEVRAX NEL is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with NEVRAX NEL; see the file COPYING. If not, see + * . + */ + +#include + +// STL includes +#include +#include +#include +#include +#include + +// NeL includes +#include +#include +#include +#include +#include +#include +#include + +// Project includes +// ... + +using namespace std; +using namespace NLMISC; + +namespace { + +} /* anonymous namespace */ + +int main(int nNbArg, char **ppArgs) +{ + // create debug stuff + createDebug(); + + // verify all params + if (nNbArg < 3) + { + nlinfo("ERROR : Wrong number of arguments\n"); + nlinfo("USAGE : unbuild_interface \n"); + return EXIT_FAILURE; + } + string in_tga_name = string(ppArgs[1]); + if (!CFile::fileExists(in_tga_name)) + { + nlerrornoex("File %s does not exist", in_tga_name.c_str()); + return EXIT_FAILURE; + } + string in_txt_name = in_tga_name.substr(0, in_tga_name.size() - 4) + ".txt"; + if (!CFile::fileExists(in_txt_name)) + { + nlerrornoex("File %s does not exist", in_txt_name.c_str()); + return EXIT_FAILURE; + } + string out_path_maps = ppArgs[2]; + if (!CFile::isDirectory(out_path_maps)) + { + nlerrornoex("Directory %s does not exist", out_path_maps.c_str()); + return EXIT_FAILURE; + } + + // read in the tga + CBitmap in_bitmap; + try + { + CIFile in_file; + in_file.open(in_tga_name); + in_bitmap.load(in_file); + in_file.close(); + } + catch (NLMISC::Exception &e) + { + nlerrornoex("(NLMISC::Exception : %s", e.what()); + return EXIT_FAILURE; + } + + // read maps infos from txt + try + { + ifstream in_file; + in_file.open(in_txt_name.c_str()); + string line; + vector line_expl; + line_expl.reserve(5); + while (getline(in_file, line)) + { + // parse from file + line_expl.clear(); + explode(line, " ", line_expl, false); + nlassertex((line_expl.size() == 5), ("Bad line entry count")); + CVectorH vh; // x, y, z, w; + if (!fromString(line_expl[1], vh.x) + || !fromString(line_expl[2], vh.y) + || !fromString(line_expl[3], vh.z) + || !fromString(line_expl[4], vh.w)) + nlerror("Bad line formatting '%s'", line.c_str()); + vh.x *= (float)in_bitmap.getWidth(); + nlassertex((vh.x == (float)(int)vh.x), ("Bad coordinate")); + vh.y *= (float)in_bitmap.getHeight(); + nlassertex((vh.y == (float)(int)vh.y), ("Bad coordinate")); + vh.z *= (float)in_bitmap.getWidth(); + nlassertex((vh.z == (float)(int)vh.z), ("Bad coordinate")); + vh.w *= (float)in_bitmap.getHeight(); + nlassertex((vh.w == (float)(int)vh.w), ("Bad coordinate")); + nlinfo("%s %f %f %f %f", line_expl[0].c_str(), vh.x, vh.y, vh.z, vh.w); + + // write to tga + CBitmap out_bitmap; + out_bitmap.resize((sint32)vh.z - (sint32)vh.x, (sint32)vh.w - (sint32)vh.y, CBitmap::RGBA, true); + out_bitmap.blit(in_bitmap, (sint)vh.x, (sint)vh.y, (sint)vh.z - (sint)vh.x, (sint)vh.w - (sint)vh.y, 0, 0); + COFile out_file; + if (out_file.open(out_path_maps + "/" + line_expl[0])) + { + out_bitmap.writeTGA(out_file, 32); + out_file.close(); + } + else nlerror("Cannot write tga file '%s/%s'", out_path_maps.c_str(), line_expl[0].c_str()); + } + in_file.close(); + } + catch (std::exception &e) + { + nlerrornoex("std::exception : %s", e.what()); + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} + +/* end of file */ From c73f0d944917d8d51860430591450f490ce2635a Mon Sep 17 00:00:00 2001 From: kaetemi Date: Tue, 23 Apr 2019 01:26:35 +0800 Subject: [PATCH 2/4] Add max file library --- code/CMakeModules/FindGLIB2.cmake | 217 + code/CMakeModules/FindLIBGSF.cmake | 57 + code/CMakeModules/nel.cmake | 1 + code/nel/include/nel/misc/class_id.h | 8 + code/nel/src/misc/class_id.cpp | 36 + code/nel/tools/3d/CMakeLists.txt | 6 + .../tools/3d/build_interface/CMakeLists.txt | 2 + code/nel/tools/3d/pipeline_max/CMakeLists.txt | 39 + .../3d/pipeline_max/builtin/animatable.cpp | 173 + .../3d/pipeline_max/builtin/animatable.h | 103 + .../3d/pipeline_max/builtin/base_object.cpp | 113 + .../3d/pipeline_max/builtin/base_object.h | 89 + .../3d/pipeline_max/builtin/bitmap_tex.cpp | 59 + .../3d/pipeline_max/builtin/bitmap_tex.h | 63 + .../tools/3d/pipeline_max/builtin/builtin.cpp | 338 + .../tools/3d/pipeline_max/builtin/builtin.h | 68 + .../pipeline_max/builtin/editable_patch.cpp | 111 + .../3d/pipeline_max/builtin/editable_patch.h | 86 + .../3d/pipeline_max/builtin/geom_object.cpp | 269 + .../3d/pipeline_max/builtin/geom_object.h | 103 + .../tools/3d/pipeline_max/builtin/i_node.cpp | 218 + .../tools/3d/pipeline_max/builtin/i_node.h | 107 + .../3d/pipeline_max/builtin/modifier.cpp | 59 + .../tools/3d/pipeline_max/builtin/modifier.h | 63 + .../nel/tools/3d/pipeline_max/builtin/mtl.cpp | 59 + code/nel/tools/3d/pipeline_max/builtin/mtl.h | 63 + .../3d/pipeline_max/builtin/mtl_base.cpp | 59 + .../tools/3d/pipeline_max/builtin/mtl_base.h | 63 + .../3d/pipeline_max/builtin/multi_mtl.cpp | 59 + .../tools/3d/pipeline_max/builtin/multi_mtl.h | 67 + .../3d/pipeline_max/builtin/node_impl.cpp | 195 + .../tools/3d/pipeline_max/builtin/node_impl.h | 102 + .../tools/3d/pipeline_max/builtin/object.cpp | 113 + .../tools/3d/pipeline_max/builtin/object.h | 89 + .../3d/pipeline_max/builtin/param_block.cpp | 59 + .../3d/pipeline_max/builtin/param_block.h | 63 + .../3d/pipeline_max/builtin/param_block_2.cpp | 59 + .../3d/pipeline_max/builtin/param_block_2.h | 63 + .../3d/pipeline_max/builtin/patch_object.cpp | 111 + .../3d/pipeline_max/builtin/patch_object.h | 90 + .../3d/pipeline_max/builtin/poly_object.cpp | 147 + .../3d/pipeline_max/builtin/poly_object.h | 90 + .../pipeline_max/builtin/reference_maker.cpp | 320 + .../3d/pipeline_max/builtin/reference_maker.h | 110 + .../pipeline_max/builtin/reference_target.cpp | 113 + .../pipeline_max/builtin/reference_target.h | 90 + .../3d/pipeline_max/builtin/root_node.cpp | 117 + .../tools/3d/pipeline_max/builtin/root_node.h | 89 + .../3d/pipeline_max/builtin/scene_impl.cpp | 209 + .../3d/pipeline_max/builtin/scene_impl.h | 112 + .../tools/3d/pipeline_max/builtin/std_mat.cpp | 59 + .../tools/3d/pipeline_max/builtin/std_mat.h | 63 + .../3d/pipeline_max/builtin/std_mat_2.cpp | 59 + .../tools/3d/pipeline_max/builtin/std_mat_2.h | 68 + .../pipeline_max/builtin/storage/app_data.cpp | 507 + .../pipeline_max/builtin/storage/app_data.h | 275 + .../builtin/storage/geom_buffers.cpp | 332 + .../builtin/storage/geom_buffers.h | 134 + .../builtin/super_class_unknown.cpp | 59 + .../builtin/super_class_unknown.h | 67 + .../tools/3d/pipeline_max/builtin/texmap.cpp | 59 + .../tools/3d/pipeline_max/builtin/texmap.h | 63 + .../pipeline_max/builtin/track_view_node.cpp | 192 + .../3d/pipeline_max/builtin/track_view_node.h | 109 + .../3d/pipeline_max/builtin/tri_object.cpp | 147 + .../3d/pipeline_max/builtin/tri_object.h | 90 + code/nel/tools/3d/pipeline_max/class_data.cpp | 203 + code/nel/tools/3d/pipeline_max/class_data.h | 122 + .../3d/pipeline_max/class_directory_3.cpp | 430 + .../tools/3d/pipeline_max/class_directory_3.h | 160 + code/nel/tools/3d/pipeline_max/config.cpp | 553 + code/nel/tools/3d/pipeline_max/config.h | 245 + .../tools/3d/pipeline_max/derived_object.cpp | 55 + .../tools/3d/pipeline_max/derived_object.h | 63 + .../tools/3d/pipeline_max/dll_directory.cpp | 420 + .../nel/tools/3d/pipeline_max/dll_directory.h | 135 + .../tools/3d/pipeline_max/dll_plugin_desc.cpp | 75 + .../tools/3d/pipeline_max/dll_plugin_desc.h | 109 + .../3d/pipeline_max/epoly/editable_poly.cpp | 158 + .../3d/pipeline_max/epoly/editable_poly.h | 89 + .../nel/tools/3d/pipeline_max/epoly/epoly.cpp | 81 + code/nel/tools/3d/pipeline_max/epoly/epoly.h | 84 + code/nel/tools/3d/pipeline_max/scene.cpp | 237 + code/nel/tools/3d/pipeline_max/scene.h | 146 + .../nel/tools/3d/pipeline_max/scene_class.cpp | 288 + code/nel/tools/3d/pipeline_max/scene_class.h | 231 + .../3d/pipeline_max/scene_class_registry.cpp | 176 + .../3d/pipeline_max/scene_class_registry.h | 98 + .../3d/pipeline_max/scene_class_unknown.cpp | 114 + .../3d/pipeline_max/scene_class_unknown.h | 115 + .../tools/3d/pipeline_max/storage_array.cpp | 49 + .../nel/tools/3d/pipeline_max/storage_array.h | 217 + .../tools/3d/pipeline_max/storage_chunks.cpp | 202 + .../tools/3d/pipeline_max/storage_chunks.h | 107 + .../tools/3d/pipeline_max/storage_file.cpp | 55 + code/nel/tools/3d/pipeline_max/storage_file.h | 63 + .../tools/3d/pipeline_max/storage_object.cpp | 386 + .../tools/3d/pipeline_max/storage_object.h | 174 + .../tools/3d/pipeline_max/storage_stream.cpp | 193 + .../tools/3d/pipeline_max/storage_stream.h | 84 + .../tools/3d/pipeline_max/storage_value.cpp | 89 + .../nel/tools/3d/pipeline_max/storage_value.h | 124 + .../3d/pipeline_max/super_class_desc.cpp | 49 + .../tools/3d/pipeline_max/super_class_desc.h | 107 + code/nel/tools/3d/pipeline_max/typedefs.cpp | 49 + code/nel/tools/3d/pipeline_max/typedefs.h | 61 + .../3d/pipeline_max/update1/editable_mesh.cpp | 196 + .../3d/pipeline_max/update1/editable_mesh.h | 89 + .../tools/3d/pipeline_max/update1/update1.cpp | 81 + .../tools/3d/pipeline_max/update1/update1.h | 84 + .../3d/pipeline_max/wsm_derived_object.cpp | 55 + .../3d/pipeline_max/wsm_derived_object.h | 63 + .../tools/3d/pipeline_max_dump/CMakeLists.txt | 36 + .../class_directory_3_2010.c | 352 + .../pipeline_max_dump/class_directory_3_3.c | 346 + .../tools/3d/pipeline_max_dump/config_2010.c | 3691 +++ .../3d/pipeline_max_dump/config_2010.txt | 7192 ++++++ .../nel/tools/3d/pipeline_max_dump/config_3.c | 1798 ++ code/nel/tools/3d/pipeline_max_dump/info.txt | 1184 + code/nel/tools/3d/pipeline_max_dump/main.cpp | 374 + .../tools/3d/pipeline_max_dump/scene_2010.c | 19166 ++++++++++++++++ .../3d/pipeline_max_dump/scene_graph_5.txt | 172 + .../CMakeLists.txt | 36 + .../3d/pipeline_max_rewrite_assets/main.cpp | 1518 ++ 124 files changed, 50211 insertions(+) create mode 100644 code/CMakeModules/FindGLIB2.cmake create mode 100644 code/CMakeModules/FindLIBGSF.cmake create mode 100644 code/nel/tools/3d/pipeline_max/CMakeLists.txt create mode 100644 code/nel/tools/3d/pipeline_max/builtin/animatable.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/animatable.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/base_object.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/base_object.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/bitmap_tex.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/bitmap_tex.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/builtin.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/builtin.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/editable_patch.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/editable_patch.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/geom_object.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/geom_object.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/i_node.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/i_node.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/modifier.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/modifier.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/mtl.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/mtl.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/mtl_base.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/mtl_base.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/multi_mtl.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/multi_mtl.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/node_impl.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/node_impl.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/object.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/object.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/param_block.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/param_block.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/param_block_2.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/param_block_2.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/patch_object.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/patch_object.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/poly_object.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/poly_object.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/reference_maker.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/reference_maker.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/reference_target.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/reference_target.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/root_node.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/root_node.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/scene_impl.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/scene_impl.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/std_mat.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/std_mat.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/std_mat_2.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/std_mat_2.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/storage/app_data.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/storage/app_data.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/storage/geom_buffers.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/storage/geom_buffers.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/super_class_unknown.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/super_class_unknown.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/texmap.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/texmap.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/track_view_node.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/track_view_node.h create mode 100644 code/nel/tools/3d/pipeline_max/builtin/tri_object.cpp create mode 100644 code/nel/tools/3d/pipeline_max/builtin/tri_object.h create mode 100644 code/nel/tools/3d/pipeline_max/class_data.cpp create mode 100644 code/nel/tools/3d/pipeline_max/class_data.h create mode 100644 code/nel/tools/3d/pipeline_max/class_directory_3.cpp create mode 100644 code/nel/tools/3d/pipeline_max/class_directory_3.h create mode 100644 code/nel/tools/3d/pipeline_max/config.cpp create mode 100644 code/nel/tools/3d/pipeline_max/config.h create mode 100644 code/nel/tools/3d/pipeline_max/derived_object.cpp create mode 100644 code/nel/tools/3d/pipeline_max/derived_object.h create mode 100644 code/nel/tools/3d/pipeline_max/dll_directory.cpp create mode 100644 code/nel/tools/3d/pipeline_max/dll_directory.h create mode 100644 code/nel/tools/3d/pipeline_max/dll_plugin_desc.cpp create mode 100644 code/nel/tools/3d/pipeline_max/dll_plugin_desc.h create mode 100644 code/nel/tools/3d/pipeline_max/epoly/editable_poly.cpp create mode 100644 code/nel/tools/3d/pipeline_max/epoly/editable_poly.h create mode 100644 code/nel/tools/3d/pipeline_max/epoly/epoly.cpp create mode 100644 code/nel/tools/3d/pipeline_max/epoly/epoly.h create mode 100644 code/nel/tools/3d/pipeline_max/scene.cpp create mode 100644 code/nel/tools/3d/pipeline_max/scene.h create mode 100644 code/nel/tools/3d/pipeline_max/scene_class.cpp create mode 100644 code/nel/tools/3d/pipeline_max/scene_class.h create mode 100644 code/nel/tools/3d/pipeline_max/scene_class_registry.cpp create mode 100644 code/nel/tools/3d/pipeline_max/scene_class_registry.h create mode 100644 code/nel/tools/3d/pipeline_max/scene_class_unknown.cpp create mode 100644 code/nel/tools/3d/pipeline_max/scene_class_unknown.h create mode 100644 code/nel/tools/3d/pipeline_max/storage_array.cpp create mode 100644 code/nel/tools/3d/pipeline_max/storage_array.h create mode 100644 code/nel/tools/3d/pipeline_max/storage_chunks.cpp create mode 100644 code/nel/tools/3d/pipeline_max/storage_chunks.h create mode 100644 code/nel/tools/3d/pipeline_max/storage_file.cpp create mode 100644 code/nel/tools/3d/pipeline_max/storage_file.h create mode 100644 code/nel/tools/3d/pipeline_max/storage_object.cpp create mode 100644 code/nel/tools/3d/pipeline_max/storage_object.h create mode 100644 code/nel/tools/3d/pipeline_max/storage_stream.cpp create mode 100644 code/nel/tools/3d/pipeline_max/storage_stream.h create mode 100644 code/nel/tools/3d/pipeline_max/storage_value.cpp create mode 100644 code/nel/tools/3d/pipeline_max/storage_value.h create mode 100644 code/nel/tools/3d/pipeline_max/super_class_desc.cpp create mode 100644 code/nel/tools/3d/pipeline_max/super_class_desc.h create mode 100644 code/nel/tools/3d/pipeline_max/typedefs.cpp create mode 100644 code/nel/tools/3d/pipeline_max/typedefs.h create mode 100644 code/nel/tools/3d/pipeline_max/update1/editable_mesh.cpp create mode 100644 code/nel/tools/3d/pipeline_max/update1/editable_mesh.h create mode 100644 code/nel/tools/3d/pipeline_max/update1/update1.cpp create mode 100644 code/nel/tools/3d/pipeline_max/update1/update1.h create mode 100644 code/nel/tools/3d/pipeline_max/wsm_derived_object.cpp create mode 100644 code/nel/tools/3d/pipeline_max/wsm_derived_object.h create mode 100644 code/nel/tools/3d/pipeline_max_dump/CMakeLists.txt create mode 100644 code/nel/tools/3d/pipeline_max_dump/class_directory_3_2010.c create mode 100644 code/nel/tools/3d/pipeline_max_dump/class_directory_3_3.c create mode 100644 code/nel/tools/3d/pipeline_max_dump/config_2010.c create mode 100644 code/nel/tools/3d/pipeline_max_dump/config_2010.txt create mode 100644 code/nel/tools/3d/pipeline_max_dump/config_3.c create mode 100644 code/nel/tools/3d/pipeline_max_dump/info.txt create mode 100644 code/nel/tools/3d/pipeline_max_dump/main.cpp create mode 100644 code/nel/tools/3d/pipeline_max_dump/scene_2010.c create mode 100644 code/nel/tools/3d/pipeline_max_dump/scene_graph_5.txt create mode 100644 code/nel/tools/3d/pipeline_max_rewrite_assets/CMakeLists.txt create mode 100644 code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp diff --git a/code/CMakeModules/FindGLIB2.cmake b/code/CMakeModules/FindGLIB2.cmake new file mode 100644 index 000000000..942b04530 --- /dev/null +++ b/code/CMakeModules/FindGLIB2.cmake @@ -0,0 +1,217 @@ +# - Try to find GLib2 +# Once done this will define +# +# GLIB2_FOUND - system has GLib2 +# GLIB2_INCLUDE_DIRS - the GLib2 include directory +# GLIB2_LIBRARIES - Link these to use GLib2 +# +# HAVE_GLIB_GREGEX_H glib has gregex.h header and +# supports g_regex_match_simple +# +# Copyright (c) 2006 Andreas Schneider +# Copyright (c) 2006 Philippe Bernery +# Copyright (c) 2007 Daniel Gollub +# Copyright (c) 2007 Alban Browaeys +# Copyright (c) 2008 Michael Bell +# Copyright (c) 2008 Bjoern Ricks +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + + +IF (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS ) + # in cache already + SET(GLIB2_FOUND TRUE) +ELSE (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS ) + + INCLUDE(FindPkgConfig) + + ## Glib + IF ( GLIB2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "REQUIRED" ) + ELSE ( GLIB2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "" ) + ENDIF ( GLIB2_FIND_REQUIRED ) + + IF ( GLIB2_MIN_VERSION ) + PKG_SEARCH_MODULE( GLIB2 ${_pkgconfig_REQUIRED} glib-2.0>=${GLIB2_MIN_VERSION} ) + ELSE ( GLIB2_MIN_VERSION ) + PKG_SEARCH_MODULE( GLIB2 ${_pkgconfig_REQUIRED} glib-2.0 ) + ENDIF ( GLIB2_MIN_VERSION ) + IF ( PKG_CONFIG_FOUND ) + IF ( GLIB2_FOUND ) + SET ( GLIB2_CORE_FOUND TRUE ) + ELSE ( GLIB2_FOUND ) + SET ( GLIB2_CORE_FOUND FALSE ) + ENDIF ( GLIB2_FOUND ) + ENDIF ( PKG_CONFIG_FOUND ) + + # Look for glib2 include dir and libraries w/o pkgconfig + IF ( NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUND ) + FIND_PATH( + _glibconfig_include_DIR + NAMES + glibconfig.h + PATHS + /opt/gnome/lib64 + /opt/gnome/lib + /opt/lib/ + /opt/local/lib + /sw/lib/ + /usr/lib64 + /usr/lib + /usr/local/include + ${CMAKE_LIBRARY_PATH} + PATH_SUFFIXES + glib-2.0/include + ) + + FIND_PATH( + _glib2_include_DIR + NAMES + glib.h + PATHS + /opt/gnome/include + /opt/local/include + /sw/include + /usr/include + /usr/local/include + PATH_SUFFIXES + glib-2.0 + ) + + #MESSAGE(STATUS "Glib headers: ${_glib2_include_DIR}") + + FIND_LIBRARY( + _glib2_link_DIR + NAMES + glib-2.0 + glib + PATHS + /opt/gnome/lib + /opt/local/lib + /sw/lib + /usr/lib + /usr/local/lib + ) + IF ( _glib2_include_DIR AND _glib2_link_DIR ) + SET ( _glib2_FOUND TRUE ) + ENDIF ( _glib2_include_DIR AND _glib2_link_DIR ) + + + IF ( _glib2_FOUND ) + SET ( GLIB2_INCLUDE_DIRS ${_glib2_include_DIR} ${_glibconfig_include_DIR} ) + SET ( GLIB2_LIBRARIES ${_glib2_link_DIR} ) + SET ( GLIB2_CORE_FOUND TRUE ) + ELSE ( _glib2_FOUND ) + SET ( GLIB2_CORE_FOUND FALSE ) + ENDIF ( _glib2_FOUND ) + + # Handle dependencies + # libintl + IF ( NOT LIBINTL_FOUND ) + FIND_PATH(LIBINTL_INCLUDE_DIR + NAMES + libintl.h + PATHS + /opt/gnome/include + /opt/local/include + /sw/include + /usr/include + /usr/local/include + ) + + FIND_LIBRARY(LIBINTL_LIBRARY + NAMES + intl + PATHS + /opt/gnome/lib + /opt/local/lib + /sw/lib + /usr/local/lib + /usr/lib + ) + + IF (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR) + SET (LIBINTL_FOUND TRUE) + ENDIF (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR) + ENDIF ( NOT LIBINTL_FOUND ) + + # libiconv + IF ( NOT LIBICONV_FOUND ) + FIND_PATH(LIBICONV_INCLUDE_DIR + NAMES + iconv.h + PATHS + /opt/gnome/include + /opt/local/include + /opt/local/include + /sw/include + /sw/include + /usr/local/include + /usr/include + PATH_SUFFIXES + glib-2.0 + ) + + FIND_LIBRARY(LIBICONV_LIBRARY + NAMES + iconv + PATHS + /opt/gnome/lib + /opt/local/lib + /sw/lib + /usr/lib + /usr/local/lib + ) + + IF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) + SET (LIBICONV_FOUND TRUE) + ENDIF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) + ENDIF ( NOT LIBICONV_FOUND ) + + IF (LIBINTL_FOUND) + SET (GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBINTL_LIBRARY}) + SET (GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBINTL_INCLUDE_DIR}) + ENDIF (LIBINTL_FOUND) + + IF (LIBICONV_FOUND) + SET (GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBICONV_LIBRARY}) + SET (GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBICONV_INCLUDE_DIR}) + ENDIF (LIBICONV_FOUND) + + ENDIF ( NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUND ) + ## + + IF (GLIB2_CORE_FOUND AND GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES) + SET (GLIB2_FOUND TRUE) + ENDIF (GLIB2_CORE_FOUND AND GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES) + + IF (GLIB2_FOUND) + IF (NOT GLIB2_FIND_QUIETLY) + MESSAGE (STATUS "Found GLib2: ${GLIB2_LIBRARIES} ${GLIB2_INCLUDE_DIRS}") + ENDIF (NOT GLIB2_FIND_QUIETLY) + ELSE (GLIB2_FOUND) + IF (GLIB2_FIND_REQUIRED) + MESSAGE (SEND_ERROR "Could not find GLib2") + ENDIF (GLIB2_FIND_REQUIRED) + ENDIF (GLIB2_FOUND) + + # show the GLIB2_INCLUDE_DIRS and GLIB2_LIBRARIES variables only in the advanced view + MARK_AS_ADVANCED(GLIB2_INCLUDE_DIRS GLIB2_LIBRARIES) + MARK_AS_ADVANCED(LIBICONV_INCLUDE_DIR LIBICONV_LIBRARY) + MARK_AS_ADVANCED(LIBINTL_INCLUDE_DIR LIBINTL_LIBRARY) + +ENDIF (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS) + +IF ( GLIB2_FOUND ) + # Check if system has a newer version of glib + # which supports g_regex_match_simple + INCLUDE( CheckIncludeFiles ) + SET( CMAKE_REQUIRED_INCLUDES ${GLIB2_INCLUDE_DIRS} ) + CHECK_INCLUDE_FILES ( glib/gregex.h HAVE_GLIB_GREGEX_H ) + # Reset CMAKE_REQUIRED_INCLUDES + SET( CMAKE_REQUIRED_INCLUDES "" ) +ENDIF( GLIB2_FOUND ) diff --git a/code/CMakeModules/FindLIBGSF.cmake b/code/CMakeModules/FindLIBGSF.cmake new file mode 100644 index 000000000..8d749a87d --- /dev/null +++ b/code/CMakeModules/FindLIBGSF.cmake @@ -0,0 +1,57 @@ +# - Try to find libGSF +# +# Once done this will define +# +# LIBGSF_FOUND - System has LibGSF +# LIBGSF_INCLUDE_DIR - The LibGSF include directory +# LIBGSF_LIBRARIES - The libraries needed to use LibGSF +# LIBGSF_DEFINITIONS - Compiler switches required for using LibGSF +# LIBGSF_GSF_EXECUTABLE - The archive utility +# LIBGSF_GSFOFFICETHUMBNAILER_EXECUTABLE - The office files thumbnailer for the GNOME desktop +# LIBGSF_GSFVBADUMP_EXECUTABLE - The utility to extract Visual Basic for Applications macros + +# Copyright (c) 2009, Pau Garcia i Quiles +# Based off FindLibXml2.cmake from CMake 2.6.4 by Alexander Neundorf +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES) + # in cache already + SET(LIBGSF_FIND_QUIETLY TRUE) +ENDIF (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES) + +IF (NOT WIN32) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + FIND_PACKAGE(PkgConfig) + PKG_CHECK_MODULES(PC_LIBGSF libgsf-1) + SET(LIBGSF_DEFINITIONS ${PC_LIBGSF_CFLAGS_OTHER}) +ENDIF (NOT WIN32) + +FIND_PATH(LIBGSF_INCLUDE_DIR gsf/gsf.h + HINTS + ${PC_LIBGSF_INCLUDEDIR} + ${PC_LIBGSF_INCLUDE_DIRS} + PATH_SUFFIXES libgsf-1 + ) + +FIND_LIBRARY(LIBGSF_LIBRARIES NAMES gsf-1 libgsf-1 + HINTS + ${PC_LIBGSF_LIBDIR} + ${PC_LIBGSF_LIBRARY_DIRS} + ) + +FIND_PROGRAM(LIBGSF_GSF_EXECUTABLE gsf) +FIND_PROGRAM(LIBGSF_GSFOFFICETHUMBNAILER_EXECUTABLE gsf-office-thumbnailer) +FIND_PROGRAM(LIBGSF_GSFVBADUMP_EXECUTABLE gsf-vba-dump) + +INCLUDE(FindPackageHandleStandardArgs) + +# handle the QUIETLY and REQUIRED arguments and set LIBGSF_FOUND to TRUE if +# all listed variables are TRUE +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBGSF DEFAULT_MSG LIBGSF_LIBRARIES LIBGSF_INCLUDE_DIR) + +MARK_AS_ADVANCED(LIBGSF_INCLUDE_DIR LIBGSF_LIBRARIES LIBGSF_GSF_EXECUTABLE LIBGSF_GSFOFFICETHUMBNAILER_EXECUTABLE LIBGSF_GSFVBADUMP_EXECUTABLE ) + diff --git a/code/CMakeModules/nel.cmake b/code/CMakeModules/nel.cmake index abe41ca1f..b216eb1e4 100644 --- a/code/CMakeModules/nel.cmake +++ b/code/CMakeModules/nel.cmake @@ -247,6 +247,7 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS) OPTION(WITH_INSTALL_LIBRARIES "Install development files." ON ) OPTION(WITH_ASSIMP "Use assimp exporter" OFF) + OPTION(WITH_LIBGSF "Use libgsf for max file library" OFF) ### # GUI toolkits diff --git a/code/nel/include/nel/misc/class_id.h b/code/nel/include/nel/misc/class_id.h index c24ba8538..5222bad49 100644 --- a/code/nel/include/nel/misc/class_id.h +++ b/code/nel/include/nel/misc/class_id.h @@ -23,6 +23,7 @@ namespace NLMISC { + class IStream; // *************************************************************************** /** @@ -52,6 +53,13 @@ public: //CClassId& operator=(const CClassId &o) { Uid = o.Uid; return *this;} operator uint64() const {return Uid;} + inline uint32 a() const { return (uint32)(Uid >> 32); } + inline uint32 b() const { return (uint32)(Uid & 0xFFFFFFFFL); } + inline void setA(uint32 a) { Uid = ((uint64)a<<32) | (Uid & 0xFFFFFFFFL); } + inline void setB(uint32 b) { Uid = (Uid & 0xFFFFFFFF00000000L) | b; } + + void serial(NLMISC::IStream &s); + std::string toString() const; }; /** diff --git a/code/nel/src/misc/class_id.cpp b/code/nel/src/misc/class_id.cpp index 72d9cc43b..35a2e4b0e 100644 --- a/code/nel/src/misc/class_id.cpp +++ b/code/nel/src/misc/class_id.cpp @@ -18,7 +18,10 @@ #include "nel/misc/class_id.h" +#include +#include +#include "nel/misc/stream.h" #ifdef DEBUG_NEW #define new DEBUG_NEW @@ -30,6 +33,39 @@ namespace NLMISC const CClassId CClassId::Null(0); +void CClassId::serial(NLMISC::IStream &s) +{ + // s.serial(Uid); + // Backwards. + uint32 va = a(); + uint32 vb = b(); + s.serial(va); + s.serial(vb); + setA(va); + setB(vb); +} + +std::string CClassId::toString() const +{ + std::stringstream ss; + ss << "(0x"; + { + std::stringstream ss1; + ss1 << std::hex << std::setfill('0'); + ss1 << std::setw(8) << a(); + ss << ss1.str(); + } + ss << ", 0x"; + { + std::stringstream ss1; + ss1 << std::hex << std::setfill('0'); + ss1 << std::setw(8) << b(); + ss << ss1.str(); + } + ss << ")"; + return ss.str(); +} + } diff --git a/code/nel/tools/3d/CMakeLists.txt b/code/nel/tools/3d/CMakeLists.txt index 683f2589a..0b6f6540d 100644 --- a/code/nel/tools/3d/CMakeLists.txt +++ b/code/nel/tools/3d/CMakeLists.txt @@ -6,6 +6,12 @@ IF(WITH_NEL_TOOLS) mesh_utils mesh_export) ENDIF() + IF(WITH_LIBGSF) + SUBDIRS( + pipeline_max + pipeline_max_dump + pipeline_max_rewrite_assets) + ENDIF() SUBDIRS( anim_builder animation_set_builder diff --git a/code/nel/tools/3d/build_interface/CMakeLists.txt b/code/nel/tools/3d/build_interface/CMakeLists.txt index 243bc326d..113fe2b84 100644 --- a/code/nel/tools/3d/build_interface/CMakeLists.txt +++ b/code/nel/tools/3d/build_interface/CMakeLists.txt @@ -1,5 +1,7 @@ FILE(GLOB SRC *.cpp *.h) +SOURCE_GROUP("" FILES ${SRC}) + ADD_EXECUTABLE(build_interface ${SRC}) TARGET_LINK_LIBRARIES(build_interface nelmisc) diff --git a/code/nel/tools/3d/pipeline_max/CMakeLists.txt b/code/nel/tools/3d/pipeline_max/CMakeLists.txt new file mode 100644 index 000000000..f80176150 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/CMakeLists.txt @@ -0,0 +1,39 @@ + +FIND_PACKAGE(LIBGSF) + +IF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) + MESSAGE(FATAL_ERROR "LIBGSF not found!") +ENDIF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) + +FIND_PACKAGE(GLIB2) + +if (NOT GLIB2_FOUND) + MESSAGE(FATAL_ERROR "GLIB2 not found!") +ENDIF (NOT GLIB2_FOUND) + +INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${LIBGSF_INCLUDE_DIR}) + +FILE(GLOB SRCS *.cpp builtin/*.cpp builtin/storage/*.cpp update1/*.cpp epoly/*.cpp) +FILE(GLOB HDRS *.h builtin/*.h builtin/storage/*.h update1/*.h epoly/*.h) + +NL_TARGET_LIB(pipeline_max + ${SRCS} + ${HDRS} + ) + +TARGET_LINK_LIBRARIES(pipeline_max + ${LIBGSF_LIBRARIES} + ${GLIB2_LIBRARIES} + nelmisc +) + +SET_TARGET_PROPERTIES(pipeline_max PROPERTIES LINK_INTERFACE_LIBRARIES "") + +NL_DEFAULT_PROPS(pipeline_max "NeL, Tools, 3D: Pipeline Max (Library)") +NL_ADD_LIB_SUFFIX(pipeline_max) +NL_ADD_RUNTIME_FLAGS(pipeline_max) + +IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) + INSTALL(TARGETS pipeline_max LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) +ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) diff --git a/code/nel/tools/3d/pipeline_max/builtin/animatable.cpp b/code/nel/tools/3d/pipeline_max/builtin/animatable.cpp new file mode 100644 index 000000000..3bc65c181 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/animatable.cpp @@ -0,0 +1,173 @@ +/** + * \file animatable.cpp + * \brief CAnimatable + * \date 2012-08-22 08:52GMT + * \author Jan Boon (Kaetemi) + * CAnimatable + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "animatable.h" + +// STL includes + +// NeL includes +// #include + +// Project includes +#include "storage/app_data.h" + +using namespace std; +// using namespace NLMISC; + +#define PBM_ANIMATABLE_UNKNOWN2140_CHUNK_ID 0x2140 + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CAnimatable::CAnimatable(CScene *scene) : CSceneClass(scene), m_AppData(NULL) +{ + +} + +CAnimatable::~CAnimatable() +{ + if (!m_ChunksOwnsPointers) + { + delete m_Unknown2140; + m_Unknown2140 = NULL; + delete m_AppData; + m_AppData = NULL; + } +} + +const ucstring CAnimatable::DisplayName = ucstring("Animatable"); +const char *CAnimatable::InternalName = "Animatable"; +const char *CAnimatable::InternalNameUnknown = "AnimatableUnknown"; +const NLMISC::CClassId CAnimatable::ClassId = NLMISC::CClassId(0x3101497b, 0x24af711b); /* Not official, please correct */ +const TSClassId CAnimatable::SuperClassId = 0x77a60fbd; /* Not official, please correct */ +const CAnimatableClassDesc AnimatableClassDesc(&DllPluginDescBuiltin); +const CAnimatableSuperClassDesc AnimatableSuperClassDesc(&AnimatableClassDesc); + +void CAnimatable::parse(uint16 version, uint filter) +{ + CSceneClass::parse(version); + if (!m_ChunksOwnsPointers) + { + m_Unknown2140 = getChunk(PBM_ANIMATABLE_UNKNOWN2140_CHUNK_ID); + if (m_Unknown2140) + { + // nldebug("Found unknown 0x2140"); + // TODO: Put std::cout code here + } + m_AppData = static_cast(getChunk(PMBS_APP_DATA_CHUNK_ID)); + } +} + +void CAnimatable::clean() +{ + CSceneClass::clean(); + if (m_AppData) m_AppData->clean(); +} + +void CAnimatable::build(uint16 version, uint filter) +{ + CSceneClass::build(version); + if (m_Unknown2140) + { + putChunk(PBM_ANIMATABLE_UNKNOWN2140_CHUNK_ID, m_Unknown2140); + } + if (m_AppData) + { + if (m_AppData->entries().size() == 0) + { + // Discard appdata if it has no entries + delete m_AppData; + m_AppData = NULL; + } + else + { + putChunk(PMBS_APP_DATA_CHUNK_ID, m_AppData); + } + } +} + +void CAnimatable::disown() +{ + m_Unknown2140 = NULL; + m_AppData = NULL; + CSceneClass::disown(); +} + +void CAnimatable::init() +{ + CSceneClass::init(); +} + +bool CAnimatable::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CSceneClass::inherits(classId); +} + +const ISceneClassDesc *CAnimatable::classDesc() const +{ + return &AnimatableClassDesc; +} + +void CAnimatable::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CSceneClass::toStringLocal(ostream, pad); + if (m_AppData && m_AppData->entries().size() != 0) + { + ostream << "\n" << pad << "AppData: "; + m_AppData->toString(ostream, pad + "\t"); + } +} + +STORAGE::CAppData *CAnimatable::appData() +{ + if (m_ChunksOwnsPointers) { nlerror("Not parsed"); return NULL; } + if (!m_AppData) + { + m_AppData = new STORAGE::CAppData(); + m_AppData->init(); + } + return m_AppData; +} + +IStorageObject *CAnimatable::createChunkById(uint16 id, bool container) +{ + switch (id) + { + case PMBS_APP_DATA_CHUNK_ID: + return new STORAGE::CAppData; + } + return CSceneClass::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/animatable.h b/code/nel/tools/3d/pipeline_max/builtin/animatable.h new file mode 100644 index 000000000..cee7e1362 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/animatable.h @@ -0,0 +1,103 @@ +/** + * \file animatable.h + * \brief CAnimatable + * \date 2012-08-22 08:52GMT + * \author Jan Boon (Kaetemi) + * CAnimatable + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_ANIMATABLE_H +#define PIPELINE_ANIMATABLE_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "../scene.h" +#include "../scene_class.h" +#include "../super_class_desc.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { +namespace STORAGE { + +class CAppData; + +} + +/** + * \brief CAnimatable + * \date 2012-08-22 08:52GMT + * \author Jan Boon (Kaetemi) + * This scene class owns the AppData chunk + */ +class CAnimatable : public CSceneClass +{ +public: + CAnimatable(CScene *scene); + virtual ~CAnimatable(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const char *InternalNameUnknown; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + + // public + STORAGE::CAppData *appData(); + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + IStorageObject *m_Unknown2140; + STORAGE::CAppData *m_AppData; + +}; /* class CAnimatable */ + +typedef CSceneClassDesc CAnimatableClassDesc; +extern const CAnimatableClassDesc AnimatableClassDesc; +typedef CSuperClassDesc CAnimatableSuperClassDesc; +extern const CAnimatableSuperClassDesc AnimatableSuperClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_ANIMATABLE_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/base_object.cpp b/code/nel/tools/3d/pipeline_max/builtin/base_object.cpp new file mode 100644 index 000000000..2dfa30fbd --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/base_object.cpp @@ -0,0 +1,113 @@ +/** + * \file base_object.cpp + * \brief CBaseObject + * \date 2012-08-22 08:53GMT + * \author Jan Boon (Kaetemi) + * CBaseObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "base_object.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CBaseObject::CBaseObject(CScene *scene) : CReferenceTarget(scene) +{ + +} + +CBaseObject::~CBaseObject() +{ + +} + +const ucstring CBaseObject::DisplayName = ucstring("BaseObject"); +const char *CBaseObject::InternalName = "BaseObject"; +// const char *CBaseObject::InternalNameUnknown = "BaseObjectUnknown"; +const NLMISC::CClassId CBaseObject::ClassId = NLMISC::CClassId(0x71c8167a, 0x5a9f57b2); /* Not official, please correct */ +const TSClassId CBaseObject::SuperClassId = CReferenceTarget::SuperClassId; +const CBaseObjectClassDesc BaseObjectClassDesc(&DllPluginDescBuiltin); +// const CBaseObjectSuperClassDesc BaseObjectSuperClassDesc(&BaseObjectClassDesc); + +void CBaseObject::parse(uint16 version, uint filter) +{ + CReferenceTarget::parse(version); +} + +void CBaseObject::clean() +{ + CReferenceTarget::clean(); +} + +void CBaseObject::build(uint16 version, uint filter) +{ + CReferenceTarget::build(version); +} + +void CBaseObject::disown() +{ + CReferenceTarget::disown(); +} + +void CBaseObject::init() +{ + CReferenceTarget::init(); +} + +bool CBaseObject::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CReferenceTarget::inherits(classId); +} + +const ISceneClassDesc *CBaseObject::classDesc() const +{ + return &BaseObjectClassDesc; +} + +void CBaseObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CReferenceTarget::toStringLocal(ostream, pad); +} + +IStorageObject *CBaseObject::createChunkById(uint16 id, bool container) +{ + return CReferenceTarget::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/base_object.h b/code/nel/tools/3d/pipeline_max/builtin/base_object.h new file mode 100644 index 000000000..ecd5bdb68 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/base_object.h @@ -0,0 +1,89 @@ +/** + * \file base_object.h + * \brief CBaseObject + * \date 2012-08-22 08:53GMT + * \author Jan Boon (Kaetemi) + * CBaseObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_BASE_OBJECT_H +#define PIPELINE_BASE_OBJECT_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "reference_target.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CBaseObject + * \date 2012-08-22 08:53GMT + * \author Jan Boon (Kaetemi) + * CBaseObject + */ +class CBaseObject : public CReferenceTarget +{ +public: + CBaseObject(CScene *scene); + virtual ~CBaseObject(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + // static const char *InternalNameUnknown; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CBaseObject */ + +typedef CSceneClassDesc CBaseObjectClassDesc; +extern const CBaseObjectClassDesc BaseObjectClassDesc; +// typedef CSuperClassDesc CBaseObjectSuperClassDesc; +// extern const CBaseObjectSuperClassDesc BaseObjectSuperClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_BASE_OBJECT_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/bitmap_tex.cpp b/code/nel/tools/3d/pipeline_max/builtin/bitmap_tex.cpp new file mode 100644 index 000000000..2a451279b --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/bitmap_tex.cpp @@ -0,0 +1,59 @@ +/** + * \file bitmap_tex.cpp + * \brief CBitmapTex + * \date 2012-08-22 08:56GMT + * \author Jan Boon (Kaetemi) + * CBitmapTex + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "bitmap_tex.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CBitmapTex::CBitmapTex(CScene *scene) : CTexmap(scene) +{ + +} + +CBitmapTex::~CBitmapTex() +{ + +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/bitmap_tex.h b/code/nel/tools/3d/pipeline_max/builtin/bitmap_tex.h new file mode 100644 index 000000000..559d46a3a --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/bitmap_tex.h @@ -0,0 +1,63 @@ +/** + * \file bitmap_tex.h + * \brief CBitmapTex + * \date 2012-08-22 08:56GMT + * \author Jan Boon (Kaetemi) + * CBitmapTex + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_BITMAP_TEX_H +#define PIPELINE_BITMAP_TEX_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "texmap.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CBitmapTex + * \date 2012-08-22 08:56GMT + * \author Jan Boon (Kaetemi) + * CBitmapTex + */ +class CBitmapTex : public CTexmap +{ +public: + CBitmapTex(CScene *scene); + virtual ~CBitmapTex(); + +}; /* class CBitmapTex */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_BITMAP_TEX_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/builtin.cpp b/code/nel/tools/3d/pipeline_max/builtin/builtin.cpp new file mode 100644 index 000000000..dafe1d5e8 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/builtin.cpp @@ -0,0 +1,338 @@ +/** + * \file builtin.cpp + * \brief CBuiltin + * \date 2012-08-22 09:42GMT + * \author Jan Boon (Kaetemi) + * CBuiltin + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "builtin.h" + +// STL includes + +// NeL includes +// #include + +// Project includes +#include "../scene_class_registry.h" + +#include "animatable.h" +#include "reference_maker.h" +#include "reference_target.h" + +#include "scene_impl.h" + +#include "i_node.h" +#include "node_impl.h" +#include "root_node.h" + +#include "track_view_node.h" + +#include "base_object.h" +#include "object.h" +#include "geom_object.h" +#include "tri_object.h" +#include "poly_object.h" +#include "patch_object.h" +#include "editable_patch.h" + +// using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +namespace { + +// 0x0 - invalid, default to reftarget +typedef CSuperClassDescUnknown CNullSuperClassDesc; +const CNullSuperClassDesc NullSuperClassDesc(&ReferenceTargetClassDesc, "NullSuperClassUnknown"); + +// 0x9003 bezier float control, subclass under control???; control is under reftarget +typedef CSuperClassDescUnknown CControlFloatSuperClassDesc; +const CControlFloatSuperClassDesc ControlFloatSuperClassDesc(&ReferenceTargetClassDesc, "ControlFloatSuperClassUnknown"); + +// 0x8 param block, under reftarget directly +typedef CSuperClassDescUnknown CParamBlockSuperClassDesc; +const CParamBlockSuperClassDesc ParamBlockSuperClassDesc(&ReferenceTargetClassDesc, "ParamBlockSuperClassUnknown"); + +// 0xc20 uv gen, sub of mtlbase +typedef CSuperClassDescUnknown CUVGenSuperClassDesc; +const CUVGenSuperClassDesc UVGenSuperClassDesc(&ReferenceTargetClassDesc, "UVGenSuperClassUnknown"); + +// 0x82 param block 2, under reftarget directly +typedef CSuperClassDescUnknown CParamBlock2SuperClassDesc; +const CParamBlock2SuperClassDesc ParamBlock2SuperClassDesc(&ReferenceTargetClassDesc, "ParamBlock2SuperClassUnknown"); + +// 0xc40 output, textureoutput???, under mtlbase +typedef CSuperClassDescUnknown CTextureOutputSuperClassDesc; +const CTextureOutputSuperClassDesc TextureOutputSuperClassDesc(&ReferenceTargetClassDesc, "TextureOutputSuperClassUnknown"); + +// 0xc10 texmap, under mtlbase +typedef CSuperClassDescUnknown CTexmapSuperClassDesc; +const CTexmapSuperClassDesc TexmapSuperClassDesc(&ReferenceTargetClassDesc, "TexmapSuperClassUnknown"); + +// 0x1080 texmap_container, 'Texmaps' under reftarget directly +typedef CSuperClassDescUnknown CTexmapContainerSuperClassDesc; +const CTexmapContainerSuperClassDesc TexmapContainerSuperClassDesc(&ReferenceTargetClassDesc, "TexmapContainerSuperClassUnknown"); + +// 0x10b0, shader, under baseshader, under special_Fx +typedef CSuperClassDescUnknown CShaderSuperClassDesc; +const CShaderSuperClassDesc ShaderSuperClassDesc(&ReferenceTargetClassDesc, "ShaderSuperClassUnknown"); + +// 0x1110, sampler, under special_fx +typedef CSuperClassDescUnknown CSamplerSuperClassDesc; +const CSamplerSuperClassDesc SamplerSuperClassDesc(&ReferenceTargetClassDesc, "SamplerSuperClassUnknown"); + +// 0xc00, mtl 'materials', under mtlbase +typedef CSuperClassDescUnknown CMtlSuperClassDesc; +const CMtlSuperClassDesc MtlSuperClassDesc(&ReferenceTargetClassDesc, "MtlSuperClassUnknown"); + +// 0xd00, soundobj, under reftarget directly +typedef CSuperClassDescUnknown CSoundObjSuperClassDesc; +const CSoundObjSuperClassDesc SoundObjSuperClassDesc(&ReferenceTargetClassDesc, "SoundObjSuperClassUnknown"); +/* +// 0x1, node; under reftarget directly; classid 1 is node, 2 is rootnode +typedef CSuperClassDescUnknown CNodeSuperClassDesc; +const CNodeSuperClassDesc NodeSuperClassDesc(&ReferenceTargetClassDesc, "NodeSuperClassUnknown"); +*/ +// 0x900b, controlposition, under control??? +typedef CSuperClassDescUnknown CControlPositionSuperClassDesc; +const CControlPositionSuperClassDesc ControlPositionSuperClassDesc(&ReferenceTargetClassDesc, "ControlPositionSuperClassUnknown"); + +// 0x900c, controlrotation, under control??? +typedef CSuperClassDescUnknown CControlRotationSuperClassDesc; +const CControlRotationSuperClassDesc ControlRotationSuperClassDesc(&ReferenceTargetClassDesc, "ControlRotationSuperClassUnknown"); + +// 0x900d, control_scale, under control??? +typedef CSuperClassDescUnknown CControlScaleSuperClassDesc; +const CControlScaleSuperClassDesc ControlScaleSuperClassDesc(&ReferenceTargetClassDesc, "ControlScaleSuperClassUnknown"); + +// 0x9008, pos/rot/scale; controltransform; matrix3; under control??? +typedef CSuperClassDescUnknown CControlTransformSuperClassDesc; +const CControlTransformSuperClassDesc ControlTransformSuperClassDesc(&ReferenceTargetClassDesc, "ControlTransformSuperClassUnknown"); + +// 0x810 - osmodifier, under modifier (physique etc, necessary for skinning) +typedef CSuperClassDescUnknown COSModifierSuperClassDesc; +const COSModifierSuperClassDesc OSModifierSuperClassDesc(&ReferenceTargetClassDesc, "OSModifierSuperClassUnknown"); + +// 0x9010 - master point controller +typedef CSuperClassDescUnknown CMasterPointControllerSuperClassDesc; +const CMasterPointControllerSuperClassDesc MasterPointControllerSuperClassDesc(&ReferenceTargetClassDesc, "MasterPointControllerSuperClassUnknown"); +/* +// 0x10 - geom object +typedef CSuperClassDescUnknown CGeomObjectSuperClassDesc; +const CGeomObjectSuperClassDesc GeomObjectSuperClassDesc(&ReferenceTargetClassDesc, "GeomObjectSuperClassUnknown"); +*/ +// 0x10f0 - layer, under reftarget directly +typedef CSuperClassDescUnknown CLayerSuperClassDesc; +const CLayerSuperClassDesc LayerSuperClassDesc(&ReferenceTargetClassDesc, "LayerSuperClassUnknown"); +/* +// 0x60 - object???, under base object +typedef CSuperClassDescUnknown CObjectSuperClassDesc; +const CObjectSuperClassDesc ObjectSuperClassDesc(&ReferenceTargetClassDesc, "ObjectSuperClassUnknown"); +*/ +// 0x50 helperobject, under object... +typedef CSuperClassDescUnknown CHelperObjectSuperClassDesc; +const CHelperObjectSuperClassDesc HelperObjectSuperClassDesc(&ReferenceTargetClassDesc, "HelperObjectSuperClassUnknown"); + +// 0x10a0 filterkernel, under specialfx (example: area filter) +typedef CSuperClassDescUnknown CFilterKernelSuperClassDesc; +const CFilterKernelSuperClassDesc FilterKernelSuperClassDesc(&ReferenceTargetClassDesc, "FilterKernelSuperClassUnknown"); + +// 0xf00 - renderer ,direct sub of reftarget +typedef CSuperClassDescUnknown CRendererSuperClassDesc; +const CRendererSuperClassDesc RendererSuperClassDesc(&ReferenceTargetClassDesc, "RendererSuperClassUnknown"); + +// 0x9005 - control point3 (also color), under control??? +typedef CSuperClassDescUnknown CControlPoint3SuperClassDesc; +const CControlPoint3SuperClassDesc ControlPoint3SuperClassDesc(&ReferenceTargetClassDesc, "ControlPoint3SuperClassUnknown"); + +// 0x1010 - atmospheric, under special effects +typedef CSuperClassDescUnknown CAtmosphericSuperClassDesc; +const CAtmosphericSuperClassDesc AtmosphericSuperClassDesc(&ReferenceTargetClassDesc, "AtmosphericSuperClassUnknown"); + +// 0x9011 - control master block 'block control', under control??? +typedef CSuperClassDescUnknown CControlMasterBlockSuperClassDesc; +const CControlMasterBlockSuperClassDesc ControlMasterBlockSuperClassDesc(&ReferenceTargetClassDesc, "ControlMasterBlockSuperClassUnknown"); + +// 0xfffffe00 - grid reference, not sure where, probably directly under reftarget +typedef CSuperClassDescUnknown CGridReferenceSuperClassDesc; +const CGridReferenceSuperClassDesc GridReferenceSuperClassDesc(&ReferenceTargetClassDesc, "GridReferenceSuperClassUnknown"); + +// 0x1090 - render effect, possibly under special fx +typedef CSuperClassDescUnknown CRenderEffectSuperClassDesc; +const CRenderEffectSuperClassDesc RenderEffectSuperClassDesc(&ReferenceTargetClassDesc, "RenderEffectSuperClassUnknown"); + +// 0x10d0 - shadow type, directly under ref target +typedef CSuperClassDescUnknown CShadowTypeSuperClassDesc; +const CShadowTypeSuperClassDesc ShadowTypeSuperClassDesc(&ReferenceTargetClassDesc, "ShadowTypeSuperClassUnknown"); + +// 0x1160 - CustAttrib, directly under ref target +typedef CSuperClassDescUnknown CCustAttribSuperClassDesc; +const CCustAttribSuperClassDesc CustAttribSuperClassDesc(&ReferenceTargetClassDesc, "CustAttribSuperClassUnknown"); + +// 0x9012 - point4list, controlpoint4, also rgba, under controll??? +typedef CSuperClassDescUnknown CControlPoint4SuperClassDesc; +const CControlPoint4SuperClassDesc ControlPoint4SuperClassDesc(&ReferenceTargetClassDesc, "ControlPoint4SuperClassUnknown"); + +// 0xb60 - userdatatype, deprecated, don't care +typedef CSuperClassDescUnknown CUserDataTypeSuperClassDesc; +const CUserDataTypeSuperClassDesc UserDataTypeSuperClassDesc(&ReferenceTargetClassDesc, "UserDataTypeSuperClassUnknown"); + +// 0x900f - usertype, don't care +typedef CSuperClassDescUnknown CUserTypeSuperClassDesc; +const CUserTypeSuperClassDesc UserTypeSuperClassDesc(&ReferenceTargetClassDesc, "UserTypeSuperClassUnknown"); + +// 0x40 - shape object (text, ...) +typedef CSuperClassDescUnknown CShapeObjectSuperClassDesc; +const CShapeObjectSuperClassDesc ShapeObjectSuperClassDesc(&GeomObjectClassDesc, "ShapeObjectSuperClassUnknown"); + +// 0x30 - light object (omni, ...) +typedef CSuperClassDescUnknown CLightObjectSuperClassDesc; +const CLightObjectSuperClassDesc LightObjectSuperClassDesc(&ObjectClassDesc, "LightObjectSuperClassUnknown"); + +// 0x20 camera - (target, ...) +typedef CSuperClassDescUnknown CCameraObjectSuperClassDesc; +const CCameraObjectSuperClassDesc CameraObjectSuperClassDesc(&ObjectClassDesc, "CameraObjectSuperClassUnknown"); + +// Creating superclass 0x820 (FFD Binding) (0xd6636ea2, 0x9aa42bf3) that does not exist = WSM, sub of modifier (under baseobj) +typedef CSuperClassDescUnknown CWSModifierSuperClassDesc; +const CWSModifierSuperClassDesc WSModifierSuperClassDesc(&BaseObjectClassDesc, "WSModifierSuperClassUnknown"); + +// Creating superclass 0x830 (FFD(Cyl)) (0xfa4700be, 0xbbe85051) that does not exist = WSMObject, sub of object +typedef CSuperClassDescUnknown CWSMObjectSuperClassDesc; +const CWSMObjectSuperClassDesc WSMObjectSuperClassDesc(&ObjectClassDesc, "WSMObjectSuperClassUnknown"); + +// Creating superclass 0xc30 (Placement) (0x00000100, 0x00000000) that does not exist | xyzgen, sub of mtlbase +typedef CSuperClassDescUnknown CXYZGenSuperClassDesc; +const CXYZGenSuperClassDesc XYZGenSuperClassDesc(&ReferenceTargetClassDesc, "XYZGenSuperClassUnknown"); + +} /* anonymous namespace */ + +CBuiltin::CBuiltin() +{ + +} + +CBuiltin::~CBuiltin() +{ + +} + + +void CBuiltin::registerClasses(CSceneClassRegistry *registry) +{ + // invalid + registry->add(&NullSuperClassDesc); + + // available + registry->add(&AnimatableClassDesc); + registry->add(&AnimatableSuperClassDesc); + registry->add(&ReferenceMakerClassDesc); + registry->add(&ReferenceMakerSuperClassDesc); + registry->add(&ReferenceTargetClassDesc); + registry->add(&ReferenceTargetSuperClassDesc); + + // scene (inh ReferenceMaker) + registry->add(&SceneImplClassDesc); + + // node (inh ReferenceTarget) + registry->add(&NodeSuperClassDesc); + registry->add(&NodeClassDesc); + { + registry->add(&NodeImplClassDesc); + registry->add(&RootNodeClassDesc); + } + + // tvnode (inh ReferenceTarget) + registry->add(&TrackViewNodeClassDesc); + + // object (inh ReferenceMaker) + registry->add(&BaseObjectClassDesc); + { + registry->add(&ObjectSuperClassDesc); + registry->add(&ObjectClassDesc); + { + registry->add(&GeomObjectSuperClassDesc); + registry->add(&GeomObjectClassDesc); + { + registry->add(&TriObjectClassDesc); + registry->add(&PolyObjectClassDesc); + registry->add(&PatchObjectClassDesc); + { + registry->add(&EditablePatchClassDesc); + } + } + } + } + + // unimplemented + registry->add(&ControlFloatSuperClassDesc); + registry->add(&ParamBlockSuperClassDesc); + registry->add(&UVGenSuperClassDesc); + registry->add(&ParamBlock2SuperClassDesc); + registry->add(&TextureOutputSuperClassDesc); + registry->add(&TexmapSuperClassDesc); + registry->add(&TexmapContainerSuperClassDesc); + registry->add(&ShaderSuperClassDesc); + registry->add(&SamplerSuperClassDesc); + registry->add(&MtlSuperClassDesc); + registry->add(&SoundObjSuperClassDesc); + // registry->add(&NodeSuperClassDesc); + registry->add(&ControlPositionSuperClassDesc); + registry->add(&ControlRotationSuperClassDesc); + registry->add(&ControlScaleSuperClassDesc); + registry->add(&ControlTransformSuperClassDesc); + registry->add(&OSModifierSuperClassDesc); + registry->add(&MasterPointControllerSuperClassDesc); + //registry->add(&GeomObjectSuperClassDesc); + registry->add(&LayerSuperClassDesc); + //registry->add(&ObjectSuperClassDesc); + registry->add(&HelperObjectSuperClassDesc); + registry->add(&FilterKernelSuperClassDesc); + registry->add(&RendererSuperClassDesc); + registry->add(&ControlPoint3SuperClassDesc); + registry->add(&AtmosphericSuperClassDesc); + registry->add(&ControlMasterBlockSuperClassDesc); + registry->add(&GridReferenceSuperClassDesc); + registry->add(&RenderEffectSuperClassDesc); + registry->add(&ShadowTypeSuperClassDesc); + registry->add(&CustAttribSuperClassDesc); + registry->add(&ControlPoint4SuperClassDesc); + registry->add(&UserDataTypeSuperClassDesc); + registry->add(&UserTypeSuperClassDesc); + registry->add(&ShapeObjectSuperClassDesc); + registry->add(&LightObjectSuperClassDesc); + registry->add(&CameraObjectSuperClassDesc); + registry->add(&WSModifierSuperClassDesc); + registry->add(&WSMObjectSuperClassDesc); + registry->add(&XYZGenSuperClassDesc); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/builtin.h b/code/nel/tools/3d/pipeline_max/builtin/builtin.h new file mode 100644 index 000000000..8a65a223a --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/builtin.h @@ -0,0 +1,68 @@ +/** + * \file builtin.h + * \brief CBuiltin + * \date 2012-08-22 09:42GMT + * \author Jan Boon (Kaetemi) + * CBuiltin + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_BUILTIN_H +#define PIPELINE_BUILTIN_H +#include + +// STL includes + +// NeL includes + +// Project includes + +namespace PIPELINE { +namespace MAX { + +class CSceneClassRegistry; + +namespace BUILTIN { + +/** + * \brief CBuiltin + * \date 2012-08-22 09:42GMT + * \author Jan Boon (Kaetemi) + * CBuiltin + */ +class CBuiltin +{ +public: + static void registerClasses(CSceneClassRegistry *registry); + +private: + CBuiltin(); + virtual ~CBuiltin(); + +}; /* class CBuiltin */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_BUILTIN_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/editable_patch.cpp b/code/nel/tools/3d/pipeline_max/builtin/editable_patch.cpp new file mode 100644 index 000000000..27f427a02 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/editable_patch.cpp @@ -0,0 +1,111 @@ +/** + * \file editable_patch.cpp + * \brief CEditablePatch + * \date 2012-08-26 12:12GMT + * \author Jan Boon (Kaetemi) + * CEditablePatch + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "editable_patch.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +// using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CEditablePatch::CEditablePatch(CScene *scene) : CPatchObject(scene) +{ + +} + +CEditablePatch::~CEditablePatch() +{ + +} + +const ucstring CEditablePatch::DisplayName = ucstring("EditablePatch"); +const char *CEditablePatch::InternalName = "EditablePatch"; +const NLMISC::CClassId CEditablePatch::ClassId = NLMISC::CClassId(0x00001030, 0x00000000); +const TSClassId CEditablePatch::SuperClassId = CPatchObject::SuperClassId; +const CEditablePatchClassDesc EditablePatchClassDesc(&DllPluginDescBuiltin); + +void CEditablePatch::parse(uint16 version, uint filter) +{ + CPatchObject::parse(version); +} + +void CEditablePatch::clean() +{ + CPatchObject::clean(); +} + +void CEditablePatch::build(uint16 version, uint filter) +{ + CPatchObject::build(version); +} + +void CEditablePatch::disown() +{ + CPatchObject::disown(); +} + +void CEditablePatch::init() +{ + CPatchObject::init(); +} + +bool CEditablePatch::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CPatchObject::inherits(classId); +} + +const ISceneClassDesc *CEditablePatch::classDesc() const +{ + return &EditablePatchClassDesc; +} + +void CEditablePatch::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CPatchObject::toStringLocal(ostream, pad); +} + +IStorageObject *CEditablePatch::createChunkById(uint16 id, bool container) +{ + return CPatchObject::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/editable_patch.h b/code/nel/tools/3d/pipeline_max/builtin/editable_patch.h new file mode 100644 index 000000000..60ed8dc4d --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/editable_patch.h @@ -0,0 +1,86 @@ +/** + * \file editable_patch.h + * \brief CEditablePatch + * \date 2012-08-26 12:12GMT + * \author Jan Boon (Kaetemi) + * CEditablePatch + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_EDITABLE_PATCH_H +#define PIPELINE_EDITABLE_PATCH_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "patch_object.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CEditablePatch + * \date 2012-08-26 12:12GMT + * \author Jan Boon (Kaetemi) + * CEditablePatch + */ +class CEditablePatch : public CPatchObject +{ +public: + CEditablePatch(CScene *scene); + virtual ~CEditablePatch(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CEditablePatch */ + +typedef CSceneClassDesc CEditablePatchClassDesc; +extern const CEditablePatchClassDesc EditablePatchClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_EDITABLE_PATCH_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/geom_object.cpp b/code/nel/tools/3d/pipeline_max/builtin/geom_object.cpp new file mode 100644 index 000000000..76bb5a4aa --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/geom_object.cpp @@ -0,0 +1,269 @@ +/** + * \file geom_object.cpp + * \brief CGeomGeomObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CGeomGeomObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "geom_object.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +// using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +#define PMB_GEOM_UNKNOWN0900_CHUNK_ID 0x0900 +#define PMB_GEOM_BUFFERS_CHUNK_ID 0x08fe + +CGeomObject::CGeomObject(CScene *scene) : CObject(scene), m_Unknown0900(NULL), m_GeomBuffers(NULL) +{ + +} + +CGeomObject::~CGeomObject() +{ + if (!m_ChunksOwnsPointers) + { + m_Unknown0900 = NULL; + m_GeomBuffers = NULL; + } +} + +const ucstring CGeomObject::DisplayName = ucstring("GeomObject"); +const char *CGeomObject::InternalName = "GeomObject"; +const char *CGeomObject::InternalNameUnknown = "GeomObjectUnknown"; +const NLMISC::CClassId CGeomObject::ClassId = NLMISC::CClassId(0x37097c44, 0x38aa3f24); /* Not official, please correct */ +const TSClassId CGeomObject::SuperClassId = 0x00000010; +const CGeomObjectClassDesc GeomObjectClassDesc(&DllPluginDescBuiltin); +const CGeomObjectSuperClassDesc GeomObjectSuperClassDesc(&GeomObjectClassDesc); + +void CGeomObject::parse(uint16 version, uint filter) +{ + if (filter == 0) + { + CObject::parse(version); + } + else if (filter == PMB_GEOM_OBJECT_PARSE_FILTER) + { + if (!m_ChunksOwnsPointers) + { + m_Unknown0900 = getChunk(PMB_GEOM_UNKNOWN0900_CHUNK_ID); + m_GeomBuffers = static_cast(getChunk(PMB_GEOM_BUFFERS_CHUNK_ID)); + } + } +} + +void CGeomObject::clean() +{ + CObject::clean(); +} + +void CGeomObject::build(uint16 version, uint filter) +{ + if (filter == 0) + { + CObject::build(version); + } + else if (filter == PMB_GEOM_OBJECT_PARSE_FILTER) + { + if (m_Unknown0900) putChunk(PMB_GEOM_UNKNOWN0900_CHUNK_ID, m_Unknown0900); + if (m_GeomBuffers) putChunk(PMB_GEOM_BUFFERS_CHUNK_ID, m_GeomBuffers); + } +} + +void CGeomObject::disown() +{ + m_Unknown0900 = NULL; + m_GeomBuffers = NULL; + CObject::disown(); +} + +void CGeomObject::init() +{ + CObject::init(); +} + +bool CGeomObject::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CObject::inherits(classId); +} + +const ISceneClassDesc *CGeomObject::classDesc() const +{ + return &GeomObjectClassDesc; +} + +void CGeomObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + if (filter == 0) + { + CObject::toStringLocal(ostream, pad); + } + else if (filter == PMB_GEOM_OBJECT_PARSE_FILTER) + { + std::string padpad = pad + "\t"; + if (m_Unknown0900) + { + ostream << "\n" << pad << "GeomObject Unknown 0x0900: "; + m_Unknown0900->toString(ostream, padpad); + } + if (m_GeomBuffers) + { + ostream << "\n" << pad << "GeomBuffers: "; + m_GeomBuffers->toString(ostream, padpad); + } + } +} + +inline uint32 rrsub(uint32 v, uint32 size) +{ + if (v) return v - 1; + return size - 1; +} + +inline uint32 rradd(uint32 v, uint32 size) +{ + uint32 vp = v + 1; + if (vp != size) return vp; + return 0; +} + +void CGeomObject::triangulatePolyFace(std::vector &triangles, const STORAGE::CGeomPolyFaceInfo &polyFace) +{ + nlassert(polyFace.Vertices.size() >= 3); + nlassert(polyFace.Triangulation.size() == polyFace.Vertices.size() - 3); + uint nbVert = polyFace.Vertices.size(); + uint nbCuts = polyFace.Triangulation.size(); + uint nbTriangles = 0; + + // This code creates a matrix, aka a table, of all possible paths + // that can be traveled to get directly from one vertex to another + // over an egde. + // Outer edges of the polygon are one-way, backwards. + // Cut edges can be traveled both ways. + // Each edge direction can only be traveled by one triangle. + // Ingenious, if I may say so myself. + // Bad performance by std::vector, though. + std::vector > from_to; + from_to.resize(nbVert); + for (uint i = 0; i < nbVert; ++i) + { + from_to[i].resize(nbVert); + for (uint j = 0; j < nbVert; ++j) + { + from_to[i][j] = false; + } + // Can travel backwards over the outer edge + from_to[i][rrsub(i, nbVert)] = true; + } + for (uint i = 0; i < nbCuts; ++i) + { + // Can travel both ways over cuts, but the first direction is handled directly! + // from_to[polyFace.Triangulation[i].first][polyFace.Triangulation[i].second] = true; + from_to[polyFace.Triangulation[i].second][polyFace.Triangulation[i].first] = true; + } + // Triangulate all cuts, this assumes cuts are in the direction + // of a triangle that is not already handled by another cut... + for (uint i = 0; i < nbCuts; ++i) + { + uint32 a = polyFace.Triangulation[i].first; + uint32 b = polyFace.Triangulation[i].second; + // from_to[polyFace.Triangulation[i].first][polyFace.Triangulation[i].second] = false; // handled! + // Try to find a path that works + for (uint c = 0; c < nbVert; ++c) + { + // Can we make a triangle + if (from_to[b][c] && from_to[c][a]) + { + STORAGE::CGeomTriIndex tri; + tri.a = polyFace.Vertices[c]; + tri.b = polyFace.Vertices[b]; + tri.c = polyFace.Vertices[a]; + triangles.push_back(tri); + ++nbTriangles; + // nldebug("add tri from cut"); + from_to[b][c] = false; + from_to[c][a] = false; + break; + } + } + } + // Find... The Last Triangle + for (uint a = 0; a < nbVert; ++a) + { + uint b = rrsub(a, nbVert); + // Can we still travel backwards over the outer edge? + if (from_to[a][b]) + { + for (uint c = 0; c < nbVert; ++c) + { + // Can we make a triangle + if (from_to[b][c] && from_to[c][a]) + { + STORAGE::CGeomTriIndex tri; + tri.a = polyFace.Vertices[c]; + tri.b = polyFace.Vertices[b]; + tri.c = polyFace.Vertices[a]; + triangles.push_back(tri); + ++nbTriangles; + // nldebug("add final tri"); + from_to[b][c] = false; + from_to[c][a] = false; + break; + } + } + } + } + // nldebug("triangles: %i", nbTriangles); + // nldebug("cuts: %i", nbCuts); + nlassert(nbTriangles == nbCuts + 1); +} + +IStorageObject *CGeomObject::createChunkById(uint16 id, bool container) +{ + switch (id) + { + case PMB_GEOM_UNKNOWN0900_CHUNK_ID: + return new CStorageArray(); + case PMB_GEOM_BUFFERS_CHUNK_ID: + return new STORAGE::CGeomBuffers(); + } + return CObject::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/geom_object.h b/code/nel/tools/3d/pipeline_max/builtin/geom_object.h new file mode 100644 index 000000000..5415ddca3 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/geom_object.h @@ -0,0 +1,103 @@ +/** + * \file geom_object.h + * \brief CGeomGeomObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CGeomGeomObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_GEOM_OBJECT_H +#define PIPELINE_GEOM_OBJECT_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "object.h" +#include "storage/geom_buffers.h" + +/// Must be passed to the parse and build functions by +/// inheriting classes to parse the actual geom object. +#define PMB_GEOM_OBJECT_PARSE_FILTER 0x432a4da6 + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CGeomGeomObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CGeomGeomObject + */ +class CGeomObject : public CObject +{ +public: + CGeomObject(CScene *scene); + virtual ~CGeomObject(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const char *InternalNameUnknown; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + + static void triangulatePolyFace(std::vector &triangles, const STORAGE::CGeomPolyFaceInfo &polyFace); + + // read access + inline STORAGE::CGeomBuffers *geomBuffers() const { return m_GeomBuffers; } + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + IStorageObject *m_Unknown0900; + STORAGE::CGeomBuffers *m_GeomBuffers; + +}; /* class CGeomObject */ + +typedef CSceneClassDesc CGeomObjectClassDesc; +extern const CGeomObjectClassDesc GeomObjectClassDesc; +typedef CSuperClassDesc CGeomObjectSuperClassDesc; +extern const CGeomObjectSuperClassDesc GeomObjectSuperClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_GEOM_OBJECT_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/i_node.cpp b/code/nel/tools/3d/pipeline_max/builtin/i_node.cpp new file mode 100644 index 000000000..b24825c26 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/i_node.cpp @@ -0,0 +1,218 @@ +/** + * \file i_node.cpp + * \brief INode + * \date 2012-08-22 19:45GMT + * \author Jan Boon (Kaetemi) + * INode + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "i_node.h" + +// STL includes +#include + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +INode::INode(CScene *scene) : CReferenceTarget(scene) +{ + +} + +INode::~INode() +{ + +} + +const ucstring INode::DisplayName = ucstring("Node Interface"); +const char *INode::InternalName = "Node"; +const char *INode::InternalNameUnknown = "NodeUnknown"; +const NLMISC::CClassId INode::ClassId = NLMISC::CClassId(0x8f5b13, 0x624d477d); /* Not official, please correct */ +const TSClassId INode::SuperClassId = 0x00000001; +const CNodeClassDesc NodeClassDesc(&DllPluginDescBuiltin); +const CNodeSuperClassDesc NodeSuperClassDesc(&NodeClassDesc); + +void INode::parse(uint16 version, uint filter) +{ + CReferenceTarget::parse(version); +} + +void INode::clean() +{ + CReferenceTarget::clean(); +} + +void INode::build(uint16 version, uint filter) +{ + CReferenceTarget::build(version); +} + +void INode::disown() +{ + CReferenceTarget::disown(); +} + +void INode::init() +{ + CReferenceTarget::init(); +} + +bool INode::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CReferenceTarget::inherits(classId); +} + +const ISceneClassDesc *INode::classDesc() const +{ + return &NodeClassDesc; +} + +void INode::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CReferenceTarget::toStringLocal(ostream, pad); + // Print the implied connected children + ostream << "\n" << pad << "Children: IMPLICIT { "; + uint i = 0; + for (std::set >::iterator it = m_Children.begin(), end = m_Children.end(); it != end; ++it) + { + INode *node = (*it); + nlassert(node); + if (node) + { + ostream << "\n" << pad << "\t" << i << ": "; + ostream << "(" << ucstring(node->classDesc()->displayName()).toUtf8() << ", " << node->classDesc()->classId().toString() << ") "; + ostream << node->userName().toUtf8() << " "; + } + else + { + ostream << "\n" << pad << "\t" << i << ": NULL "; + } + ++i; + } + ostream << "} "; +} + +INode *INode::parent() +{ + nlerror("Unkown node class, cannot get parent node"); + return NULL; +} + +void INode::setParent(INode *node) +{ + nlerror("Unkown node class, cannot set parent node"); +} + +void INode::addChild(INode *node) +{ + m_Children.insert(node); +} + +void INode::removeChild(INode *node) +{ + m_Children.erase(node); +} + +const ucstring &INode::userName() const +{ + static const ucstring v = ucstring("Invalid INode"); + return v; +} + +INode *INode::find(const ucstring &userName) const +{ + ucstring unl = NLMISC::toLower(userName); + for (std::set >::iterator it = m_Children.begin(), end = m_Children.end(); it != end; ++it) + { + INode *node = (*it); + nlassert(node); + if (NLMISC::toLower(node->userName()) == unl) + return node; + } + return NULL; +} + +void INode::dumpNodes(std::ostream &ostream, const std::string &pad) const +{ + ostream << " " << userName().toUtf8() << " [" << m_Children.size() << "] { "; + CReferenceMaker *object = getReference(1); + if (object) // TODO: Implement! + { + ostream << "\n" << pad << "Object: "; + ostream << " "; + ostream << ucstring(object->classDesc()->displayName()).toUtf8() << " "; + } + uint i = 0 ; + std::string padpad = pad + "\t"; + for (std::set >::iterator it = m_Children.begin(), end = m_Children.end(); it != end; ++it) + { + INode *node = (*it); + nlassert(node); + ostream << "\n" << pad << i << ": "; + node->dumpNodes(ostream, padpad); + ++i; + } + ostream << "} "; +} + +IStorageObject *INode::createChunkById(uint16 id, bool container) +{ + return CReferenceTarget::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/i_node.h b/code/nel/tools/3d/pipeline_max/builtin/i_node.h new file mode 100644 index 000000000..1e033a5ca --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/i_node.h @@ -0,0 +1,107 @@ +/** + * \file i_node.h + * \brief INode + * \date 2012-08-22 19:45GMT + * \author Jan Boon (Kaetemi) + * INode + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_I_NODE_H +#define PIPELINE_I_NODE_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "reference_target.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief INode + * \date 2012-08-22 19:45GMT + * \author Jan Boon (Kaetemi) + * INode + */ +class INode : public CReferenceTarget +{ +public: + INode(CScene *scene); + virtual ~INode(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const char *InternalNameUnknown; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + + // node interface + virtual INode *parent(); + virtual void setParent(INode *node); + virtual void addChild(INode *node); + virtual void removeChild(INode *node); // does not delete + virtual const ucstring &userName() const; + INode *find(const ucstring &userName) const; + + // dump + void dumpNodes(std::ostream &ostream, const std::string &pad = "") const; + + // read access + /// The children that are linked to this node by the parent tag + inline const std::set > &children() const { return m_Children; } + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +protected: + std::set > m_Children; + +}; /* class INode */ + +typedef CSceneClassDesc CNodeClassDesc; +extern const CNodeClassDesc NodeClassDesc; +typedef CSuperClassDesc CNodeSuperClassDesc; +extern const CNodeSuperClassDesc NodeSuperClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_I_NODE_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/modifier.cpp b/code/nel/tools/3d/pipeline_max/builtin/modifier.cpp new file mode 100644 index 000000000..d21db02da --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/modifier.cpp @@ -0,0 +1,59 @@ +/** + * \file modifier.cpp + * \brief CModifier + * \date 2012-08-22 08:59GMT + * \author Jan Boon (Kaetemi) + * CModifier + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "modifier.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CModifier::CModifier(CScene *scene) : CBaseObject(scene) +{ + +} + +CModifier::~CModifier() +{ + +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/modifier.h b/code/nel/tools/3d/pipeline_max/builtin/modifier.h new file mode 100644 index 000000000..4e7ab45b3 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/modifier.h @@ -0,0 +1,63 @@ +/** + * \file modifier.h + * \brief CModifier + * \date 2012-08-22 08:59GMT + * \author Jan Boon (Kaetemi) + * CModifier + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_MODIFIER_H +#define PIPELINE_MODIFIER_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "base_object.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CModifier + * \date 2012-08-22 08:59GMT + * \author Jan Boon (Kaetemi) + * CModifier + */ +class CModifier : public CBaseObject +{ +public: + CModifier(CScene *scene); + virtual ~CModifier(); + +}; /* class CModifier */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_MODIFIER_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/mtl.cpp b/code/nel/tools/3d/pipeline_max/builtin/mtl.cpp new file mode 100644 index 000000000..431b978f5 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/mtl.cpp @@ -0,0 +1,59 @@ +/** + * \file mtl.cpp + * \brief CMtl + * \date 2012-08-22 08:54GMT + * \author Jan Boon (Kaetemi) + * CMtl + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "mtl.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CMtl::CMtl(CScene *scene) : CMtlBase(scene) +{ + +} + +CMtl::~CMtl() +{ + +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/mtl.h b/code/nel/tools/3d/pipeline_max/builtin/mtl.h new file mode 100644 index 000000000..ec7e927fa --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/mtl.h @@ -0,0 +1,63 @@ +/** + * \file mtl.h + * \brief CMtl + * \date 2012-08-22 08:54GMT + * \author Jan Boon (Kaetemi) + * CMtl + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_MTL_H +#define PIPELINE_MTL_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "mtl_base.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CMtl + * \date 2012-08-22 08:54GMT + * \author Jan Boon (Kaetemi) + * CMtl + */ +class CMtl : public CMtlBase +{ +public: + CMtl(CScene *scene); + virtual ~CMtl(); + +}; /* class CMtl */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_MTL_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/mtl_base.cpp b/code/nel/tools/3d/pipeline_max/builtin/mtl_base.cpp new file mode 100644 index 000000000..6cbb25319 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/mtl_base.cpp @@ -0,0 +1,59 @@ +/** + * \file mtl_base.cpp + * \brief CMtlBase + * \date 2012-08-22 08:53GMT + * \author Jan Boon (Kaetemi) + * CMtlBase + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "mtl_base.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CMtlBase::CMtlBase(CScene *scene) : CReferenceTarget(scene) +{ + +} + +CMtlBase::~CMtlBase() +{ + +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/mtl_base.h b/code/nel/tools/3d/pipeline_max/builtin/mtl_base.h new file mode 100644 index 000000000..f5fd0e646 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/mtl_base.h @@ -0,0 +1,63 @@ +/** + * \file mtl_base.h + * \brief CMtlBase + * \date 2012-08-22 08:53GMT + * \author Jan Boon (Kaetemi) + * CMtlBase + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_MTL_BASE_H +#define PIPELINE_MTL_BASE_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "reference_target.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CMtlBase + * \date 2012-08-22 08:53GMT + * \author Jan Boon (Kaetemi) + * CMtlBase + */ +class CMtlBase : public CReferenceTarget +{ +public: + CMtlBase(CScene *scene); + virtual ~CMtlBase(); + +}; /* class CMtlBase */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_MTL_BASE_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/multi_mtl.cpp b/code/nel/tools/3d/pipeline_max/builtin/multi_mtl.cpp new file mode 100644 index 000000000..ca9c8c9d2 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/multi_mtl.cpp @@ -0,0 +1,59 @@ +/** + * \file multi_mtl.cpp + * \brief CMultiMtl + * \date 2012-08-22 08:55GMT + * \author Jan Boon (Kaetemi) + * CMultiMtl + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "multi_mtl.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CMultiMtl::CMultiMtl() +{ + +} + +CMultiMtl::~CMultiMtl() +{ + +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/multi_mtl.h b/code/nel/tools/3d/pipeline_max/builtin/multi_mtl.h new file mode 100644 index 000000000..6cfe11ab2 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/multi_mtl.h @@ -0,0 +1,67 @@ +/** + * \file multi_mtl.h + * \brief CMultiMtl + * \date 2012-08-22 08:55GMT + * \author Jan Boon (Kaetemi) + * CMultiMtl + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_MULTI_MTL_H +#define PIPELINE_MULTI_MTL_H +#include + +// STL includes + +// NeL includes + +// Project includes + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CMultiMtl + * \date 2012-08-22 08:55GMT + * \author Jan Boon (Kaetemi) + * CMultiMtl + */ +class CMultiMtl +{ +protected: + // pointers + // ... + + // instances + // ... +public: + CMultiMtl(); + virtual ~CMultiMtl(); +}; /* class CMultiMtl */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_MULTI_MTL_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/node_impl.cpp b/code/nel/tools/3d/pipeline_max/builtin/node_impl.cpp new file mode 100644 index 000000000..4adc4bc4f --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/node_impl.cpp @@ -0,0 +1,195 @@ +/** + * \file node_impl.cpp + * \brief CNodeImpl + * \date 2012-08-22 20:01GMT + * \author Jan Boon (Kaetemi) + * CNodeImpl + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "node_impl.h" + +// STL includes +#include + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +#define PMB_NODE_VERSION_CHUNK_ID 0x09ce +#define PMB_NODE_PARENT_CHUNK_ID 0x0960 +#define PMB_NODE_NAME_CHUNK_ID 0x0962 + +CNodeImpl::CNodeImpl(CScene *scene) : INode(scene), m_NodeVersion(0), m_ParentFlags(0), m_UserName(ucstring("Untitled Node")) +{ + +} + +CNodeImpl::~CNodeImpl() +{ + +} + +const ucstring CNodeImpl::DisplayName = ucstring("Node"); +const char *CNodeImpl::InternalName = "NodeImpl"; +const NLMISC::CClassId CNodeImpl::ClassId = NLMISC::CClassId(0x00000001, 0x00000000); +const TSClassId CNodeImpl::SuperClassId = INode::SuperClassId; +const CNodeImplClassDesc NodeImplClassDesc(&DllPluginDescBuiltin); + +void CNodeImpl::parse(uint16 version, uint filter) +{ + INode::parse(version); + if (!m_ChunksOwnsPointers) + { + m_NodeVersion = getChunkValue(PMB_NODE_VERSION_CHUNK_ID); + + CStorageArray *parent = static_cast *>(getChunk(PMB_NODE_PARENT_CHUNK_ID)); + nlassert(parent); + nlassert(parent->Value.size() == 2); + setParent(dynamic_cast(container()->getByStorageIndex((sint32)parent->Value[0]))); + nlassert(m_Parent); + m_ParentFlags = parent->Value[1]; + m_ArchivedChunks.push_back(parent); + + m_UserName = getChunkValue(PMB_NODE_NAME_CHUNK_ID); + } +} + +void CNodeImpl::clean() +{ + INode::clean(); +} + +void CNodeImpl::build(uint16 version, uint filter) +{ + INode::build(version); + + putChunkValue(PMB_NODE_VERSION_CHUNK_ID, m_NodeVersion); + + CStorageArray *parent = new CStorageArray(); + parent->Value.resize(2); + parent->Value[0] = container()->getOrCreateStorageIndex(m_Parent); + parent->Value[1] = m_ParentFlags; + m_ArchivedChunks.push_back(parent); + putChunk(PMB_NODE_PARENT_CHUNK_ID, parent); + + putChunkValue(PMB_NODE_NAME_CHUNK_ID, m_UserName); +} + +void CNodeImpl::disown() +{ + m_NodeVersion = 0; + setParent(NULL); + m_ParentFlags = 0; + m_UserName = ucstring("Untitled Node"); + + INode::disown(); +} + +void CNodeImpl::init() +{ + INode::init(); +} + +bool CNodeImpl::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return INode::inherits(classId); +} + +const ISceneClassDesc *CNodeImpl::classDesc() const +{ + return &NodeImplClassDesc; +} + +void CNodeImpl::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + INode::toStringLocal(ostream, pad); + ostream << "\n" << pad << "NodeVersion: " << m_NodeVersion; + ostream << "\n" << pad << "Parent: "; + INode *parent = m_Parent; + nlassert(parent); + if (parent) + { + ostream << " "; + ostream << "(" << ucstring(parent->classDesc()->displayName()).toUtf8() << ", " << parent->classDesc()->classId().toString() << ") "; + ostream << parent->userName().toUtf8(); + } + else + { + ostream << "NULL"; + } + ostream << "\n" << pad << "ParentFlags: " << m_ParentFlags; + ostream << "\n" << pad << "UserName: " << m_UserName.toUtf8() << " "; +} + +INode *CNodeImpl::parent() +{ + return m_Parent; +} + +void CNodeImpl::setParent(INode *node) +{ + if (m_Parent) m_Parent->removeChild(this); + m_Parent = node; + if (node) node->addChild(this); +} + +const ucstring &CNodeImpl::userName() const +{ + return m_UserName; +} + +IStorageObject *CNodeImpl::createChunkById(uint16 id, bool container) +{ + switch (id) + { + case PMB_NODE_VERSION_CHUNK_ID: + return new CStorageValue(); + case PMB_NODE_PARENT_CHUNK_ID: + return new CStorageArray(); + case PMB_NODE_NAME_CHUNK_ID: + return new CStorageValue(); + } + return INode::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/node_impl.h b/code/nel/tools/3d/pipeline_max/builtin/node_impl.h new file mode 100644 index 000000000..69a70fd7d --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/node_impl.h @@ -0,0 +1,102 @@ +/** + * \file node_impl.h + * \brief CNodeImpl + * \date 2012-08-22 20:01GMT + * \author Jan Boon (Kaetemi) + * CNodeImpl + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_NODE_IMPL_H +#define PIPELINE_NODE_IMPL_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "i_node.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CNodeImpl + * \date 2012-08-22 20:01GMT + * \author Jan Boon (Kaetemi) + * CNodeImpl + */ +class CNodeImpl : public INode +{ +public: + CNodeImpl(CScene *scene); + virtual ~CNodeImpl(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + + // node interface + virtual INode *parent(); + virtual void setParent(INode *node); + // virtual void addChild(INode *node); + // virtual void removeChild(INode *node); // does not delete + virtual const ucstring &userName() const; + + // read access + inline uint32 nodeVersion() const { return m_NodeVersion; } + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + uint32 m_NodeVersion; + NLMISC::CRefPtr m_Parent; + uint32 m_ParentFlags; + ucstring m_UserName; + +}; /* class CNodeImpl */ + +typedef CSceneClassDesc CNodeImplClassDesc; +extern const CNodeImplClassDesc NodeImplClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_NODE_IMPL_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/object.cpp b/code/nel/tools/3d/pipeline_max/builtin/object.cpp new file mode 100644 index 000000000..d44df1c13 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/object.cpp @@ -0,0 +1,113 @@ +/** + * \file object.cpp + * \brief CObject + * \date 2012-08-22 09:13GMT + * \author Jan Boon (Kaetemi) + * CObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "object.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CObject::CObject(CScene *scene) : CBaseObject(scene) +{ + +} + +CObject::~CObject() +{ + +} + +const ucstring CObject::DisplayName = ucstring("Object"); +const char *CObject::InternalName = "Object"; +const char *CObject::InternalNameUnknown = "ObjectUnknown"; +const NLMISC::CClassId CObject::ClassId = NLMISC::CClassId(0x14021ed1, 0x33837a80); /* Not official, please correct */ +const TSClassId CObject::SuperClassId = 0x00000060; +const CObjectClassDesc ObjectClassDesc(&DllPluginDescBuiltin); +const CObjectSuperClassDesc ObjectSuperClassDesc(&ObjectClassDesc); + +void CObject::parse(uint16 version, uint filter) +{ + CBaseObject::parse(version); +} + +void CObject::clean() +{ + CBaseObject::clean(); +} + +void CObject::build(uint16 version, uint filter) +{ + CBaseObject::build(version); +} + +void CObject::disown() +{ + CBaseObject::disown(); +} + +void CObject::init() +{ + CBaseObject::init(); +} + +bool CObject::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CBaseObject::inherits(classId); +} + +const ISceneClassDesc *CObject::classDesc() const +{ + return &ObjectClassDesc; +} + +void CObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CBaseObject::toStringLocal(ostream, pad); +} + +IStorageObject *CObject::createChunkById(uint16 id, bool container) +{ + return CBaseObject::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/object.h b/code/nel/tools/3d/pipeline_max/builtin/object.h new file mode 100644 index 000000000..0beddb361 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/object.h @@ -0,0 +1,89 @@ +/** + * \file object.h + * \brief CObject + * \date 2012-08-22 09:13GMT + * \author Jan Boon (Kaetemi) + * CObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_OBJECT_H +#define PIPELINE_OBJECT_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "base_object.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CObject + * \date 2012-08-22 09:13GMT + * \author Jan Boon (Kaetemi) + * CObject + */ +class CObject : public CBaseObject +{ +public: + CObject(CScene *scene); + virtual ~CObject(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const char *InternalNameUnknown; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CObject */ + +typedef CSceneClassDesc CObjectClassDesc; +extern const CObjectClassDesc ObjectClassDesc; +typedef CSuperClassDesc CObjectSuperClassDesc; +extern const CObjectSuperClassDesc ObjectSuperClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_OBJECT_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/param_block.cpp b/code/nel/tools/3d/pipeline_max/builtin/param_block.cpp new file mode 100644 index 000000000..a6321f716 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/param_block.cpp @@ -0,0 +1,59 @@ +/** + * \file param_block.cpp + * \brief CParamBlock + * \date 2012-08-22 08:57GMT + * \author Jan Boon (Kaetemi) + * CParamBlock + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "param_block.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CParamBlock::CParamBlock(CScene *scene) : CReferenceTarget(scene) +{ + +} + +CParamBlock::~CParamBlock() +{ + +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/param_block.h b/code/nel/tools/3d/pipeline_max/builtin/param_block.h new file mode 100644 index 000000000..76cfa0e76 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/param_block.h @@ -0,0 +1,63 @@ +/** + * \file param_block.h + * \brief CParamBlock + * \date 2012-08-22 08:57GMT + * \author Jan Boon (Kaetemi) + * CParamBlock + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_PARAM_BLOCK_H +#define PIPELINE_PARAM_BLOCK_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "reference_target.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CParamBlock + * \date 2012-08-22 08:57GMT + * \author Jan Boon (Kaetemi) + * CParamBlock + */ +class CParamBlock : public CReferenceTarget +{ +public: + CParamBlock(CScene *scene); + virtual ~CParamBlock(); + +}; /* class CParamBlock */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_PARAM_BLOCK_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/param_block_2.cpp b/code/nel/tools/3d/pipeline_max/builtin/param_block_2.cpp new file mode 100644 index 000000000..e450c1aa4 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/param_block_2.cpp @@ -0,0 +1,59 @@ +/** + * \file param_block_2.cpp + * \brief CParamBlock2 + * \date 2012-08-22 08:57GMT + * \author Jan Boon (Kaetemi) + * CParamBlock2 + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "param_block_2.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CParamBlock2::CParamBlock2(CScene *scene) : CReferenceTarget(scene) +{ + +} + +CParamBlock2::~CParamBlock2() +{ + +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/param_block_2.h b/code/nel/tools/3d/pipeline_max/builtin/param_block_2.h new file mode 100644 index 000000000..f70506b8e --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/param_block_2.h @@ -0,0 +1,63 @@ +/** + * \file param_block_2.h + * \brief CParamBlock2 + * \date 2012-08-22 08:57GMT + * \author Jan Boon (Kaetemi) + * CParamBlock2 + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_PARAM_BLOCK_2_H +#define PIPELINE_PARAM_BLOCK_2_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "reference_target.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CParamBlock2 + * \date 2012-08-22 08:57GMT + * \author Jan Boon (Kaetemi) + * CParamBlock2 + */ +class CParamBlock2 : public CReferenceTarget +{ +public: + CParamBlock2(CScene *scene); + virtual ~CParamBlock2(); + +}; /* class CParamBlock2 */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_PARAM_BLOCK_2_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/patch_object.cpp b/code/nel/tools/3d/pipeline_max/builtin/patch_object.cpp new file mode 100644 index 000000000..fecba7640 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/patch_object.cpp @@ -0,0 +1,111 @@ +/** + * \file patch_object.cpp + * \brief CPatchObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CPatchObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "patch_object.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +// using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CPatchObject::CPatchObject(CScene *scene) : CGeomObject(scene) +{ + +} + +CPatchObject::~CPatchObject() +{ + +} + +const ucstring CPatchObject::DisplayName = ucstring("PatchObject"); +const char *CPatchObject::InternalName = "PatchObject"; +const NLMISC::CClassId CPatchObject::ClassId = NLMISC::CClassId(0xd0a6b36, 0x7dce4b64); /* Not official, please correct */ +const TSClassId CPatchObject::SuperClassId = CGeomObject::SuperClassId; +const CPatchObjectClassDesc PatchObjectClassDesc(&DllPluginDescBuiltin); + +void CPatchObject::parse(uint16 version, uint filter) +{ + CGeomObject::parse(version); +} + +void CPatchObject::clean() +{ + CGeomObject::clean(); +} + +void CPatchObject::build(uint16 version, uint filter) +{ + CGeomObject::build(version); +} + +void CPatchObject::disown() +{ + CGeomObject::disown(); +} + +void CPatchObject::init() +{ + CGeomObject::init(); +} + +bool CPatchObject::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CGeomObject::inherits(classId); +} + +const ISceneClassDesc *CPatchObject::classDesc() const +{ + return &PatchObjectClassDesc; +} + +void CPatchObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CGeomObject::toStringLocal(ostream, pad); +} + +IStorageObject *CPatchObject::createChunkById(uint16 id, bool container) +{ + return CGeomObject::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/patch_object.h b/code/nel/tools/3d/pipeline_max/builtin/patch_object.h new file mode 100644 index 000000000..78b6524cc --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/patch_object.h @@ -0,0 +1,90 @@ +/** + * \file patch_object.h + * \brief CPatchObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CPatchObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_PATCH_OBJECT_H +#define PIPELINE_PATCH_OBJECT_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "geom_object.h" + +/// Must be passed to the parse and build functions by +/// inheriting classes to parse the actual patch object. +#define PMB_PATCH_OBJECT_PARSE_FILTER 0x2a611c9 + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CPatchObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CPatchObject + */ +class CPatchObject : public CGeomObject +{ +public: + CPatchObject(CScene *scene); + virtual ~CPatchObject(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CPatchObject */ + +typedef CSceneClassDesc CPatchObjectClassDesc; +extern const CPatchObjectClassDesc PatchObjectClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_PATCH_OBJECT_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/poly_object.cpp b/code/nel/tools/3d/pipeline_max/builtin/poly_object.cpp new file mode 100644 index 000000000..25cd334d4 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/poly_object.cpp @@ -0,0 +1,147 @@ +/** + * \file poly_object.cpp + * \brief CPolyObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CPolyObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "poly_object.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CPolyObject::CPolyObject(CScene *scene) : CGeomObject(scene) +{ + +} + +CPolyObject::~CPolyObject() +{ + +} + +const ucstring CPolyObject::DisplayName = ucstring("PolyObject"); +const char *CPolyObject::InternalName = "PolyObject"; +const NLMISC::CClassId CPolyObject::ClassId = NLMISC::CClassId(0x59772461, 0x6e1141e8); /* Not official, please correct */ +const TSClassId CPolyObject::SuperClassId = CGeomObject::SuperClassId; +const CPolyObjectClassDesc PolyObjectClassDesc(&DllPluginDescBuiltin); + +void CPolyObject::parse(uint16 version, uint filter) +{ + if (filter == 0) + { + CGeomObject::parse(version); + } + else if (filter == PMB_POLY_OBJECT_PARSE_FILTER) + { + if (!m_ChunksOwnsPointers) + { + CGeomObject::parse(version, PMB_GEOM_OBJECT_PARSE_FILTER); + // 0x0906 + // 0x0908 + // 0x090a + // 0x090c + } + } +} + +void CPolyObject::clean() +{ + CGeomObject::clean(); +} + +void CPolyObject::build(uint16 version, uint filter) +{ + if (filter == 0) + { + CGeomObject::build(version); + } + else if (filter == PMB_POLY_OBJECT_PARSE_FILTER) + { + CGeomObject::build(version, PMB_GEOM_OBJECT_PARSE_FILTER); + // 0x0906 + // 0x0908 + // 0x090a + // 0x090c + } +} + +void CPolyObject::disown() +{ + CGeomObject::disown(); +} + +void CPolyObject::init() +{ + CGeomObject::init(); +} + +bool CPolyObject::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CGeomObject::inherits(classId); +} + +const ISceneClassDesc *CPolyObject::classDesc() const +{ + return &PolyObjectClassDesc; +} + +void CPolyObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + if (filter == 0) + { + CGeomObject::toStringLocal(ostream, pad); + } + else if (filter == PMB_POLY_OBJECT_PARSE_FILTER) + { + CGeomObject::toStringLocal(ostream, pad, PMB_GEOM_OBJECT_PARSE_FILTER); + // 0x0906 + // 0x0908 + // 0x090a + // 0x090c + } +} + +IStorageObject *CPolyObject::createChunkById(uint16 id, bool container) +{ + return CGeomObject::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/poly_object.h b/code/nel/tools/3d/pipeline_max/builtin/poly_object.h new file mode 100644 index 000000000..23b3c09f9 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/poly_object.h @@ -0,0 +1,90 @@ +/** + * \file poly_object.h + * \brief CPolyObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CPolyObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_POLY_OBJECT_H +#define PIPELINE_POLY_OBJECT_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "geom_object.h" + +/// Must be passed to the parse and build functions by +/// inheriting classes to parse the actual poly object. +#define PMB_POLY_OBJECT_PARSE_FILTER 0x127d3a04 + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CPolyObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CPolyObject + */ +class CPolyObject : public CGeomObject +{ +public: + CPolyObject(CScene *scene); + virtual ~CPolyObject(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CPolyObject */ + +typedef CSceneClassDesc CPolyObjectClassDesc; +extern const CPolyObjectClassDesc PolyObjectClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_POLY_OBJECT_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/reference_maker.cpp b/code/nel/tools/3d/pipeline_max/builtin/reference_maker.cpp new file mode 100644 index 000000000..4b684d543 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/reference_maker.cpp @@ -0,0 +1,320 @@ +/** + * \file reference_maker.cpp + * \brief CReferenceMaker + * \date 2012-08-22 08:52GMT + * \author Jan Boon (Kaetemi) + * CReferenceMaker + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "reference_maker.h" + +// STL includes +#include + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +// Elevate warnings to errors in this file for stricter reading +#undef nlwarning +#define nlwarning nlerror + +// Elevate debug to error in this file for debugging +// #undef nldebug +// #define nldebug nlerror + +// Chunk identifiers +#define PMB_REFERENCES_2034_CHUNK_ID 0x2034 +#define PMB_REFERENCES_2035_CHUNK_ID 0x2035 +#define PMB_204B_EQUALS_2E_CHUNK_ID 0x204B +#define PMB_UNKNOWN2045_CHUNK_ID 0x2045 +#define PMB_UNKNOWN2047_CHUNK_ID 0x2047 +#define PMB_UNKNOWN21B0_CHUNK_ID 0x21B0 + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CReferenceMaker::CReferenceMaker(CScene *scene) : CAnimatable(scene), m_ReferenceMap(false), m_204B_Equals_2E(NULL), m_References2035Value0(0), m_Unknown2045(NULL), m_Unknown2047(NULL), m_Unknown21B0(NULL) +{ + +} + +CReferenceMaker::~CReferenceMaker() +{ + if (!m_ChunksOwnsPointers) + { + delete m_204B_Equals_2E; + m_204B_Equals_2E = NULL; + delete m_Unknown2045; + m_Unknown2045 = NULL; + delete m_Unknown2047; + m_Unknown2047 = NULL; + delete m_Unknown21B0; + m_Unknown21B0 = NULL; + } +} + +const ucstring CReferenceMaker::DisplayName = ucstring("ReferenceMaker"); +const char *CReferenceMaker::InternalName = "ReferenceMaker"; +const char *CReferenceMaker::InternalNameUnknown = "ReferenceMakerUnknown"; +const NLMISC::CClassId CReferenceMaker::ClassId = NLMISC::CClassId(0x2ec43d15, 0x10a270ad); /* Not official, please correct */ +const TSClassId CReferenceMaker::SuperClassId = 0x00000100; +const CReferenceMakerClassDesc ReferenceMakerClassDesc(&DllPluginDescBuiltin); +const CReferenceMakerSuperClassDesc ReferenceMakerSuperClassDesc(&ReferenceMakerClassDesc); + +void CReferenceMaker::parse(uint16 version, uint filter) +{ + CAnimatable::parse(version); + if (!m_ChunksOwnsPointers) + { + CStorageArray *references2034 = static_cast *>(getChunk(PMB_REFERENCES_2034_CHUNK_ID)); + CStorageArray *references2035 = static_cast *>(getChunk(PMB_REFERENCES_2035_CHUNK_ID)); + if (references2034) nlassert(references2035 == NULL); // Apparently, there can be only one. + if (references2035) nlassert(references2034 == NULL); + m_204B_Equals_2E = static_cast *>(getChunk(PMB_204B_EQUALS_2E_CHUNK_ID)); + if (m_204B_Equals_2E) nlassert(m_204B_Equals_2E->Value == 0x2e); // Really, let me know when it has another value. + + // Parse contents + if (references2034) + { + m_ReferenceMap = false; // NOTE: Plugins may check after parse if they parsed with the correct type, to find a pattern + m_ArchivedChunks.push_back(references2034); + for (std::vector::size_type i = 0; i < references2034->Value.size(); ++i) + { + if (references2034->Value[i] > 0) + { + CReferenceMaker *referenceMaker = dynamic_cast(container()->getByStorageIndex(references2034->Value[i])); + if (!referenceMaker) nlerror("Reference maker %s %s, 0x%x is not a reference maker", ucstring(container()->getByStorageIndex(references2034->Value[i])->classDesc()->displayName()).toUtf8().c_str(), container()->getByStorageIndex(references2034->Value[i])->classDesc()->classId().toString().c_str(), container()->getByStorageIndex(references2034->Value[i])->classDesc()->superClassId()); + setReference(i, referenceMaker); + } + } + } + if (references2035) + { + m_ReferenceMap = true; + m_ArchivedChunks.push_back(references2035); + std::vector::iterator it = references2035->Value.begin(); + m_References2035Value0 = (*it); + ++it; + std::vector::iterator end = references2035->Value.end(); + while (it != end) + { + sint32 index = (*it); + ++it; + sint32 referenceindex = (*it); + ++it; + CReferenceMaker *referenceMaker = dynamic_cast(container()->getByStorageIndex(referenceindex)); + if (!referenceMaker) nlerror("Reference maker %s, 0x%x is not a reference maker", container()->getByStorageIndex(referenceindex)->classDesc()->classId().toString().c_str(), container()->getByStorageIndex(referenceindex)->classDesc()->superClassId()); + setReference(index, referenceMaker); + } + } + + m_Unknown2045 = static_cast(getChunk(PMB_UNKNOWN2045_CHUNK_ID)); // not sure if this is part of maker or target + m_Unknown2047 = static_cast(getChunk(PMB_UNKNOWN2047_CHUNK_ID)); // not sure if this is part of maker or target + m_Unknown21B0 = static_cast(getChunk(PMB_UNKNOWN21B0_CHUNK_ID)); // not sure if this is part of maker or target + } +} + +void CReferenceMaker::clean() +{ + CAnimatable::clean(); // Nothing to do here, m_ArchivedChunks is cleaned (deleted) for us! +} + +void CReferenceMaker::build(uint16 version, uint filter) +{ + CAnimatable::build(version); + // TODO: Build contents + //if (m_References2034) putChunk(PMB_REFERENCES_2034_CHUNK_ID, m_References2034); + //if (m_References2035) putChunk(PMB_REFERENCES_2035_CHUNK_ID, m_References2035); + if (!m_ReferenceMap) + { + CStorageArray *references2034 = new CStorageArray(); + uint nb = nbReferences(); + references2034->Value.resize(nb); + for (uint i = 0; i < nb; ++i) + { + CReferenceMaker *referenceMaker = getReference(i); + if (referenceMaker) references2034->Value[i] = container()->getOrCreateStorageIndex(referenceMaker); + else references2034->Value[i] = -1; + } + putChunk(PMB_REFERENCES_2034_CHUNK_ID, references2034); + m_ArchivedChunks.push_back(references2034); + } + else + { + CStorageArray *references2035 = new CStorageArray(); + uint nb = nbReferences(); + references2035->Value.push_back(m_References2035Value0); + for (uint i = 0; i < nb; ++i) + { + CReferenceMaker *referenceMaker = getReference(i); + if (referenceMaker) + { + references2035->Value.push_back(i); + references2035->Value.push_back(container()->getOrCreateStorageIndex(referenceMaker)); + } + } + putChunk(PMB_REFERENCES_2035_CHUNK_ID, references2035); + m_ArchivedChunks.push_back(references2035); + } + if (m_204B_Equals_2E) putChunk(PMB_204B_EQUALS_2E_CHUNK_ID, m_204B_Equals_2E); + if (m_Unknown2045) putChunk(PMB_UNKNOWN2045_CHUNK_ID, m_Unknown2045); + if (m_Unknown2047) putChunk(PMB_UNKNOWN2047_CHUNK_ID, m_Unknown2047); + if (m_Unknown21B0) putChunk(PMB_UNKNOWN21B0_CHUNK_ID, m_Unknown21B0); +} + +void CReferenceMaker::disown() +{ + m_References.clear(); + m_ReferenceMap = false; + m_References2035Value0 = 0; + m_204B_Equals_2E = NULL; + m_Unknown2045 = NULL; + m_Unknown2047 = NULL; + m_Unknown21B0 = NULL; + CAnimatable::disown(); +} + +void CReferenceMaker::init() +{ + CAnimatable::init(); +} + +bool CReferenceMaker::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CAnimatable::inherits(classId); +} + +const ISceneClassDesc *CReferenceMaker::classDesc() const +{ + return &ReferenceMakerClassDesc; +} + +void CReferenceMaker::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CAnimatable::toStringLocal(ostream, pad); + uint nb = nbReferences(); + if (nb) + { + if (!m_ReferenceMap) ostream << "\n" << pad << "References 0x2034: "; + else ostream << "\n" << pad << "References 0x2035: "; + std::string padpad = pad + "\t"; + ostream << "PARSED "; + if (!m_References.size()) ostream << "VIRTUAL "; + ostream << "{ "; + for (uint i = 0; i < nb; ++i) + { + CReferenceMaker *referenceMaker = getReference(i); + if (referenceMaker) + { + ostream << "\n" << padpad << i << ": "; + ostream << "(" << ucstring(referenceMaker->classDesc()->displayName()).toUtf8() << ", " << referenceMaker->classDesc()->classId().toString() << ") "; + } + } + ostream << "} "; + } + if (m_204B_Equals_2E) + { + ostream << "\n" << pad << "0x204B Equals 0x2E (46): "; + m_204B_Equals_2E->toString(ostream, pad + "\t"); + } + if (m_Unknown2045) + { + ostream << "\n" << pad << "Unknown 0x2045: "; + m_Unknown2045->toString(ostream, pad + "\t"); + } + if (m_Unknown2047) + { + ostream << "\n" << pad << "Unknown 0x2047: "; + m_Unknown2047->toString(ostream, pad + "\t"); + } + if (m_Unknown21B0) + { + ostream << "\n" << pad << "Unknown 0x21B0: "; + m_Unknown21B0->toString(ostream, pad + "\t"); + } +} + +CReferenceMaker *CReferenceMaker::getReference(uint index) const +{ + if (m_References.size() <= index) return NULL; + return m_References[index]; +} + +void CReferenceMaker::setReference(uint index, CReferenceMaker *reference) +{ + if (m_References.size() <= index) m_References.resize(index + 1); + m_References[index] = reference; +} + +uint CReferenceMaker::nbReferences() const +{ + return m_References.size(); +} + +IStorageObject *CReferenceMaker::createChunkById(uint16 id, bool container) +{ + switch (id) + { + case PMB_REFERENCES_2034_CHUNK_ID: + return new CStorageArray(); + case PMB_REFERENCES_2035_CHUNK_ID: + return new CStorageArray(); + case PMB_204B_EQUALS_2E_CHUNK_ID: + return new CStorageValue(); + case PMB_UNKNOWN21B0_CHUNK_ID: + return new CStorageRaw(); + } + return CAnimatable::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/reference_maker.h b/code/nel/tools/3d/pipeline_max/builtin/reference_maker.h new file mode 100644 index 000000000..b32c0c97b --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/reference_maker.h @@ -0,0 +1,110 @@ +/** + * \file reference_maker.h + * \brief CReferenceMaker + * \date 2012-08-22 08:52GMT + * \author Jan Boon (Kaetemi) + * CReferenceMaker + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_REFERENCE_MAKER_H +#define PIPELINE_REFERENCE_MAKER_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "../storage_array.h" +#include "animatable.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CReferenceMaker + * \date 2012-08-22 08:52GMT + * \author Jan Boon (Kaetemi) + * This class implements references + */ +class CReferenceMaker : public CAnimatable +{ +public: + CReferenceMaker(CScene *scene); + virtual ~CReferenceMaker(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const char *InternalNameUnknown; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + + // child classes should inherit, default implementation stores in a vector + /// Get a reference + virtual CReferenceMaker *getReference(uint index) const; + virtual void setReference(uint index, CReferenceMaker *reference); + virtual uint nbReferences() const; + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + /// Storage method + bool m_ReferenceMap; + +private: + CStorageValue *m_204B_Equals_2E; + + /// Default implementation, should preferably not use this, no direct read access will be provided + std::vector > m_References; + /// Unknown value + uint32 m_References2035Value0; + + CStorageRaw *m_Unknown2045; + CStorageRaw *m_Unknown2047; + CStorageRaw *m_Unknown21B0; + +}; /* class CReferenceMaker */ + +typedef CSceneClassDesc CReferenceMakerClassDesc; +extern const CReferenceMakerClassDesc ReferenceMakerClassDesc; +typedef CSuperClassDesc CReferenceMakerSuperClassDesc; +extern const CReferenceMakerSuperClassDesc ReferenceMakerSuperClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_REFERENCE_MAKER_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/reference_target.cpp b/code/nel/tools/3d/pipeline_max/builtin/reference_target.cpp new file mode 100644 index 000000000..a571b524b --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/reference_target.cpp @@ -0,0 +1,113 @@ +/** + * \file reference_target.cpp + * \brief CReferenceTarget + * \date 2012-08-22 08:53GMT + * \author Jan Boon (Kaetemi) + * CReferenceTarget + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "reference_target.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CReferenceTarget::CReferenceTarget(CScene *scene) : CReferenceMaker(scene) +{ + +} + +CReferenceTarget::~CReferenceTarget() +{ + +} + +const ucstring CReferenceTarget::DisplayName = ucstring("ReferenceTarget"); +const char *CReferenceTarget::InternalName = "ReferenceTarget"; +const char *CReferenceTarget::InternalNameUnknown = "ReferenceTargetUnknown"; +const NLMISC::CClassId CReferenceTarget::ClassId = NLMISC::CClassId(0x5d545dd9, 0xa422e4); /* Not official, please correct */ +const TSClassId CReferenceTarget::SuperClassId = 0x00000200; +const CReferenceTargetClassDesc ReferenceTargetClassDesc(&DllPluginDescBuiltin); +const CReferenceTargetSuperClassDesc ReferenceTargetSuperClassDesc(&ReferenceTargetClassDesc); + +void CReferenceTarget::parse(uint16 version, uint filter) +{ + CReferenceMaker::parse(version); +} + +void CReferenceTarget::clean() +{ + CReferenceMaker::clean(); +} + +void CReferenceTarget::build(uint16 version, uint filter) +{ + CReferenceMaker::build(version); +} + +void CReferenceTarget::disown() +{ + CReferenceMaker::disown(); +} + +void CReferenceTarget::init() +{ + CReferenceMaker::init(); +} + +bool CReferenceTarget::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CReferenceMaker::inherits(classId); +} + +const ISceneClassDesc *CReferenceTarget::classDesc() const +{ + return &ReferenceTargetClassDesc; +} + +void CReferenceTarget::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CReferenceMaker::toStringLocal(ostream, pad); +} + +IStorageObject *CReferenceTarget::createChunkById(uint16 id, bool container) +{ + return CReferenceMaker::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/reference_target.h b/code/nel/tools/3d/pipeline_max/builtin/reference_target.h new file mode 100644 index 000000000..69ad6ee34 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/reference_target.h @@ -0,0 +1,90 @@ +/** + * \file reference_target.h + * \brief CReferenceTarget + * \date 2012-08-22 08:53GMT + * \author Jan Boon (Kaetemi) + * CReferenceTarget + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_REFERENCE_TARGET_H +#define PIPELINE_REFERENCE_TARGET_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "reference_maker.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CReferenceTarget + * \date 2012-08-22 08:53GMT + * \author Jan Boon (Kaetemi) + * Dummy class, supposed to send or receive events or something. + * Nice for copy pasting the basic class layout. + */ +class CReferenceTarget : public CReferenceMaker +{ +public: + CReferenceTarget(CScene *scene); + virtual ~CReferenceTarget(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const char *InternalNameUnknown; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CReferenceTarget */ + +typedef CSceneClassDesc CReferenceTargetClassDesc; +extern const CReferenceTargetClassDesc ReferenceTargetClassDesc; +typedef CSuperClassDesc CReferenceTargetSuperClassDesc; +extern const CReferenceTargetSuperClassDesc ReferenceTargetSuperClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_REFERENCE_TARGET_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/root_node.cpp b/code/nel/tools/3d/pipeline_max/builtin/root_node.cpp new file mode 100644 index 000000000..b9c76b1c0 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/root_node.cpp @@ -0,0 +1,117 @@ +/** + * \file root_node.cpp + * \brief CRootNode + * \date 2012-08-22 19:45GMT + * \author Jan Boon (Kaetemi) + * CRootNode + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "root_node.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CRootNode::CRootNode(CScene *scene) : INode(scene) +{ + +} + +CRootNode::~CRootNode() +{ + +} + +const ucstring CRootNode::DisplayName = ucstring("RootNode"); +const char *CRootNode::InternalName = "RootNode"; +const NLMISC::CClassId CRootNode::ClassId = NLMISC::CClassId(0x00000002, 0x00000000); +const TSClassId CRootNode::SuperClassId = INode::SuperClassId; +const CRootNodeClassDesc RootNodeClassDesc(&DllPluginDescBuiltin); + +void CRootNode::parse(uint16 version, uint filter) +{ + INode::parse(version); +} + +void CRootNode::clean() +{ + INode::clean(); +} + +void CRootNode::build(uint16 version, uint filter) +{ + INode::build(version); +} + +void CRootNode::disown() +{ + INode::disown(); +} + +void CRootNode::init() +{ + INode::init(); +} + +bool CRootNode::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return INode::inherits(classId); +} + +const ISceneClassDesc *CRootNode::classDesc() const +{ + return &RootNodeClassDesc; +} + +void CRootNode::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + INode::toStringLocal(ostream, pad); +} + +const ucstring &CRootNode::userName() const +{ + static const ucstring v = ucstring("Root Node"); + return v; +} + +IStorageObject *CRootNode::createChunkById(uint16 id, bool container) +{ + return INode::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/root_node.h b/code/nel/tools/3d/pipeline_max/builtin/root_node.h new file mode 100644 index 000000000..df673a532 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/root_node.h @@ -0,0 +1,89 @@ +/** + * \file root_node.h + * \brief CRootNode + * \date 2012-08-22 19:45GMT + * \author Jan Boon (Kaetemi) + * CRootNode + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_ROOT_NODE_H +#define PIPELINE_ROOT_NODE_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "i_node.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CRootNode + * \date 2012-08-22 20:01GMT + * \author Jan Boon (Kaetemi) + * CRootNode + */ +class CRootNode : public INode +{ +public: + CRootNode(CScene *scene); + virtual ~CRootNode(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + + // node interface + virtual const ucstring &userName() const; + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CRootNode */ + +typedef CSceneClassDesc CRootNodeClassDesc; +extern const CRootNodeClassDesc RootNodeClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_ROOT_NODE_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/scene_impl.cpp b/code/nel/tools/3d/pipeline_max/builtin/scene_impl.cpp new file mode 100644 index 000000000..75c9fa5cf --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/scene_impl.cpp @@ -0,0 +1,209 @@ +/** + * \file scene_impl.cpp + * \brief CSceneImpl + * \date 2012-08-24 12:33GMT + * \author Jan Boon (Kaetemi) + * CSceneImpl + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "scene_impl.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CSceneImpl::CSceneImpl(CScene *scene) : CReferenceMaker(scene) +{ + +} + +CSceneImpl::~CSceneImpl() +{ + +} + +const ucstring CSceneImpl::DisplayName = ucstring("Scene"); +const char *CSceneImpl::InternalName = "SceneImpl"; +const NLMISC::CClassId CSceneImpl::ClassId = NLMISC::CClassId(0x00002222, 0x00000000); +const TSClassId CSceneImpl::SuperClassId = CReferenceMaker::SuperClassId; +const CSceneImplClassDesc SceneImplClassDesc(&DllPluginDescBuiltin); + +void CSceneImpl::parse(uint16 version, uint filter) +{ + CReferenceMaker::parse(version); + nlassert(m_MaterialEditor); + nlassert(m_MtlBaseLib); + nlassert(m_Sound); + nlassert(m_RootNode); + nlassert(m_RenderEnvironment); + nlassert(m_NamedSelSetList); + nlassert(m_TrackViewNode); + nlassert(m_GridReference); + nlassert(m_RenderEffects); + nlassert(m_ShadowMap); + nlassert(m_LayerManager); + if (version > Version3) nlassert(m_TrackSetList); +} + +void CSceneImpl::clean() +{ + CReferenceMaker::clean(); +} + +void CSceneImpl::build(uint16 version, uint filter) +{ + CReferenceMaker::build(version); +} + +void CSceneImpl::disown() +{ + CReferenceMaker::disown(); +} + +void CSceneImpl::init() +{ + CReferenceMaker::init(); +} + +bool CSceneImpl::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CReferenceMaker::inherits(classId); +} + +const ISceneClassDesc *CSceneImpl::classDesc() const +{ + return &SceneImplClassDesc; +} + +void CSceneImpl::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CReferenceMaker::toStringLocal(ostream, pad); +} + +CReferenceMaker *CSceneImpl::getReference(uint index) const +{ + switch (index) + { + case 0: + return m_MaterialEditor; + case 1: + return m_MtlBaseLib; + case 2: + return m_Sound; + case 3: + return m_RootNode; + case 4: + return m_RenderEnvironment; + case 5: + return m_NamedSelSetList; + case 6: + return m_TrackViewNode; + case 7: + return m_GridReference; + case 8: + return m_RenderEffects; + case 9: + return m_ShadowMap; + case 10: + return m_LayerManager; + case 11: + return m_TrackSetList; + default: + if (index > 0) + nlerror("Invalid index %i", index); + return NULL; + } +} + +void CSceneImpl::setReference(uint index, CReferenceMaker *reference) +{ + switch (index) + { + case 0: + m_MaterialEditor = reference; + break; + case 1: + m_MtlBaseLib = reference; + break; + case 2: + m_Sound = reference; + break; + case 3: + m_RootNode = dynamic_cast(reference); + break; + case 4: + m_RenderEnvironment = reference; + break; + case 5: + m_NamedSelSetList = reference; + break; + case 6: + m_TrackViewNode = dynamic_cast(reference); + break; + case 7: + m_GridReference = reference; + break; + case 8: + m_RenderEffects = reference; + break; + case 9: + m_ShadowMap = reference; + break; + case 10: + m_LayerManager = reference; + break; + case 11: + m_TrackSetList = reference; + break; + default: + nlerror("Unknown reference index %i entry (%s, 0x%x)", index, (uint32)(uint64)(void *)reference, reference->classDesc()->classId().toString().c_str(), reference->classDesc()->superClassId()); + break; + } +} + +uint CSceneImpl::nbReferences() const +{ + return m_TrackSetList ? 12 : 11; +} + +IStorageObject *CSceneImpl::createChunkById(uint16 id, bool container) +{ + return CReferenceMaker::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/scene_impl.h b/code/nel/tools/3d/pipeline_max/builtin/scene_impl.h new file mode 100644 index 000000000..437f0c7ea --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/scene_impl.h @@ -0,0 +1,112 @@ +/** + * \file scene_impl.h + * \brief CSceneImpl + * \date 2012-08-24 12:33GMT + * \author Jan Boon (Kaetemi) + * CSceneImpl + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_SCENE_IMPL_H +#define PIPELINE_SCENE_IMPL_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "reference_maker.h" + +#include "root_node.h" +#include "track_view_node.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CSceneImpl + * \date 2012-08-22 08:53GMT + * \author Jan Boon (Kaetemi) + * Scene implementation + */ +class CSceneImpl : public CReferenceMaker +{ +public: + CSceneImpl(CScene *scene); + virtual ~CSceneImpl(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + + // reference maker + virtual CReferenceMaker *getReference(uint index) const; + virtual void setReference(uint index, CReferenceMaker *reference); + virtual uint nbReferences() const; + + // read access + inline CRootNode *rootNode() const { return m_RootNode; } + inline CTrackViewNode *trackViewNode() const { return m_TrackViewNode; } + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + NLMISC::CRefPtr m_MaterialEditor; + NLMISC::CRefPtr m_MtlBaseLib; + NLMISC::CRefPtr m_Sound; + NLMISC::CRefPtr m_RootNode; + NLMISC::CRefPtr m_RenderEnvironment; + NLMISC::CRefPtr m_NamedSelSetList; + NLMISC::CRefPtr m_TrackViewNode; + NLMISC::CRefPtr m_GridReference; + NLMISC::CRefPtr m_RenderEffects; + NLMISC::CRefPtr m_ShadowMap; + NLMISC::CRefPtr m_LayerManager; + NLMISC::CRefPtr m_TrackSetList; // Does not exist in R3 + +}; /* class CSceneImpl */ + +typedef CSceneClassDesc CSceneImplClassDesc; +extern const CSceneImplClassDesc SceneImplClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_SCENE_IMPL_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/std_mat.cpp b/code/nel/tools/3d/pipeline_max/builtin/std_mat.cpp new file mode 100644 index 000000000..dae98c4c9 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/std_mat.cpp @@ -0,0 +1,59 @@ +/** + * \file std_mat.cpp + * \brief CStdMat + * \date 2012-08-22 08:55GMT + * \author Jan Boon (Kaetemi) + * CStdMat + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "std_mat.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CStdMat::CStdMat(CScene *scene) : CMtl(scene) +{ + +} + +CStdMat::~CStdMat() +{ + +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/std_mat.h b/code/nel/tools/3d/pipeline_max/builtin/std_mat.h new file mode 100644 index 000000000..f3d9e7b69 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/std_mat.h @@ -0,0 +1,63 @@ +/** + * \file std_mat.h + * \brief CStdMat + * \date 2012-08-22 08:55GMT + * \author Jan Boon (Kaetemi) + * CStdMat + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_STD_MAT_H +#define PIPELINE_STD_MAT_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "mtl.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CStdMat + * \date 2012-08-22 08:55GMT + * \author Jan Boon (Kaetemi) + * CStdMat + */ +class CStdMat : public CMtl +{ +public: + CStdMat(CScene *scene); + virtual ~CStdMat(); + +}; /* class CStdMat */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_STD_MAT_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/std_mat_2.cpp b/code/nel/tools/3d/pipeline_max/builtin/std_mat_2.cpp new file mode 100644 index 000000000..45e17d868 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/std_mat_2.cpp @@ -0,0 +1,59 @@ +/** + * \file std_mat_2.cpp + * \brief CStdMat2 + * \date 2012-08-22 08:55GMT + * \author Jan Boon (Kaetemi) + * CStdMat2 + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "std_mat_2.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CStdMat2::CStdMat2(CScene *scene) : CStdMat(scene) +{ + +} + +CStdMat2::~CStdMat2() +{ + +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/std_mat_2.h b/code/nel/tools/3d/pipeline_max/builtin/std_mat_2.h new file mode 100644 index 000000000..331ca7978 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/std_mat_2.h @@ -0,0 +1,68 @@ +/** + * \file std_mat_2.h + * \brief CStdMat2 + * \date 2012-08-22 08:55GMT + * \author Jan Boon (Kaetemi) + * CStdMat2 + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_STD_MAT_2_H +#define PIPELINE_STD_MAT_2_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "std_mat.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CStdMat2 + * \date 2012-08-22 08:55GMT + * \author Jan Boon (Kaetemi) + * CStdMat2 + */ +class CStdMat2 : public CStdMat +{ +protected: + // pointers + // ... + + // instances + // ... +public: + CStdMat2(CScene *scene); + virtual ~CStdMat2(); +}; /* class CStdMat2 */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_STD_MAT_2_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/storage/app_data.cpp b/code/nel/tools/3d/pipeline_max/builtin/storage/app_data.cpp new file mode 100644 index 000000000..7bc72f151 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/storage/app_data.cpp @@ -0,0 +1,507 @@ +/** + * \file app_data.cpp + * \brief CAppData + * \date 2012-08-21 11:47GMT + * \author Jan Boon (Kaetemi) + * CAppData + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "app_data.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { +namespace STORAGE { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +#define PMBS_APP_DATA_PARSE 1 + +// Elevate warnings to errors in this file for stricter reading +#undef nlwarning +#define nlwarning nlerror + +// Elevate debug to error in this file for debugging +// #undef nldebug +// #define nldebug nlerror + +// Chunk identifiers +#define PMBS_APP_DATA_HEADER_CHUNK_ID 0x0100 +#define PMBS_APP_DATA_ENTRY_CHUNK_ID 0x0110 +#define PMBS_APP_DATA_ENTRY_KEY_CHUNK_ID 0x0120 + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CAppData::TKey::TKey(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId) : ClassId(classId), SuperClassId(superClassId), SubId(subId) +{ + +} + +bool CAppData::TKey::operator<(const CAppData::TKey &right) const +{ + if (ClassId < right.ClassId) + return true; + if (ClassId > right.ClassId) + return false; + if (SuperClassId < right.SuperClassId) + return true; + if (SuperClassId > right.SuperClassId) + return false; + if (SubId < right.SubId) + return true; + if (SubId > right.SubId) + return false; + return false; +} + +bool CAppData::TKey::operator>(const CAppData::TKey &right) const +{ + if (ClassId > right.ClassId) + return true; + if (ClassId < right.ClassId) + return false; + if (SuperClassId > right.SuperClassId) + return true; + if (SuperClassId < right.SuperClassId) + return false; + if (SubId > right.SubId) + return true; + if (SubId < right.SubId) + return false; + return false; +} + +bool CAppData::TKey::operator==(const CAppData::TKey &right) const +{ + return ClassId == right.ClassId && SuperClassId == right.SuperClassId && SubId == right.SubId; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CAppData::CAppData() +{ + +} + +CAppData::~CAppData() +{ + if (!m_ChunksOwnsPointers) + { + for (TMap::const_iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + delete subit->second; + m_Entries.clear(); + } +} + +std::string CAppData::className() const +{ + return "AppData"; +} + +void CAppData::toString(std::ostream &ostream, const std::string &pad) const +{ + if (m_ChunksOwnsPointers) + { + CStorageContainer::toString(ostream, pad); + } + else + { + ostream << "(" << className() << ") [" << m_Entries.size() << "] PARSED { "; + std::string padpad = pad + "\t"; + uint subi = 0; + for (TMap::const_iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + { + ostream << "\n" << pad << "Entries[" << subi << "]: "; + subit->second->toString(ostream, padpad); + ++subi; + } + ostream << "} "; + } +} + +void CAppData::parse(uint16 version, uint filter) +{ +#if PMBS_APP_DATA_PARSE + // Cannot be parsed yet + if (!m_ChunksOwnsPointers) { nlerror("Already parsed"); return; } + + // First parse all the child nodes + CStorageContainer::parse(version); + + // Verify + if (m_Chunks.size() < 2) { nlwarning("Bad container size %i", m_Chunks.size()); disown(); return; } + + // Header + TStorageObjectContainer::iterator it = m_Chunks.begin(); + if (it->first != PMBS_APP_DATA_HEADER_CHUNK_ID) { nlwarning("Bad id %x, expected %x", (uint32)it->first, PMBS_APP_DATA_HEADER_CHUNK_ID); disown(); return; } + uint32 headerSize = static_cast *>(it->second)->Value; + ++it; + + // Entries + for (TStorageObjectContainer::iterator end = m_Chunks.end(); it != end; ++it) + { + if (it->first != PMBS_APP_DATA_ENTRY_CHUNK_ID) { nlwarning("Bad id %x, expected %x", (uint32)it->first, PMBS_APP_DATA_ENTRY_CHUNK_ID); disown(); return; } + CAppDataEntry *entry = static_cast(it->second); + TKey key(entry->key()->ClassId, entry->key()->SuperClassId, entry->key()->SubId); + if (m_Entries.find(key) != m_Entries.end()) { nlwarning("Duplicate entry"); disown(); return; } + m_Entries[key] = entry; + } + + // Verify or fail + if (m_Entries.size() != headerSize) { nlwarning("Entry count %i does not match header %i", m_Entries.size(), headerSize); disown(); return; } + + // Take local ownership + m_ChunksOwnsPointers = false; +#else + CStorageContainer::parse(version); +#endif +} + +void CAppData::clean() +{ +#if PMBS_APP_DATA_PARSE + if (m_ChunksOwnsPointers) { nldebug("Not parsed, or disowned"); return; } // Must have local ownership + if (m_Chunks.size() == 0) { nlwarning("Already cleaned (or did not build due to coding error)"); return; } // Already cleaned + if (m_Chunks.begin()->first != PMBS_APP_DATA_HEADER_CHUNK_ID) { nlerror("Bad id %x, expected %x", (uint32)m_Chunks.begin()->first, PMBS_APP_DATA_HEADER_CHUNK_ID); return; } // Cannot happen, because we won't have local ownership if parsing failed + delete m_Chunks.begin()->second; // Delete the header chunk, since we own it + m_Chunks.clear(); // Clear the remaining chunks + + // Clean raw storage + for (TMap::const_iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + subit->second->clean(); + +#else + CStorageContainer::clean(); +#endif +} + +void CAppData::build(uint16 version, uint filter) +{ +#if PMBS_APP_DATA_PARSE + // Must be clean first + if (!m_ChunksOwnsPointers && m_Chunks.size() != 0) { nlerror("Not cleaned"); return; } + if (m_Chunks.size() != 0) { nldebug("Not parsed, or disowned"); return; } + + // Set up the header in the chunks container + CStorageValue *headerSize = new CStorageValue(); // Owned locally, not by m_Chunks + headerSize->Value = m_Entries.size(); + m_Chunks.push_back(TStorageObjectWithId(PMBS_APP_DATA_HEADER_CHUNK_ID, headerSize)); + + // Set up the entries + for (TMap::iterator it = m_Entries.begin(), end = m_Entries.end(); it != end; ++it) + m_Chunks.push_back(TStorageObjectWithId(PMBS_APP_DATA_ENTRY_CHUNK_ID, it->second)); + + // Rebuild raw storage + CStorageContainer::build(version); +#else + CStorageContainer::build(version); +#endif +} + +void CAppData::disown() +{ +#if PMBS_APP_DATA_PARSE + if (m_ChunksOwnsPointers) { nldebug("Not parsed"); } + if (!m_ChunksOwnsPointers && (m_Chunks.size() != (m_Entries.size() + 1))) { nlerror("Not built"); return; } // If chunks is not the owner, built chunks must match the parsed data + // NOTE: m_Chunks must be valid at this point! + + // Disown locally + m_Entries.clear(); + + // Give ownership back + m_ChunksOwnsPointers = true; + + // Disown all the child chunks + CStorageContainer::disown(); +#else + CStorageContainer::disown(); +#endif +} + +void CAppData::init() +{ + // Cannot be init yet + if (!m_ChunksOwnsPointers) { nlerror("Already parsed"); return; } + if (m_Chunks.size() != 0) { nlerror("Already built or serialized"); return; } + + // We own this + m_ChunksOwnsPointers = false; +} +/* +const uint8 *CAppData::read(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId, uint32 &size) const +{ + if (m_ChunksOwnsPointers) { nlwarning("Not parsed"); return NULL; } + TKey key(classId, superClassId, subId); + TMap::const_iterator it = m_Entries.find(key); + if (it == m_Entries.end()) { nldebug("Trying to read non-existant key, this is allowed, returning NULL"); return NULL; } + size = it->second->value()->Value.size(); + return &it->second->value()->Value[0]; +} + +uint8 *CAppData::lock(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId, uint32 capacity) +{ + if (m_ChunksOwnsPointers) { nlwarning("Not parsed"); return NULL; } + TKey key(classId, superClassId, subId); + TMap::const_iterator it = m_Entries.find(key); + CAppDataEntry *appDataEntry; + if (it == m_Entries.end()) + { + appDataEntry = new CAppDataEntry(); + m_Entries[key] = appDataEntry; + appDataEntry->key()->ClassId = classId; + appDataEntry->key()->SuperClassId = superClassId; + appDataEntry->key()->SubId = subId; + } + else + { + appDataEntry = it->second; + } + appDataEntry->key()->Size = capacity; + appDataEntry->value()->Value.resize(capacity); + return &appDataEntry->value()->Value[0]; +} + +void CAppData::unlock(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId, uint32 size) +{ + if (m_ChunksOwnsPointers) { nlwarning("Not parsed"); return; } + TKey key(classId, superClassId, subId); + TMap::const_iterator it = m_Entries.find(key); + if (it == m_Entries.end()) { nlerror("Unlocking non-existant key"); return; } + CAppDataEntry *appDataEntry = it->second; + appDataEntry->key()->Size = size; + appDataEntry->value()->Value.resize(size); +} + +void CAppData::fill(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId, uint8 *buffer, uint32 size) +{ + uint8 *dest = lock(classId, superClassId, subId, size); + memcpy(dest, buffer, size); + + // Internally not necessary, since we sent the correct size. + // Outside classes should unlock in case the implementation changes. + // unlock(classId, superClassId, subId, size); +} +*/ +void CAppData::erase(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId) +{ + if (m_ChunksOwnsPointers) { nlwarning("Not parsed"); return; } + TKey key(classId, superClassId, subId); + TMap::const_iterator it = m_Entries.find(key); + if (it == m_Entries.end()) { nldebug("Trying to erase non-existant key, this is allowed, doing nothing"); return; } + m_Entries.erase(key); +} + +IStorageObject *CAppData::createChunkById(uint16 id, bool container) +{ + switch (id) + { + case PMBS_APP_DATA_HEADER_CHUNK_ID: + nlassert(!container); + return new CStorageValue(); + break; + case PMBS_APP_DATA_ENTRY_CHUNK_ID: + nlassert(container); + return new CAppDataEntry(); + break; + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CAppDataEntryKey::CAppDataEntryKey() +{ + +} + +CAppDataEntryKey::~CAppDataEntryKey() +{ + +} + +std::string CAppDataEntryKey::className() const +{ + return "AppDataEntryKey"; +} + +void CAppDataEntryKey::serial(NLMISC::IStream &stream) +{ + stream.serial(ClassId); + stream.serial(SuperClassId); + stream.serial(SubId); + stream.serial(Size); +} + +void CAppDataEntryKey::toString(std::ostream &ostream, const std::string &pad) const +{ + ostream << "(" << className() << ") { "; + ostream << "\n" << pad << "ClassId: " << NLMISC::toString(ClassId); + ostream << "\n" << pad << "SuperClassId: " << SuperClassId; + ostream << "\n" << pad << "SubId: " << SubId; + ostream << "\n" << pad << "Size: " << Size; + ostream << " } "; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CAppDataEntry::CAppDataEntry() : m_Key(NULL), m_Raw(NULL), m_Value(NULL) +{ + +} + +CAppDataEntry::~CAppDataEntry() +{ + delete m_Value; + m_Value = NULL; +} + +std::string CAppDataEntry::className() const +{ + return "AppDataEntry"; +} + +void CAppDataEntry::toString(std::ostream &ostream, const std::string &pad) const +{ + if (m_Key && m_Value) + { + ostream << "(" << className() << ") [" << m_Chunks.size() << "] PARSED { "; + std::string padpad = pad + "\t"; + ostream << "\n" << pad << "Key: "; + m_Key->toString(ostream, padpad); + ostream << "\n" << pad << "Value: "; + m_Value->toString(ostream, padpad); + ostream << "} "; + } + else + { + CStorageContainer::toString(ostream, pad); + } +} + +void CAppDataEntry::parse(uint16 version, uint filter) +{ + // CStorageContainer::parse(version); + // if (!m_ChunksOwnsPointers) { nlwarning("Already parsed"); return; } + if (m_Chunks.size() != 2) { nlwarning("Bad container size"); disown(); return; } + + TStorageObjectContainer::iterator it = m_Chunks.begin(); + if (it->first != PMBS_APP_DATA_ENTRY_KEY_CHUNK_ID) { nlwarning("Bad id %x, expected %x", (uint32)it->first, PMBS_APP_DATA_ENTRY_KEY_CHUNK_ID); disown(); return; } + m_Key = static_cast(it->second); + + ++it; + if (it->first != PMBS_APP_DATA_ENTRY_VALUE_CHUNK_ID) { nlwarning("Bad id %x, expected %x", (uint32)it->first, PMBS_APP_DATA_ENTRY_VALUE_CHUNK_ID); disown(); return; } + m_Raw = static_cast(it->second); + + // m_ChunksOwnsPointers = false; + nlassert(m_ChunksOwnsPointers); // Never set false here +} + +void CAppDataEntry::clean() +{ + // CStorageContainer::clean(); + if (m_Value) + { + nlassert(m_Raw); + m_Raw->Value.resize(0); + m_Key->Size = 0xFFFFFFFF; + } +} + +void CAppDataEntry::build(uint16 version, uint filter) +{ + // CStorageContainer::build(version); + if (m_Value) + { + nlassert(m_Raw); + NLMISC::CMemStream mem; + m_Value->serial(mem); + m_Raw->setSize(mem.getPos()); + mem.invert(); + m_Raw->serial(mem); + m_Key->Size = m_Raw->Value.size(); + } +} + +void CAppDataEntry::disown() +{ + // CStorageContainer::disown(); + if (m_Chunks.size() != 2) { nlerror("Not built"); return; } // Built chunks must match the parsed data + m_Key = NULL; + m_Raw = NULL; + delete m_Value; + m_Value = NULL; +} + +void CAppDataEntry::init() +{ + nlassert(m_Chunks.size() == 0); + m_Key = new CAppDataEntryKey(); + m_Chunks.push_back(TStorageObjectWithId(PMBS_APP_DATA_ENTRY_KEY_CHUNK_ID, m_Key)); + m_Raw = new CStorageRaw(); + m_Chunks.push_back(TStorageObjectWithId(PMBS_APP_DATA_ENTRY_VALUE_CHUNK_ID, m_Raw)); +} + +IStorageObject *CAppDataEntry::createChunkById(uint16 id, bool container) +{ + switch (id) + { + case PMBS_APP_DATA_ENTRY_KEY_CHUNK_ID: + nlassert(!container); + return new CAppDataEntryKey(); + case PMBS_APP_DATA_ENTRY_VALUE_CHUNK_ID: + nlassert(!container); + return new CStorageRaw(); + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace STORAGE */ +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/storage/app_data.h b/code/nel/tools/3d/pipeline_max/builtin/storage/app_data.h new file mode 100644 index 000000000..4cdbb01e8 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/storage/app_data.h @@ -0,0 +1,275 @@ +/** + * \file app_data.h + * \brief CAppData + * \date 2012-08-21 11:47GMT + * \author Jan Boon (Kaetemi) + * CAppData + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_APP_DATA_H +#define PIPELINE_APP_DATA_H +#include + +// STL includes + +// NeL includes +#include +#include + +// Project includes +#include "../../typedefs.h" +#include "../../storage_object.h" +#include "../../storage_value.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { +namespace STORAGE { + +#define PMBS_APP_DATA_CHUNK_ID 0x2150 +#define PMBS_APP_DATA_ENTRY_VALUE_CHUNK_ID 0x0130 + +class CAppDataEntry; + +/** + * \brief CAppData + * \date 2012-08-21 11:47GMT + * \author Jan Boon (Kaetemi) + * This implements the AppData chunk in the storage + */ +class CAppData : public CStorageContainer +{ +public: + struct TKey + { + TKey(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId); + NLMISC::CClassId ClassId; + TSClassId SuperClassId; + uint32 SubId; + bool operator<(const TKey &right) const; + bool operator>(const TKey &right) const; + bool operator==(const TKey &right) const; + }; + typedef std::map TMap; + +public: + CAppData(); + virtual ~CAppData(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + + // init + /// Initialize a new instance of this chunk + void init(); + + // public // TODO: Simplify using templates and returning a specialized storage object, auto-converted to the requested type. + /*/// Gets a pointer to an appdata chunk buffer. Returns NULL if it does not exist. Size is returned in the size parameter. + const uint8 *read(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId, uint32 &size) const; + /// Locks a pointer to an appdata chunk buffer for writing to with specified capacity. May return NULL if this chunk is unparsable or no memory can be allocated. + uint8 *lock(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId, uint32 capacity); + /// Unlocks a pointer to an appdata chunk buffer, setting the final written size. + void unlock(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId, uint32 size); + /// Fills an appdata chunk buffer with specified data, which will be copied. + void fill(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId, uint8 *buffer, uint32 size); + /// Erases an appdata chunk. + void erase(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId);*/ + + // public + /// Gets an appdata chunk storage object, returns NULL if it does not exist + template + T *get(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId); + /// Gets or creates a chunk storage object + template + T *getOrCreate(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId); + /// Erases an appdata chunk. + void erase(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId); + + // read access + /// Return the entries map, do not modify directly + inline const TMap &entries() const { return m_Entries; } + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + TMap m_Entries; + +}; /* class CAppData */ + +/** + * \brief CAppDataEntryKey + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CAppDataEntryKey + */ +class CAppDataEntryKey : public IStorageObject +{ +public: + CAppDataEntryKey(); + virtual ~CAppDataEntryKey(); + + // public data + NLMISC::CClassId ClassId; + TSClassId SuperClassId; + uint32 SubId; + uint32 Size; + + // inherited + virtual std::string className() const; + virtual void serial(NLMISC::IStream &stream); + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + +}; /* class CAppDataEntryKey */ + +/** + * \brief CAppDataEntry + * \date 2012-08-21 11:47GMT + * \author Jan Boon (Kaetemi) + * This implements an entry in the AppData chunk in the storage + */ +class CAppDataEntry : public CStorageContainer +{ +public: + friend class CAppData; + +public: + CAppDataEntry(); + virtual ~CAppDataEntry(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + + // public + // Initializes a new entry + void init(); + // Returns the key + inline CAppDataEntryKey *key() { return m_Key; } + // Returns the value + template + T *value(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + CAppDataEntryKey *m_Key; + CStorageRaw *m_Raw; + IStorageObject *m_Value; + +}; /* class CAppDataEntry */ + +template +T *CAppDataEntry::value() +{ + if (m_Value) + { + T *result = dynamic_cast(m_Value); + if (result) + { + return result; + } + else + { + nlwarning("AppData value has already been cast to another type, recasting, the previous chunk becomes invalid, this may not be intended"); + NLMISC::CMemStream mem; + m_Value->serial(mem); + result = new T(); + result->setSize(mem.getPos()); + mem.invert(); + delete m_Value; + m_Value = result; + result->serial(mem); + return result; + } + } + else + { + nlassert(!m_Value); + nlassert(m_Raw); + // nldebug("Casting raw to user type"); + NLMISC::CMemStream mem; + m_Raw->serial(mem); + T *result = new T(); + result->setSize(mem.getPos()); + // nldebug("Read %i", mem.getPos()); + mem.invert(); + m_Raw->Value.resize(0); + m_Key->Size = 0xFFFFFFFF; + m_Value = result; + result->serial(mem); + // nldebug("Wrote %i", mem.getPos()); + return result; + } +} + +template +T *CAppData::get(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId) +{ + if (m_ChunksOwnsPointers) { nlwarning("Not parsed"); return NULL; } + TKey key(classId, superClassId, subId); + TMap::const_iterator it = m_Entries.find(key); + if (it == m_Entries.end()) { nldebug("Trying to read non-existant key, this is allowed, returning NULL"); return NULL; } + return it->second->value(); +} + +template +T *CAppData::getOrCreate(NLMISC::CClassId classId, TSClassId superClassId, uint32 subId) +{ + if (m_ChunksOwnsPointers) { nlwarning("Not parsed"); return NULL; } + TKey key(classId, superClassId, subId); + TMap::const_iterator it = m_Entries.find(key); + CAppDataEntry *appDataEntry; + if (it == m_Entries.end()) + { + appDataEntry = new CAppDataEntry(); + appDataEntry->init(); + m_Entries[key] = appDataEntry; + appDataEntry->key()->ClassId = classId; + appDataEntry->key()->SuperClassId = superClassId; + appDataEntry->key()->SubId = subId; + } + else + { + appDataEntry = it->second; + } + return appDataEntry->value(); +} + +} /* namespace STORAGE */ +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_APP_DATA_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/storage/geom_buffers.cpp b/code/nel/tools/3d/pipeline_max/builtin/storage/geom_buffers.cpp new file mode 100644 index 000000000..54a04fd8d --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/storage/geom_buffers.cpp @@ -0,0 +1,332 @@ +/** + * \file geom_buffers.cpp + * \brief CGeomBuffers + * \date 2012-08-25 07:55GMT + * \author Jan Boon (Kaetemi) + * CGeomBuffers + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "geom_buffers.h" + +// STL includes +#include + +// NeL includes +// #include s + +// Project includes +#include "../../storage_array.h" + +// using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { +namespace STORAGE { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +#define PMBS_GEOM_BUFFERS_PARSE 0 + +// Elevate warnings to errors in this file for stricter reading +#undef nlwarning +#define nlwarning nlerror + +// Elevate debug to error in this file for debugging +// #undef nldebug +// #define nldebug nlerror + +// Chunk identifiers +#define PMBS_GEOM_BUFFERS_TRI_A_VERTEX_CHUNK_ID 0x0914 +#define PMBS_GEOM_BUFFERS_TRI_A_INDEX_CHUNK_ID 0x0912 +#define PMBS_GEOM_BUFFERS_TRI_B_VERTEX_CHUNK_ID 0x0916 +#define PMBS_GEOM_BUFFERS_TRI_B_INDEX_CHUNK_ID 0x0918 +#define PMBS_GEOM_BUFFERS_TRI_C_VERTEX_CHUNK_ID 0x0938 +#define PMBS_GEOM_BUFFERS_TRI_C_INDEX_CHUNK_ID 0x0942 +#define PBMS_GEOM_BUFFERS_POLY_A_VERTEX_CHUNK_ID 0x0100 +#define PBMS_GEOM_BUFFERS_POLY_A_EDGE_CHUNK_ID 0x010a +#define PBMS_GEOM_BUFFERS_POLY_A_FACE_CHUNK_ID 0x011a + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +void CGeomTriIndex::serial(NLMISC::IStream &stream) +{ + stream.serial(a); + stream.serial(b); + stream.serial(c); +} + +std::string CGeomTriIndex::toString() const +{ + std::stringstream ss; + ss << a << " " << b << " " << c; + return ss.str(); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +void CGeomTriIndexInfo::serial(NLMISC::IStream &stream) +{ + stream.serial(a); + stream.serial(b); + stream.serial(c); + stream.serial(alwaysOne); + stream.serial(smoothingGroups); +} + +std::string CGeomTriIndexInfo::toString() const +{ + std::stringstream ss; + ss << a << " " << b << " " << c << ", " << alwaysOne << " " << smoothingGroups; + return ss.str(); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +void CGeomPolyVertexInfo::serial(NLMISC::IStream &stream) +{ + stream.serial(i1); + stream.serial(v); +} + +std::string CGeomPolyVertexInfo::toString() const +{ + std::stringstream ss; + ss << "0x" << NLMISC::toString("%x", i1) << ", " << v.toString(); + return ss.str(); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +void CGeomPolyEdgeInfo::serial(NLMISC::IStream &stream) +{ + stream.serial(i1); + stream.serial(a); + stream.serial(b); +} + +std::string CGeomPolyEdgeInfo::toString() const +{ + std::stringstream ss; + ss << "0x" << NLMISC::toString("%x", i1) << ", " << a << " " << b; + return ss.str(); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CGeomPolyFaceInfo::CGeomPolyFaceInfo() : I1(0), Material(0), SmoothingGroups(0) +{ + +} + +void CGeomPolyFaceInfo::serial(NLMISC::IStream &stream) +{ + // nldebug("go"); + stream.serialCont(Vertices); + // nldebug("%i vertices", Vertices.size()); + uint16 bitfield; + if (!stream.isReading()) + { + /*nldebug("writing");*/ + bitfield = 0x0000; + if (I1) bitfield |= 0x0001; + // bitfield |= 0x0002; + // bitfield |= 0x0004; + if (Material) bitfield |= 0x0008; + if (SmoothingGroups) bitfield |= 0x0010; + if (Triangulation.size()) bitfield |= 0x0020; + // bitfield |= 0x0040; + // bitfield |= 0x0080; + } + stream.serial(bitfield); + // nldebug("bitfield 0x%x", (uint32)bitfield); + if (bitfield & 0x0001) { /*nldebug("i1");*/ stream.serial(I1); nlassert(I1); bitfield &= ~0x0001; } + else I1 = 0; + if (bitfield & 0x0008) { /*nldebug("material");*/ stream.serial(Material); nlassert(Material); bitfield &= ~0x0008; } + else Material = 0; + if (bitfield & 0x0010) { /*nldebug("smoothing");*/ stream.serial(SmoothingGroups); nlassert(SmoothingGroups); bitfield &= ~0x0010; } + else SmoothingGroups = 0; + if (bitfield & 0x0020) + { + /*nldebug("triangles");*/ + if (stream.isReading()) Triangulation.resize(Vertices.size() - 3); + else nlassert(Triangulation.size() == Vertices.size() - 3); + for (std::vector >::size_type i = 0; i < Triangulation.size(); ++i) + { + stream.serial(Triangulation[i].first); + /*nldebug("cut from %i", Triangulation[i].first);*/ + nlassert(Triangulation[i].first < Vertices.size()); + stream.serial(Triangulation[i].second); + /*nldebug("to %i", Triangulation[i].second);*/ + nlassert(Triangulation[i].second < Vertices.size()); + } + nlassert(Triangulation.size()); + bitfield &= ~0x0020; + } + if (bitfield) nlerror("Remaining bitfield value 0x%x, please debug and implement", (uint32)bitfield); +} + +std::string CGeomPolyFaceInfo::toString() const +{ + std::stringstream ss; + ss << "( "; + for (std::vector::size_type i = 0; i < Vertices.size(); ++i) + { + ss << Vertices[i] << " "; + } + ss << ")"; + if (I1) ss << ", I1: " << "0x" << NLMISC::toString("%x", I1); + if (Material) ss << ", M: " << Material; + if (SmoothingGroups) ss << ", S: " << SmoothingGroups; + if (Triangulation.size()) + { + ss << ", ( "; + for (std::vector >::size_type i = 0; i < Triangulation.size(); ++i) + { + ss << Triangulation[i].first << ":" << Triangulation[i].second << " "; + } + ss << ")"; + } + ss << " "; + return ss.str(); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CGeomBuffers::CGeomBuffers() +{ + +} + +CGeomBuffers::~CGeomBuffers() +{ + +} + +std::string CGeomBuffers::className() const +{ + return "GeomBuffers"; +} + +void CGeomBuffers::toString(std::ostream &ostream, const std::string &pad) const +{ + CStorageContainer::toString(ostream, pad); +} + +void CGeomBuffers::parse(uint16 version, uint filter) +{ +#if PMBS_GEOM_BUFFERS_PARSE + CStorageContainer::parse(version); +#else + CStorageContainer::parse(version); +#endif +} + +void CGeomBuffers::clean() +{ +#if PMBS_GEOM_BUFFERS_PARSE + CStorageContainer::clean(); +#else + CStorageContainer::clean(); +#endif +} + +void CGeomBuffers::build(uint16 version, uint filter) +{ +#if PMBS_GEOM_BUFFERS_PARSE + CStorageContainer::build(version); +#else + CStorageContainer::build(version); +#endif +} + +void CGeomBuffers::disown() +{ +#if PMBS_GEOM_BUFFERS_PARSE + CStorageContainer::disown(); +#else + CStorageContainer::disown(); +#endif +} + +IStorageObject *CGeomBuffers::createChunkById(uint16 id, bool container) +{ +#if PMBS_GEOM_BUFFERS_PARSE + switch (id) + { + // nlassert(!container); + // return new CStorageArray(); + //case PBMS_GEOM_BUFFERS_POLY_A_INDEX_B_CHUNK_ID: + // nlassert(!container); + // return new CStorageArray(); + case PBMS_GEOM_BUFFERS_POLY_A_VERTEX_CHUNK_ID: + nlassert(!container); + return new CStorageArraySizePre(); + case PBMS_GEOM_BUFFERS_POLY_A_EDGE_CHUNK_ID: + nlassert(!container); + return new CStorageArraySizePre(); + case PBMS_GEOM_BUFFERS_POLY_A_FACE_CHUNK_ID: + nlassert(!container); + return new CStorageArrayDynSize(); + case PMBS_GEOM_BUFFERS_TRI_B_INDEX_CHUNK_ID: + case PMBS_GEOM_BUFFERS_TRI_C_INDEX_CHUNK_ID: + nlassert(!container); + return new CStorageArray(); // nb: parse should check if the sizes match with tri_a size (which is the master index buffer) + case PMBS_GEOM_BUFFERS_TRI_A_INDEX_CHUNK_ID: + nlassert(!container); + return new CStorageArraySizePre(); + case PMBS_GEOM_BUFFERS_TRI_A_VERTEX_CHUNK_ID: + case PMBS_GEOM_BUFFERS_TRI_B_VERTEX_CHUNK_ID: + case PMBS_GEOM_BUFFERS_TRI_C_VERTEX_CHUNK_ID: + nlassert(!container); + return new CStorageArraySizePre(); + } +#endif + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace STORAGE */ +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/storage/geom_buffers.h b/code/nel/tools/3d/pipeline_max/builtin/storage/geom_buffers.h new file mode 100644 index 000000000..3d4cd99a7 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/storage/geom_buffers.h @@ -0,0 +1,134 @@ +/** + * \file geom_buffers.h + * \brief CGeomBuffers + * \date 2012-08-25 07:55GMT + * \author Jan Boon (Kaetemi) + * CGeomBuffers + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_GEOM_BUFFERS_H +#define PIPELINE_GEOM_BUFFERS_H +#include + +// STL includes + +// NeL includes +#include + +// Project includes +#include "../../storage_object.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { +namespace STORAGE { + +struct CGeomTriIndex +{ + uint32 a; + uint32 b; + uint32 c; + void serial(NLMISC::IStream &stream); + std::string toString() const; +}; + +struct CGeomTriIndexInfo +{ + uint32 a; + uint32 b; + uint32 c; + uint32 alwaysOne; + uint32 smoothingGroups; + void serial(NLMISC::IStream &stream); + std::string toString() const; +}; + +struct CGeomPolyVertexInfo +{ + uint32 i1; + NLMISC::CVector v; + void serial(NLMISC::IStream &stream); + std::string toString() const; +}; + +struct CGeomPolyEdgeInfo +{ + uint32 i1; + uint32 a; + uint32 b; + void serial(NLMISC::IStream &stream); + std::string toString() const; +}; + +struct CGeomPolyFaceInfo +{ + CGeomPolyFaceInfo(); + /// Vertex indices in the vertex buffer + std::vector Vertices; + // Bitfield (implicitly stored) + /// Unknown 01 00 01 00 + uint32 I1; + // Unknown? + // Unknown? + /// Material index in multi-submat + uint16 Material; + /// Bitfield with smoothing groups + uint32 SmoothingGroups; + /// Cuts at local vertex index to local vertex index + std::vector > Triangulation; + void serial(NLMISC::IStream &stream); + std::string toString() const; +}; + +/** + * \brief CGeomBuffers + * \date 2012-08-25 07:55GMT + * \author Jan Boon (Kaetemi) + * CGeomBuffers + */ +class CGeomBuffers : public CStorageContainer +{ +public: + CGeomBuffers(); + virtual ~CGeomBuffers(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CGeomBuffers */ + +} /* namespace STORAGE */ +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_GEOM_BUFFERS_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/super_class_unknown.cpp b/code/nel/tools/3d/pipeline_max/builtin/super_class_unknown.cpp new file mode 100644 index 000000000..da0c38ae0 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/super_class_unknown.cpp @@ -0,0 +1,59 @@ +/** + * \file super_class_unknown.cpp + * \brief CSuperClassUnknown + * \date 2012-08-22 08:59GMT + * \author Jan Boon (Kaetemi) + * CSuperClassUnknown + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "super_class_unknown.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CSuperClassUnknown::CSuperClassUnknown() +{ + +} + +CSuperClassUnknown::~CSuperClassUnknown() +{ + +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/super_class_unknown.h b/code/nel/tools/3d/pipeline_max/builtin/super_class_unknown.h new file mode 100644 index 000000000..81944aec7 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/super_class_unknown.h @@ -0,0 +1,67 @@ +/** + * \file super_class_unknown.h + * \brief CSuperClassUnknown + * \date 2012-08-22 08:59GMT + * \author Jan Boon (Kaetemi) + * CSuperClassUnknown + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_SUPER_CLASS_UNKNOWN_H +#define PIPELINE_SUPER_CLASS_UNKNOWN_H +#include + +// STL includes + +// NeL includes + +// Project includes + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CSuperClassUnknown + * \date 2012-08-22 08:59GMT + * \author Jan Boon (Kaetemi) + * CSuperClassUnknown + */ +class CSuperClassUnknown +{ +protected: + // pointers + // ... + + // instances + // ... +public: + CSuperClassUnknown(); + virtual ~CSuperClassUnknown(); +}; /* class CSuperClassUnknown */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_SUPER_CLASS_UNKNOWN_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/texmap.cpp b/code/nel/tools/3d/pipeline_max/builtin/texmap.cpp new file mode 100644 index 000000000..600542bb7 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/texmap.cpp @@ -0,0 +1,59 @@ +/** + * \file texmap.cpp + * \brief CTexmap + * \date 2012-08-22 08:56GMT + * \author Jan Boon (Kaetemi) + * CTexmap + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "texmap.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CTexmap::CTexmap(CScene *scene) : CMtlBase(scene) +{ + +} + +CTexmap::~CTexmap() +{ + +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/texmap.h b/code/nel/tools/3d/pipeline_max/builtin/texmap.h new file mode 100644 index 000000000..da2fc376a --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/texmap.h @@ -0,0 +1,63 @@ +/** + * \file texmap.h + * \brief CTexmap + * \date 2012-08-22 08:56GMT + * \author Jan Boon (Kaetemi) + * CTexmap + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_TEXMAP_H +#define PIPELINE_TEXMAP_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "mtl_base.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CTexmap + * \date 2012-08-22 08:56GMT + * \author Jan Boon (Kaetemi) + * CTexmap + */ +class CTexmap : public CMtlBase +{ +public: + CTexmap(CScene *scene); + virtual ~CTexmap(); + +}; /* class CTexmap */ + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_TEXMAP_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/track_view_node.cpp b/code/nel/tools/3d/pipeline_max/builtin/track_view_node.cpp new file mode 100644 index 000000000..3a4b8978b --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/track_view_node.cpp @@ -0,0 +1,192 @@ +/** + * \file track_view_node.cpp + * \brief CTrackViewNode + * \date 2012-08-24 09:44GMT + * \author Jan Boon (Kaetemi) + * CTrackViewNode + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "track_view_node.h" + +// STL includes +#include + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +#define PMB_TVNODE_EMPTY0140_CHUNK_ID 0x0140 +#define PMB_TVNODE_EMPTY0150_CHUNK_ID 0x0150 + +#define PMB_TVNODE_DISPLAYNAME_CHUNK_ID 0x0110 +#define PMB_TVNODE_IDENTIFIER_CHUNK_ID 0x0120 +#define PMB_TVNODE_ISNOTNODE_CHUNK_ID 0x0130 + +CTrackViewNode::CTrackViewNode(CScene *scene) : CReferenceTarget(scene), m_Empty0140(NULL), m_Empty0150(NULL) +{ + +} + +CTrackViewNode::~CTrackViewNode() +{ + +} + +const ucstring CTrackViewNode::DisplayName = ucstring("TVNode"); +const char *CTrackViewNode::InternalName = "TrackViewNode"; +const NLMISC::CClassId CTrackViewNode::ClassId = NLMISC::CClassId(0x8d73b8aa, 0x90f2ee71); +const TSClassId CTrackViewNode::SuperClassId = CReferenceTarget::SuperClassId; +const CTrackViewNodeClassDesc TrackViewNodeClassDesc(&DllPluginDescBuiltin); + +void CTrackViewNode::parse(uint16 version, uint filter) +{ + CReferenceTarget::parse(version); + if (!m_ChunksOwnsPointers) + { + // Read unknown chunks + m_Empty0140 = static_cast(getChunk(PMB_TVNODE_EMPTY0140_CHUNK_ID)); + if (m_Empty0140) nlassert(m_Empty0140->Value.empty()); + m_Empty0150 = static_cast(getChunk(PMB_TVNODE_EMPTY0150_CHUNK_ID)); + if (m_Empty0150) nlassert(m_Empty0140->Value.empty()); + + // Read child nodes + for (std::vector::size_type i = 0; i < m_Children.size(); ++i) + { + m_Children[i].DisplayName = getChunkValue(PMB_TVNODE_DISPLAYNAME_CHUNK_ID); + m_Children[i].Identifier = getChunkValue(PMB_TVNODE_IDENTIFIER_CHUNK_ID); + m_Children[i].IsNotAnotherNode = getChunkValue(PMB_TVNODE_ISNOTNODE_CHUNK_ID); + } + } +} + +void CTrackViewNode::clean() +{ + CReferenceTarget::clean(); +} + +void CTrackViewNode::build(uint16 version, uint filter) +{ + CReferenceTarget::build(version); + + // Write unknown chunks + if (m_Empty0140) putChunk(PMB_TVNODE_EMPTY0140_CHUNK_ID, m_Empty0140); + if (m_Empty0150) putChunk(PMB_TVNODE_EMPTY0150_CHUNK_ID, m_Empty0150); + + // Write child nodes + for (std::vector::size_type i = 0; i < m_Children.size(); ++i) + { + putChunkValue(PMB_TVNODE_DISPLAYNAME_CHUNK_ID, m_Children[i].DisplayName); + putChunkValue(PMB_TVNODE_IDENTIFIER_CHUNK_ID, m_Children[i].Identifier); + putChunkValue(PMB_TVNODE_ISNOTNODE_CHUNK_ID, m_Children[i].IsNotAnotherNode); + } +} + +void CTrackViewNode::disown() +{ + m_Children.clear(); + CReferenceTarget::disown(); +} + +void CTrackViewNode::init() +{ + CReferenceTarget::init(); +} + +bool CTrackViewNode::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CReferenceTarget::inherits(classId); +} + +const ISceneClassDesc *CTrackViewNode::classDesc() const +{ + return &TrackViewNodeClassDesc; +} + +void CTrackViewNode::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CReferenceTarget::toStringLocal(ostream, pad); + if (m_Empty0140) ostream << "\n" << pad << "Empty 0x0140 "; + if (m_Empty0150) ostream << "\n" << pad << "Empty 0x0150 "; + // std::string padpad = pad + "\t"; + for (std::vector::size_type i = 0; i < m_Children.size(); ++i) + { + CReferenceMaker *referenceMaker = m_Children[i].Reference; + nlassert(referenceMaker); + ostream << "\n" << pad << i << ": "; + ostream << "(" << ucstring(referenceMaker->classDesc()->displayName()).toUtf8() << ", " << referenceMaker->classDesc()->classId().toString() << ") "; + ostream << "(" << m_Children[i].DisplayName.toUtf8() << ", " << m_Children[i].Identifier.toString() << ", " << (m_Children[i].IsNotAnotherNode ? "ENTRY" : "TVNODE") << ") "; + } +} + +CReferenceMaker *CTrackViewNode::getReference(uint index) const +{ + if (m_Children.size() <= index) return NULL; + return m_Children[index].Reference; +} + +void CTrackViewNode::setReference(uint index, CReferenceMaker *reference) +{ + if (m_Children.size() <= index) m_Children.resize(index + 1); + m_Children[index].Reference = reference; +} + +uint CTrackViewNode::nbReferences() const +{ + return m_Children.size(); +} + +IStorageObject *CTrackViewNode::createChunkById(uint16 id, bool container) +{ + switch (id) + { + case PMB_TVNODE_DISPLAYNAME_CHUNK_ID: + return new CStorageValue(); + case PMB_TVNODE_IDENTIFIER_CHUNK_ID: + return new CStorageValue(); + case PMB_TVNODE_ISNOTNODE_CHUNK_ID: + return new CStorageValue(); + } + return CReferenceTarget::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/track_view_node.h b/code/nel/tools/3d/pipeline_max/builtin/track_view_node.h new file mode 100644 index 000000000..4aca39c0d --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/track_view_node.h @@ -0,0 +1,109 @@ +/** + * \file track_view_node.h + * \brief CTrackViewNode + * \date 2012-08-24 09:44GMT + * \author Jan Boon (Kaetemi) + * CTrackViewNode + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_TRACK_VIEW_NODE_H +#define PIPELINE_TRACK_VIEW_NODE_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "reference_target.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CTrackViewNode + * \date 2012-08-24 09:44GMT + * \author Jan Boon (Kaetemi) + * TVNode + */ +class CTrackViewNode : public CReferenceTarget +{ +public: + struct TChild + { + TChild() : IsNotAnotherNode(0) { } + NLMISC::CRefPtr Reference; + ucstring DisplayName; + NLMISC::CClassId Identifier; + sint32 IsNotAnotherNode; + }; + + CTrackViewNode(CScene *scene); + virtual ~CTrackViewNode(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + + // reference maker + virtual CReferenceMaker *getReference(uint index) const; + virtual void setReference(uint index, CReferenceMaker *reference); + virtual uint nbReferences() const; + + // read access + inline const std::vector &children() const { return m_Children; } + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + CStorageRaw *m_Empty0140; + CStorageRaw *m_Empty0150; + + std::vector m_Children; + +}; /* class CTrackViewNode */ + +typedef CSceneClassDesc CTrackViewNodeClassDesc; +extern const CTrackViewNodeClassDesc TrackViewNodeClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_TRACK_VIEW_NODE_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/tri_object.cpp b/code/nel/tools/3d/pipeline_max/builtin/tri_object.cpp new file mode 100644 index 000000000..71184d038 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/tri_object.cpp @@ -0,0 +1,147 @@ +/** + * \file tri_object.cpp + * \brief CTriObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CTriObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "tri_object.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +CTriObject::CTriObject(CScene *scene) : CGeomObject(scene) +{ + +} + +CTriObject::~CTriObject() +{ + +} + +const ucstring CTriObject::DisplayName = ucstring("TriObject"); +const char *CTriObject::InternalName = "TriObject"; +const NLMISC::CClassId CTriObject::ClassId = NLMISC::CClassId(0x4553fa6, 0x30f8421e); /* Not official, please correct */ +const TSClassId CTriObject::SuperClassId = CGeomObject::SuperClassId; +const CTriObjectClassDesc TriObjectClassDesc(&DllPluginDescBuiltin); + +void CTriObject::parse(uint16 version, uint filter) +{ + if (filter == 0) + { + CGeomObject::parse(version); + } + else if (filter == PMB_TRI_OBJECT_PARSE_FILTER) + { + if (!m_ChunksOwnsPointers) + { + CGeomObject::parse(version, PMB_GEOM_OBJECT_PARSE_FILTER); + // 0x0901 + // 0x0902 + // 0x0904 + // 0x0903 + } + } +} + +void CTriObject::clean() +{ + CGeomObject::clean(); +} + +void CTriObject::build(uint16 version, uint filter) +{ + if (filter == 0) + { + CGeomObject::build(version); + } + else if (filter == PMB_TRI_OBJECT_PARSE_FILTER) + { + CGeomObject::build(version, PMB_GEOM_OBJECT_PARSE_FILTER); + // 0x0901 + // 0x0902 + // 0x0904 + // 0x0903 + } +} + +void CTriObject::disown() +{ + CGeomObject::disown(); +} + +void CTriObject::init() +{ + CGeomObject::init(); +} + +bool CTriObject::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CGeomObject::inherits(classId); +} + +const ISceneClassDesc *CTriObject::classDesc() const +{ + return &TriObjectClassDesc; +} + +void CTriObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + if (filter == 0) + { + CGeomObject::toStringLocal(ostream, pad); + } + else if (filter == PMB_TRI_OBJECT_PARSE_FILTER) + { + CGeomObject::toStringLocal(ostream, pad, PMB_GEOM_OBJECT_PARSE_FILTER); + // 0x0901 + // 0x0902 + // 0x0904 + // 0x0903 + } +} + +IStorageObject *CTriObject::createChunkById(uint16 id, bool container) +{ + return CGeomObject::createChunkById(id, container); +} + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/builtin/tri_object.h b/code/nel/tools/3d/pipeline_max/builtin/tri_object.h new file mode 100644 index 000000000..fafdab2a0 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/builtin/tri_object.h @@ -0,0 +1,90 @@ +/** + * \file tri_object.h + * \brief CTriObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CTriObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_TRI_OBJECT_H +#define PIPELINE_TRI_OBJECT_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "geom_object.h" + +/// Must be passed to the parse and build functions by +/// inheriting classes to parse the actual tri object. +#define PMB_TRI_OBJECT_PARSE_FILTER 0x38f55e43 + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +/** + * \brief CTriObject + * \date 2012-08-22 08:58GMT + * \author Jan Boon (Kaetemi) + * CTriObject + */ +class CTriObject : public CGeomObject +{ +public: + CTriObject(CScene *scene); + virtual ~CTriObject(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CTriObject */ + +typedef CSceneClassDesc CTriObjectClassDesc; +extern const CTriObjectClassDesc TriObjectClassDesc; + +} /* namespace BUILTIN */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_TRI_OBJECT_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/class_data.cpp b/code/nel/tools/3d/pipeline_max/class_data.cpp new file mode 100644 index 000000000..05c3688d3 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/class_data.cpp @@ -0,0 +1,203 @@ +/** + * \file class_data.cpp + * \brief CClassData + * \date 2012-08-18 19:24GMT + * \author Jan Boon (Kaetemi) + * CClassData + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "class_data.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CClassData::CClassData() +{ + +} + +CClassData::~CClassData() +{ + +} + +std::string CClassData::className() const +{ + return "ClassData"; +} + +void CClassData::toString(std::ostream &ostream, const std::string &pad) const +{ + CStorageContainer::toString(ostream, pad); +} + +void CClassData::parse(uint16 version, uint filter) +{ + CStorageContainer::parse(version); +} + +void CClassData::clean() +{ + CStorageContainer::clean(); +} + +void CClassData::build(uint16 version, uint filter) +{ + CStorageContainer::build(version); +} + +void CClassData::disown() +{ + CStorageContainer::disown(); +} + +IStorageObject *CClassData::createChunkById(uint16 id, bool container) +{ + if (container) + { + switch (id) + { + case 0x2100: // ClassDataEntry + return new CClassDataEntry(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CClassDataEntry::CClassDataEntry() +{ + +} + +CClassDataEntry::~CClassDataEntry() +{ + +} + +std::string CClassDataEntry::className() const +{ + return "ClassDataEntry"; +} + +void CClassDataEntry::toString(std::ostream &ostream, const std::string &pad) const +{ + CStorageContainer::toString(ostream, pad); +} + +void CClassDataEntry::parse(uint16 version, uint filter) +{ + CStorageContainer::parse(version); +} + +void CClassDataEntry::clean() +{ + CStorageContainer::clean(); +} + +void CClassDataEntry::build(uint16 version, uint filter) +{ + CStorageContainer::build(version); +} + +void CClassDataEntry::disown() +{ + CStorageContainer::disown(); +} + +IStorageObject *CClassDataEntry::createChunkById(uint16 id, bool container) +{ + if (!container) + { + switch (id) + { + case 0x2110: // ClassDataHeader + return new CClassDataHeader(); + } + } + switch (id) + { + case 0x2120: // ClassDataBody: Depends on the ClassDataHeader: TODO + return CStorageContainer::createChunkById(id, container); + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CClassDataHeader::CClassDataHeader() +{ + +} + +CClassDataHeader::~CClassDataHeader() +{ + +} + +std::string CClassDataHeader::className() const +{ + return "ClassDataHeader"; +} + +void CClassDataHeader::serial(NLMISC::IStream &stream) +{ + stream.serial(ClassID); + stream.serial(SuperClassID); +} + +void CClassDataHeader::toString(std::ostream &ostream, const std::string &pad) const +{ + ostream << "(" << className() << ") { "; + ostream << "\n" << pad << "ClassID: " << NLMISC::toString(ClassID); + ostream << "\n" << pad << "SuperClassID: " << SuperClassID; + ostream << " } "; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/class_data.h b/code/nel/tools/3d/pipeline_max/class_data.h new file mode 100644 index 000000000..1515f4062 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/class_data.h @@ -0,0 +1,122 @@ +/** + * \file class_data.h + * \brief CClassData + * \date 2012-08-18 19:24GMT + * \author Jan Boon (Kaetemi) + * CClassData + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_CLASS_DATA_H +#define PIPELINE_CLASS_DATA_H +#include + +// STL includes + +// NeL includes +#include + +// Project includes +#include "storage_object.h" +#include "storage_value.h" + +namespace PIPELINE { +namespace MAX { + +/** + * \brief CClassData + * \date 2012-08-18 19:24GMT + * \author Jan Boon (Kaetemi) + * CClassData + */ +class CClassData : public CStorageContainer +{ +public: + CClassData(); + virtual ~CClassData(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CClassData */ + +/** + * \brief CClassDataEntry + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CClassDataEntry + */ +class CClassDataEntry : public CStorageContainer +{ +public: + CClassDataEntry(); + virtual ~CClassDataEntry(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CClassDataEntry */ + +/** + * \brief CClassDataHeader + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CClassDataHeader + */ +class CClassDataHeader : public IStorageObject +{ +public: + CClassDataHeader(); + virtual ~CClassDataHeader(); + + // public data + NLMISC::CClassId ClassID; + uint32 SuperClassID; + + // inherited + virtual std::string className() const; + virtual void serial(NLMISC::IStream &stream); + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + +}; /* class CClassDataHeader */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_CLASS_DATA_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/class_directory_3.cpp b/code/nel/tools/3d/pipeline_max/class_directory_3.cpp new file mode 100644 index 000000000..bbe46eefe --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/class_directory_3.cpp @@ -0,0 +1,430 @@ +/** + * \file class_directory_3.cpp + * \brief CClassDirectory3 + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CClassDirectory3 + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "class_directory_3.h" + +// STL includes +#include + +// NeL includes +// #include + +// Project includes +#include "dll_directory.h" + +// using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CClassDirectory3::CClassDirectory3(CDllDirectory *dllDirectory) : m_DllDirectory(dllDirectory) +{ + +} + +// Parallel to CDllDirectory +CClassDirectory3::~CClassDirectory3() +{ + // Delete m_ChunkCache and m_Entries when !m_ChunksOwnsPointers + if (!m_ChunksOwnsPointers) + { + for (TStorageObjectContainer::iterator it = m_ChunkCache.begin(), end = m_ChunkCache.end(); it != end; ++it) + { + delete it->second; + } + for (std::vector::iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + { + delete (*subit); + } + } + m_ChunkCache.clear(); + m_Entries.clear(); + m_ClassIdToIndex.clear(); +} + +std::string CClassDirectory3::className() const +{ + return "ClassDirectory3"; +} + +// Parallel to CDllDirectory +void CClassDirectory3::toString(std::ostream &ostream, const std::string &pad) const +{ + if (m_ChunksOwnsPointers) + { + CStorageContainer::toString(ostream, pad); + } + else + { + ostream << "(" << className() << ") [" << m_Chunks.size() << "] PARSED { "; + std::string padpad = pad + "\t"; + sint i = 0; + for (TStorageObjectContainer::const_iterator it = m_ChunkCache.begin(), end = m_ChunkCache.end(); it != end; ++it) + { + uint16 id = it->first; + switch (id) + { + case 0x2040: // ClassEntry + { + uint subi = 0; + for (std::vector::const_iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + { + ostream << "\n" << pad << "Entries[" << subi << "]: "; + (*subit)->toString(ostream, padpad); + ++subi; + } + } + break; + default: + std::stringstream ss; + ss << std::hex << std::setfill('0'); + ss << std::setw(4) << it->first; + ostream << "\n" << pad << "0x" << ss.str() << ": "; + it->second->toString(ostream, padpad); + ++i; + break; + } + } + ostream << "} "; + } +} + +// Parallel to CDllDirectory +void CClassDirectory3::parse(uint16 version, uint filter) +{ + // Ensure not yet parsed + nlassert(m_ChunkCache.empty()); + nlassert(m_Entries.empty()); + + // Parse entries first + CStorageContainer::parse(version); + + // Initialize + uint16 lastCached = 0xFFFF; + bool parsedDllEntry = false; + + // Parse chunks + for (TStorageObjectContainer::iterator it = m_Chunks.begin(), end = m_Chunks.end(); it != end; ++it) + { + uint16 id = it->first; + switch (id) + { + case 0x2040: // ClassEntry + { + if (parsedDllEntry && (lastCached != id)) + throw EStorageParse(); // There were chunks inbetween + if (!parsedDllEntry) + { + m_ChunkCache.push_back(TStorageObjectWithId(id, NULL)); // Dummy entry to know the location + lastCached = id; + parsedDllEntry = true; + } + CClassEntry *classEntry = static_cast(it->second); + m_ClassIdToIndex[classEntry->classId()] = m_Entries.size(); + m_Entries.push_back(classEntry); + break; + } + default: + m_ChunkCache.push_back(*it); // Dummy entry to know the location + lastCached = id; + break; + } + } + + // Now ownership of the pointers lies in m_ChunkCache and m_Entries + m_ChunksOwnsPointers = false; +} + +// Parallel to CDllDirectory +void CClassDirectory3::clean() +{ + // Ensure parsed + nlassert(!m_ChunksOwnsPointers); + + // Clear m_Chunks + m_Chunks.clear(); + + // Clean chunks + for (TStorageObjectContainer::iterator it = m_ChunkCache.begin(), end = m_ChunkCache.end(); it != end; ++it) + { + if (it->second != NULL && it->second->isContainer()) + { + static_cast(it->second)->clean(); + } + } + for (std::vector::iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + { + (*subit)->clean(); + } +} + +// Parallel to CDllDirectory +void CClassDirectory3::build(uint16 version, uint filter) +{ + // Ensure parsed + nlassert(!m_ChunksOwnsPointers); + + // Initialize + nlassert(m_Chunks.empty()); + + // Set up the m_Chunks list, when (CClassEntry::ID, NULL) is found write out all of the entries. + for (TStorageObjectContainer::iterator it = m_ChunkCache.begin(), end = m_ChunkCache.end(); it != end; ++it) + { + uint16 id = it->first; + switch (id) + { + case 0x2040: // ClassEntry + for (std::vector::iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + m_Chunks.push_back(TStorageObjectWithId(id, (*subit))); + break; + default: + m_Chunks.push_back(*it); + break; + } + } + + // Build the entries last (after m_Chunks is built) + CStorageContainer::build(version); + + // NOTE: Ownership remains with m_ChunkCache and m_Entries +} + +// Parallel to CDllDirectory +void CClassDirectory3::disown() +{ + m_ChunkCache.clear(); + m_Entries.clear(); + m_ClassIdToIndex.clear(); + + // Ownership goes back to m_Chunks + m_ChunksOwnsPointers = true; + + // Disown child chunks + CStorageContainer::disown(); +} + +// Parallel to CDllDirectory +const CClassEntry *CClassDirectory3::get(uint16 index) const +{ + nlassert(!m_ChunksOwnsPointers); + if (index >= m_Entries.size()) { nlerror("Index 0x%x is above the number of entries %i", (uint32)index, (uint32)m_Entries.size()); return NULL; } + return m_Entries[index]; +} + +// Parallel to CDllDirectory +void CClassDirectory3::reset() +{ + nlassert(!m_ChunksOwnsPointers); + for (std::vector::iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + { + delete (*subit); + } + m_Entries.clear(); + m_ClassIdToIndex.clear(); +} + +// Parallel to CDllDirectory +uint16 CClassDirectory3::getOrCreateIndex(const ISceneClassDesc *sceneClassDesc) +{ + nlassert(!m_ChunksOwnsPointers); + std::map::iterator it = m_ClassIdToIndex.find(sceneClassDesc->classId()); + + // Return existing index + if (it != m_ClassIdToIndex.end()) + return it->second; + + // Create new entry + CClassEntry *classEntry = new CClassEntry(m_DllDirectory, sceneClassDesc); + uint16 index = m_Entries.size(); + m_ClassIdToIndex[classEntry->classId()] = index; + m_Entries.push_back(classEntry); + return index; +} + +IStorageObject *CClassDirectory3::createChunkById(uint16 id, bool container) +{ + if (container) + { + switch (id) + { + case 0x2040: // ClassEntry + return new CClassEntry(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +// Entries[13]: (ClassEntry) [2] { +// 0 0x2060: (ClassEntryHeader) { +// DllIndex: -2 +// ClassID: (0x222b9eb9, 0x64c75fec) +// SuperClassID: 3072 } +// 1 0x2042: (CStorageValue) { NeL Material } } + +CClassEntry::CClassEntry() : m_Header(NULL), m_Name(NULL) +{ + +} + +CClassEntry::CClassEntry(CDllDirectory *dllDirectory, const ISceneClassDesc *sceneClassDesc) : m_Header(new CClassEntryHeader()), m_Name(new CStorageValue()) +{ + m_Chunks.push_back(TStorageObjectWithId(0x2060, m_Header)); + m_Chunks.push_back(TStorageObjectWithId(0x2042, m_Name)); + m_Header->DllIndex = dllDirectory->getOrCreateIndex(sceneClassDesc->dllPluginDesc()); + m_Header->ClassId = sceneClassDesc->classId(); + m_Header->SuperClassId = sceneClassDesc->superClassId(); + m_Name->Value = sceneClassDesc->displayName(); +} + +CClassEntry::~CClassEntry() +{ + +} + +std::string CClassEntry::className() const +{ + return "ClassEntry"; +} + +void CClassEntry::toString(std::ostream &ostream, const std::string &pad) const +{ + if (m_Header && m_Name) + { + ostream << "(" << className() << ") [" << m_Chunks.size() << "] PARSED { "; + std::string padpad = pad + "\t"; + ostream << "\n" << pad << "Header: "; + m_Header->toString(ostream, padpad); + ostream << "\n" << pad << "Name: " << m_Name->Value.toUtf8(); + ostream << " } "; + } + else + { + CStorageContainer::toString(ostream, pad); + } +} + +void CClassEntry::parse(uint16 version, uint filter) +{ + // CStorageContainer::parse(version); + nlassert(m_ChunksOwnsPointers); + nlassert(m_Chunks.size() == 2); + TStorageObjectContainer::iterator it = m_Chunks.begin(); + nlassert(it->first == 0x2060); // ClassEntryHeader + m_Header = static_cast(it->second); + ++it; + nlassert(it->first == 0x2042); // ClassEntryName + m_Name = static_cast *>(it->second); + // ++it; +} + +void CClassEntry::clean() +{ + // Nothing to do here! (m_Chunks retains ownership) + // CStorageContainer::clean(); +} + +void CClassEntry::build(uint16 version, uint filter) +{ + // Nothing to do here! + // CStorageContainer::build(version); +} + +void CClassEntry::disown() +{ + // CStorageContainer::disown(); + m_Header = NULL; + m_Name = NULL; + nlassert(m_ChunksOwnsPointers); +} + +IStorageObject *CClassEntry::createChunkById(uint16 id, bool container) +{ + if (!container) + { + switch (id) + { + case 0x2060: // ClassEntryHeader + return new CClassEntryHeader(); + case 0x2042: // ClassEntryName + return new CStorageValue(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CClassEntryHeader::CClassEntryHeader() +{ + +} + +CClassEntryHeader::~CClassEntryHeader() +{ + +} + +std::string CClassEntryHeader::className() const +{ + return "ClassEntryHeader"; +} + +void CClassEntryHeader::serial(NLMISC::IStream &stream) +{ + stream.serial(DllIndex); + stream.serial(ClassId); + stream.serial(SuperClassId); +} + +void CClassEntryHeader::toString(std::ostream &ostream, const std::string &pad) const +{ + ostream << "(" << className() << ") { "; + ostream << "\n" << pad << "DllIndex: " << DllIndex; + ostream << "\n" << pad << "ClassId: " << NLMISC::toString(ClassId); + ostream << "\n" << pad << "SuperClassId: " << SuperClassId; + ostream << " } "; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/class_directory_3.h b/code/nel/tools/3d/pipeline_max/class_directory_3.h new file mode 100644 index 000000000..30780d724 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/class_directory_3.h @@ -0,0 +1,160 @@ +/** + * \file class_directory_3.h + * \brief CClassDirectory3 + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CClassDirectory3 + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_CLASS_DIRECTORY_3_H +#define PIPELINE_CLASS_DIRECTORY_3_H +#include + +// STL includes + +// NeL includes +#include +#include + +// Project includes +#include "storage_object.h" +#include "storage_value.h" +#include "scene_class.h" + +namespace PIPELINE { +namespace MAX { + +class CDllDirectory; + +class CClassEntry; + +/** + * \brief CClassDirectory3 + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * This class is used for parsing the local class indices in a max file, + * both reading and writing is supported. It is not used at runtime, + * and should be reset when no longer necessary. Plugins have their own + * static copy of the actual ISceneClassDesc. This class only contains + * CClassEntry instances, which should not be used directly. + */ +class CClassDirectory3 : public CStorageContainer +{ +public: + CClassDirectory3(CDllDirectory *dllDirectory); + virtual ~CClassDirectory3(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + + // public + // Get a class entry corresponding to a chunk index, pointers become invalid after reset + const CClassEntry *get(uint16 index) const; + // Reset the class directory, all class entry pointers become invalid, use class id and scene class registry + void reset(); + // Get or create the chunk index for a class by class description + uint16 getOrCreateIndex(const ISceneClassDesc *sceneClassDesc); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + TStorageObjectContainer m_ChunkCache; + std::vector m_Entries; + std::map m_ClassIdToIndex; + + CDllDirectory *m_DllDirectory; + +}; /* class CClassDirectory3 */ + +/** + * \brief CClassEntryHeader + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CClassEntryHeader + */ +class CClassEntryHeader : public IStorageObject +{ +public: + CClassEntryHeader(); + virtual ~CClassEntryHeader(); + + // public data + sint32 DllIndex; + NLMISC::CClassId ClassId; + uint32 SuperClassId; + + // inherited + virtual std::string className() const; + virtual void serial(NLMISC::IStream &stream); + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + +}; /* class CClassEntryHeader */ + +/** + * \brief CClassEntry + * \date 2012-08-18 18:01GMT + * \author Jan Boon (Kaetemi) + * CClassEntry + */ +class CClassEntry : public CStorageContainer +{ +public: + CClassEntry(); + CClassEntry(CDllDirectory *dllDirectory, const ISceneClassDesc *sceneClassDesc); + virtual ~CClassEntry(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + + // read access + const ucstring &displayName() const { return m_Name->Value; } + sint32 dllIndex() const { return m_Header->DllIndex; } + NLMISC::CClassId classId() const { return m_Header->ClassId; } + uint32 superClassId() const { return m_Header->SuperClassId; } + + // debug + void overrideClassId(NLMISC::CClassId classId) { m_Header->ClassId = classId; } + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + CClassEntryHeader *m_Header; + CStorageValue *m_Name; + +}; /* class CClassEntry */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_CLASS_DIRECTORY_3_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/config.cpp b/code/nel/tools/3d/pipeline_max/config.cpp new file mode 100644 index 000000000..440b74e17 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/config.cpp @@ -0,0 +1,553 @@ +/** + * \file config.cpp + * \brief CConfig + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CConfig + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "config.h" + +// STL includes + +// NeL includes +// #include +#include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CConfig::CConfig() +{ + +} + +CConfig::~CConfig() +{ + +} + +std::string CConfig::className() const +{ + return "Config"; +} + +void CConfig::toString(std::ostream &ostream, const std::string &pad) const +{ + CStorageContainer::toString(ostream, pad); +} + +void CConfig::parse(uint16 version, uint filter) +{ + CStorageContainer::parse(version); +} + +void CConfig::clean() +{ + CStorageContainer::clean(); +} + +void CConfig::build(uint16 version, uint filter) +{ + CStorageContainer::build(version); +} + +void CConfig::disown() +{ + CStorageContainer::disown(); +} + +IStorageObject *CConfig::createChunkById(uint16 id, bool container) +{ + if (container) + { + switch (id) + { + case 0x20a0: // unknown + return new CConfig20a0(); + case 0x2180: // CConfigScript + return new CConfigScript(); + } + } + else + { + switch (id) + { + case 0x2090: // unknown; known values: 1 (m3), 0 (m9, m2008, m2010) + return new CStorageValue(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CConfig20a0::CConfig20a0() +{ + +} + +CConfig20a0::~CConfig20a0() +{ + +} + +std::string CConfig20a0::className() const +{ + return "Config20a0"; +} + +void CConfig20a0::toString(std::ostream &ostream, const std::string &pad) const +{ + CStorageContainer::toString(ostream, pad); +} + +void CConfig20a0::parse(uint16 version, uint filter) +{ + CStorageContainer::parse(version); +} + +void CConfig20a0::clean() +{ + CStorageContainer::clean(); +} + +void CConfig20a0::build(uint16 version, uint filter) +{ + CStorageContainer::build(version); +} + +void CConfig20a0::disown() +{ + CStorageContainer::disown(); +} + +IStorageObject *CConfig20a0::createChunkById(uint16 id, bool container) +{ + if (container) + { + switch (id) + { + case 0x0110: // CConfig20a0Entry + return new CConfig20a0Entry(); + } + } + else + { + switch (id) + { + case 0x0100: // CConfig20a0Header: Number of entries + return new CStorageValue(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CConfig20a0Entry::CConfig20a0Entry() +{ + +} + +CConfig20a0Entry::~CConfig20a0Entry() +{ + +} + +std::string CConfig20a0Entry::className() const +{ + return "Config20a0Entry"; +} + +void CConfig20a0Entry::toString(std::ostream &ostream, const std::string &pad) const +{ + CStorageContainer::toString(ostream, pad); +} + +void CConfig20a0Entry::parse(uint16 version, uint filter) +{ + CStorageContainer::parse(version); +} + +void CConfig20a0Entry::clean() +{ + CStorageContainer::clean(); +} + +void CConfig20a0Entry::build(uint16 version, uint filter) +{ + CStorageContainer::build(version); +} + +void CConfig20a0Entry::disown() +{ + CStorageContainer::disown(); +} + +IStorageObject *CConfig20a0Entry::createChunkById(uint16 id, bool container) +{ + if (container) + { + switch (id) + { + case 0x0300: // unknown, contains 0x0100 with 4 bytes int value + return CStorageContainer::createChunkById(id, container); + } + } + else + { + switch (id) + { + case 0x0100: // unknown + case 0x0110: // unknown + case 0x0120: // unknown + case 0x0130: // unknown + case 0x0140: // unknown + case 0x0150: // unknown + case 0x0160: // unknown + case 0x0161: // unknown + case 0x0170: // unknown + case 0x0180: // unknown + case 0x0190: // unknown + case 0x0200: // unknown + case 0x0210: // unknown + case 0x0220: // unknown + case 0x0230: // unknown + case 0x0240: // unknown + case 0x0250: // unknown + case 0x0270: // unknown + case 0x0280: // unknown + case 0x0310: // unknown + case 0x0320: // unknown + return new CStorageValue(); + case 0x0260: // unknown + return new CStorageValue(); + case 0x0330: // unknown, 16 bytes + return CStorageContainer::createChunkById(id, container); + case 0x0290: // unknown + case 0x0390: // unknown + return new CStorageValue(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CConfigScript::CConfigScript() +{ + +} + +CConfigScript::~CConfigScript() +{ + +} + +std::string CConfigScript::className() const +{ + return "ConfigScript"; +} + +void CConfigScript::toString(std::ostream &ostream, const std::string &pad) const +{ + CStorageContainer::toString(ostream, pad); +} + +void CConfigScript::parse(uint16 version, uint filter) +{ + CStorageContainer::parse(version); +} + +void CConfigScript::clean() +{ + CStorageContainer::clean(); +} + +void CConfigScript::build(uint16 version, uint filter) +{ + CStorageContainer::build(version); +} + +void CConfigScript::disown() +{ + CStorageContainer::disown(); +} + +IStorageObject *CConfigScript::createChunkById(uint16 id, bool container) +{ + if (container) + { + switch (id) + { + case 0x0040: // ConfigScriptEntry + return new CConfigScriptEntry(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CConfigScriptEntry::CConfigScriptEntry() +{ + +} + +CConfigScriptEntry::~CConfigScriptEntry() +{ + +} + +std::string CConfigScriptEntry::className() const +{ + return "ConfigScriptEntry"; +} + +void CConfigScriptEntry::toString(std::ostream &ostream, const std::string &pad) const +{ + CStorageContainer::toString(ostream, pad); +} + +void CConfigScriptEntry::parse(uint16 version, uint filter) +{ + CStorageContainer::parse(version); +} + +void CConfigScriptEntry::clean() +{ + CStorageContainer::clean(); +} + +void CConfigScriptEntry::build(uint16 version, uint filter) +{ + CStorageContainer::build(version); +} + +void CConfigScriptEntry::disown() +{ + CStorageContainer::disown(); +} + +IStorageObject *CConfigScriptEntry::createChunkById(uint16 id, bool container) +{ + if (container) + { + switch (id) + { + case 0x0007: // ConfigScriptMetaContainer + return new CConfigScriptMetaContainer(); + } + } + else + { + switch (id) + { + case 0x0050: // ConfigScriptHeader + return new CConfigScriptHeader(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CConfigScriptHeader::CConfigScriptHeader() +{ + +} + +CConfigScriptHeader::~CConfigScriptHeader() +{ + +} + +std::string CConfigScriptHeader::className() const +{ + return "ConfigScriptHeader"; +} + +void CConfigScriptHeader::serial(NLMISC::IStream &stream) +{ + stream.serial(SuperClassID); + stream.serial(ClassID); +} + +void CConfigScriptHeader::toString(std::ostream &ostream, const std::string &pad) const +{ + ostream << "(" << className() << ") { "; + ostream << "\n" << pad << "SuperClassID: " << SuperClassID; + ostream << "\n" << pad << "ClassID: " << NLMISC::toString(ClassID); + ostream << " } "; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CConfigScriptMetaContainer::CConfigScriptMetaContainer() +{ + +} + +CConfigScriptMetaContainer::~CConfigScriptMetaContainer() +{ + +} + +std::string CConfigScriptMetaContainer::className() const +{ + return "ConfigScriptMetaContainer"; +} + +void CConfigScriptMetaContainer::toString(std::ostream &ostream, const std::string &pad) const +{ + CStorageContainer::toString(ostream, pad); +} + +void CConfigScriptMetaContainer::parse(uint16 version, uint filter) +{ + CStorageContainer::parse(version); +} + +void CConfigScriptMetaContainer::clean() +{ + CStorageContainer::clean(); +} + +void CConfigScriptMetaContainer::build(uint16 version, uint filter) +{ + CStorageContainer::build(version); +} + +void CConfigScriptMetaContainer::disown() +{ + CStorageContainer::disown(); +} + +IStorageObject *CConfigScriptMetaContainer::createChunkById(uint16 id, bool container) +{ + if (container) + { + switch (id) + { + case 0x0007: // ConfigScriptMetaContainer + return new CConfigScriptMetaContainer(); + } + } + else + { + switch (id) + { + case 0x0001: // type: boolean (stored in four bytes, yes) + return new CStorageValue(); + case 0x0002: // ??? + nlerror("0x0002 found, please implement"); + break; + case 0x0003: // type: integer (not sure if signed) + return new CStorageValue(); + case 0x0004: // type: float + return new CStorageValue(); + case 0x0005: // type: string (same format as the meta string) + case 0x0006: // ConfigScriptMetaString + return new CConfigScriptMetaString(); + case 0x0008: // type: color (stored as 3 float vector) + return new CStorageValue; + case 0x0060: // ConfigScriptMetaContainerHeader (contains the number of entries, amusingly) + return new CStorageValue(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CConfigScriptMetaString::CConfigScriptMetaString() +{ + +} + +CConfigScriptMetaString::~CConfigScriptMetaString() +{ + +} + +std::string CConfigScriptMetaString::className() const +{ + return "ConfigScriptMetaString"; +} + +void CConfigScriptMetaString::serial(NLMISC::IStream &stream) +{ + if (stream.isReading()) + { + uint32 size; + stream.serial(size); + Value.resize(size - 1); + } + else + { + uint32 size = Value.size() + 1; + stream.serial(size); + } + stream.serialBuffer(static_cast(static_cast(&Value[0])), Value.size()); + uint8 endByte = 0; + stream.serial(endByte); + nlassert(endByte == 0); +} + +void CConfigScriptMetaString::toString(std::ostream &ostream, const std::string &pad) const +{ + ostream << "(" << className() << ") { " << Value << " } "; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/config.h b/code/nel/tools/3d/pipeline_max/config.h new file mode 100644 index 000000000..c96d1ce2a --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/config.h @@ -0,0 +1,245 @@ +/** + * \file config.h + * \brief CConfig + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CConfig + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_CONFIG_H +#define PIPELINE_CONFIG_H +#include + +// STL includes + +// NeL includes +#include + +// Project includes +#include "storage_object.h" +#include "storage_value.h" + +namespace PIPELINE { +namespace MAX { + +/** + * \brief CConfig + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CConfig + */ +class CConfig : public CStorageContainer +{ +public: + CConfig(); + virtual ~CConfig(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CConfig */ + +/** + * \brief CConfig20a0 + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CConfig + */ +class CConfig20a0 : public CStorageContainer +{ +public: + CConfig20a0(); + virtual ~CConfig20a0(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CConfig20a0 */ + +/** + * \brief CConfig20a0Entry + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CConfig20a0Entry + */ +class CConfig20a0Entry : public CStorageContainer +{ +public: + CConfig20a0Entry(); + virtual ~CConfig20a0Entry(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CConfig20a0Entry */ + +/** + * \brief CConfigScript + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CConfig + */ +class CConfigScript : public CStorageContainer +{ +public: + CConfigScript(); + virtual ~CConfigScript(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CConfigScript */ + +/** + * \brief CConfigScriptEntry + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CConfig + */ +class CConfigScriptEntry : public CStorageContainer +{ +public: + CConfigScriptEntry(); + virtual ~CConfigScriptEntry(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CConfigScriptEntry */ + +/** + * \brief CConfigScriptHeader + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CConfigScriptHeader + */ +class CConfigScriptHeader : public IStorageObject +{ +public: + CConfigScriptHeader(); + virtual ~CConfigScriptHeader(); + + // public data + uint32 SuperClassID; + NLMISC::CClassId ClassID; + + // inherited + virtual std::string className() const; + virtual void serial(NLMISC::IStream &stream); + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + +}; /* class CConfigScriptHeader */ + +/** + * \brief CConfigScriptMetaContainer + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CConfigScriptMetaContainer + * This is totally hilarious. + */ +class CConfigScriptMetaContainer : public CStorageContainer +{ +public: + CConfigScriptMetaContainer(); + virtual ~CConfigScriptMetaContainer(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; /* class CConfigScriptMetaContainer */ + +/** + * \brief CConfigScriptMetaString + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CConfigScriptMetaString + */ +class CConfigScriptMetaString : public IStorageObject +{ +public: + CConfigScriptMetaString(); + virtual ~CConfigScriptMetaString(); + + // public data + std::string Value; + + // inherited + virtual std::string className() const; + virtual void serial(NLMISC::IStream &stream); + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + +}; /* class CConfigScriptMetaString */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_CONFIG_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/derived_object.cpp b/code/nel/tools/3d/pipeline_max/derived_object.cpp new file mode 100644 index 000000000..21f26e074 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/derived_object.cpp @@ -0,0 +1,55 @@ +/** + * \file derived_object.cpp + * \brief CDerivedObject + * \date 2012-08-26 12:04GMT + * \author Jan Boon (Kaetemi) + * CDerivedObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "derived_object.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { + +CDerivedObject::CDerivedObject() +{ + +} + +CDerivedObject::~CDerivedObject() +{ + +} + +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/derived_object.h b/code/nel/tools/3d/pipeline_max/derived_object.h new file mode 100644 index 000000000..273dbdfd6 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/derived_object.h @@ -0,0 +1,63 @@ +/** + * \file derived_object.h + * \brief CDerivedObject + * \date 2012-08-26 12:04GMT + * \author Jan Boon (Kaetemi) + * CDerivedObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_DERIVED_OBJECT_H +#define PIPELINE_DERIVED_OBJECT_H +#include + +// STL includes + +// NeL includes + +// Project includes + +namespace PIPELINE { + +/** + * \brief CDerivedObject + * \date 2012-08-26 12:04GMT + * \author Jan Boon (Kaetemi) + * CDerivedObject + */ +class CDerivedObject +{ +protected: + // pointers + // ... + + // instances + // ... +public: + CDerivedObject(); + virtual ~CDerivedObject(); +}; /* class CDerivedObject */ + +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_DERIVED_OBJECT_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/dll_directory.cpp b/code/nel/tools/3d/pipeline_max/dll_directory.cpp new file mode 100644 index 000000000..8f60c459c --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/dll_directory.cpp @@ -0,0 +1,420 @@ +/** + * \file dll_directory.cpp + * \brief CDllDirectory + * \date 2012-08-18 09:01GMT + * \author Jan Boon (Kaetemi) + * CDllDirectory + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "dll_directory.h" + +// STL includes +#include + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CDllDirectory::CDllDirectory() : m_DllEntryBuiltin(&DllPluginDescBuiltin), m_DllEntryScript(&DllPluginDescScript) +{ + +} + +// Parallel to CClassDirectory3 +CDllDirectory::~CDllDirectory() +{ + // Delete m_ChunkCache and m_Entries when !m_ChunksOwnsPointers + if (!m_ChunksOwnsPointers) + { + for (TStorageObjectContainer::iterator it = m_ChunkCache.begin(), end = m_ChunkCache.end(); it != end; ++it) + { + delete it->second; + } + for (std::vector::iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + { + delete (*subit); + } + } + m_ChunkCache.clear(); + m_Entries.clear(); +} + +std::string CDllDirectory::className() const +{ + return "DllDirectory"; +} + +// Parallel to CClassDirectory3 +void CDllDirectory::toString(std::ostream &ostream, const std::string &pad) const +{ + if (m_ChunksOwnsPointers) + { + CStorageContainer::toString(ostream, pad); + } + else + { + ostream << "(" << className() << ") [" << m_Chunks.size() << "] PARSED { "; + std::string padpad = pad + "\t"; + sint i = 0; + for (TStorageObjectContainer::const_iterator it = m_ChunkCache.begin(), end = m_ChunkCache.end(); it != end; ++it) + { + uint16 id = it->first; + switch (id) + { + case 0x2038: // DllEntry + { + uint subi = 0; + for (std::vector::const_iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + { + ostream << "\n" << pad << "Entries[" << subi << "]: "; + (*subit)->toString(ostream, padpad); + ++subi; + } + } + break; + default: + std::stringstream ss; + ss << std::hex << std::setfill('0'); + ss << std::setw(4) << it->first; + ostream << "\n" << pad << "0x" << ss.str() << ": "; + it->second->toString(ostream, padpad); + ++i; + break; + } + } + ostream << "} "; + } +} + +// Parallel to CClassDirectory3 +void CDllDirectory::parse(uint16 version, uint filter) +{ + // Ensure not yet parsed + nlassert(m_ChunkCache.empty()); + nlassert(m_Entries.empty()); + + // Parse entries first + CStorageContainer::parse(version); + + // Initialize + addInternalIndices(); + uint16 lastCached = 0xFFFF; + bool parsedDllEntry = false; + + // Parse chunks + for (TStorageObjectContainer::iterator it = m_Chunks.begin(), end = m_Chunks.end(); it != end; ++it) + { + uint16 id = it->first; + switch (id) + { + case 0x2038: // DllEntry + { + if (parsedDllEntry && (lastCached != id)) + throw EStorageParse(); // There were chunks inbetween + if (!parsedDllEntry) + { + m_ChunkCache.push_back(TStorageObjectWithId(id, NULL)); // Dummy entry to know the location + lastCached = id; + parsedDllEntry = true; + } + CDllEntry *dllEntry = static_cast(it->second); + m_InternalNameToIndex[NLMISC::toLower(dllEntry->dllFilename())] = m_Entries.size(); + m_Entries.push_back(dllEntry); + } + break; + default: + m_ChunkCache.push_back(*it); // Dummy entry to know the location + lastCached = id; + break; + } + } + + // Now ownership of the pointers lies in m_ChunkCache and m_Entries + m_ChunksOwnsPointers = false; +} + +// Parallel to CClassDirectory3 +void CDllDirectory::clean() +{ + // Ensure parsed + nlassert(!m_ChunksOwnsPointers); + + // Clear m_Chunks + m_Chunks.clear(); + + // Clean chunks + for (TStorageObjectContainer::iterator it = m_ChunkCache.begin(), end = m_ChunkCache.end(); it != end; ++it) + { + if (it->second != NULL && it->second->isContainer()) + { + static_cast(it->second)->clean(); + } + } + for (std::vector::iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + { + (*subit)->clean(); + } +} + +// Parallel to CClassDirectory3 +void CDllDirectory::build(uint16 version, uint filter) +{ + // Ensure parsed + nlassert(!m_ChunksOwnsPointers); + + // Initialize + nlassert(m_Chunks.empty()); + + // Set up the m_Chunks list, when (CDllEntry::ID, NULL) is found write out all of the entries. + for (TStorageObjectContainer::iterator it = m_ChunkCache.begin(), end = m_ChunkCache.end(); it != end; ++it) + { + uint16 id = it->first; + switch (id) + { + case 0x2038: // DllEntry + for (std::vector::iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + m_Chunks.push_back(TStorageObjectWithId(id, (*subit))); + break; + default: + m_Chunks.push_back(*it); + break; + } + } + + // Build the entries last (after m_Chunks is built) + CStorageContainer::build(version); + + // NOTE: Ownership remains with m_ChunkCache and m_Entries +} + +// Parallel to CClassDirectory3 +void CDllDirectory::disown() +{ + m_ChunkCache.clear(); + m_Entries.clear(); + m_InternalNameToIndex.clear(); + + // Ownership goes back to m_Chunks + m_ChunksOwnsPointers = true; + + // Disown child chunks + CStorageContainer::disown(); +} + +// Parallel to CClassDirectory3 +const CDllEntry *CDllDirectory::get(sint32 index) const +{ + nlassert(!m_ChunksOwnsPointers); + if (index < 0) + { + // Handle internal dummy values + switch (index) + { + case -1: + return &m_DllEntryBuiltin; + case -2: + return &m_DllEntryScript; + default: + nlerror("Bad dll entry index"); + } + } + else + { + nlassert(index < (sint32)m_Entries.size()); + return m_Entries[index]; + } + nlassert(false); + return NULL; +} + +// Parallel to CClassDirectory3 +void CDllDirectory::reset() +{ + nlassert(!m_ChunksOwnsPointers); + for (std::vector::iterator subit = m_Entries.begin(), subend = m_Entries.end(); subit != subend; ++subit) + { + delete (*subit); + } + m_Entries.clear(); + m_InternalNameToIndex.clear(); + addInternalIndices(); +} + +// Parallel to CClassDirectory3 +sint32 CDllDirectory::getOrCreateIndex(const IDllPluginDescInternal *dllPluginDesc) +{ + nlassert(!m_ChunksOwnsPointers); + std::map::iterator it = m_InternalNameToIndex.find(NLMISC::toLower(ucstring(dllPluginDesc->internalName()))); + + // Return existing index + if (it != m_InternalNameToIndex.end()) + return it->second; + + // Create new entry + CDllEntry *dllEntry = new CDllEntry(dllPluginDesc); + sint32 index = m_Entries.size(); + m_InternalNameToIndex[NLMISC::toLower(dllEntry->dllFilename())] = index; + m_Entries.push_back(dllEntry); + return index; +} + +void CDllDirectory::addInternalIndices() +{ + m_InternalNameToIndex[NLMISC::toLower(ucstring(DllPluginDescBuiltin.internalName()))] = -1; + m_InternalNameToIndex[NLMISC::toLower(ucstring(DllPluginDescScript.internalName()))] = -2; +} + +IStorageObject *CDllDirectory::createChunkById(uint16 id, bool container) +{ + if (container) + { + switch (id) + { + case 0x2038: // DllEntry + return new CDllEntry(); + } + } + else + { + switch (id) + { + case 0x21C0: // DllDirectoryHeader + return new CStorageValue(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +// Entries[5]: (DllEntry) [2] PARSED { +// DllDescription: ... +// DllFilename: ... } + +CDllEntry::CDllEntry() : m_DllDescription(NULL), m_DllFilename(NULL) +{ + +} + +CDllEntry::CDllEntry(const IDllPluginDescInternal *dllPluginDesc) : m_DllDescription(new CStorageValue()), m_DllFilename(new CStorageValue()) +{ + m_Chunks.push_back(TStorageObjectWithId(0x2039, m_DllDescription)); + m_Chunks.push_back(TStorageObjectWithId(0x2037, m_DllFilename)); + m_DllDescription->Value = dllPluginDesc->displayName(); + m_DllFilename->Value = dllPluginDesc->internalName(); +} + +CDllEntry::~CDllEntry() +{ + +} + +std::string CDllEntry::className() const +{ + return "DllEntry"; +} + +void CDllEntry::toString(std::ostream &ostream, const std::string &pad) const +{ + if (m_DllDescription && m_DllFilename) + { + ostream << "(" << className() << ") [" << m_Chunks.size() << "] PARSED { "; + std::string padpad = pad + "\t"; + ostream << "\n" << pad << "DllDescription: " << m_DllDescription->Value.toUtf8(); + ostream << "\n" << pad << "DllFilename: " << m_DllFilename->Value.toUtf8(); + ostream << " } "; + } + else + { + CStorageContainer::toString(ostream, pad); + } +} + +void CDllEntry::parse(uint16 version, uint filter) +{ + // CStorageContainer::parse(version); + nlassert(m_ChunksOwnsPointers); + nlassert(m_Chunks.size() == 2); + TStorageObjectContainer::iterator it = m_Chunks.begin(); + nlassert(it->first == 0x2039); // DllDescription + m_DllDescription = static_cast *>(it->second); + ++it; + nlassert(it->first == 0x2037); // DllFilename + m_DllFilename = static_cast *>(it->second); + // ++it; +} + +void CDllEntry::clean() +{ + // Nothing to do here! (m_Chunks retains ownership) + // CStorageContainer::clean(); +} + +void CDllEntry::build(uint16 version, uint filter) +{ + // Nothing to do here! + // CStorageContainer::build(version); +} + +void CDllEntry::disown() +{ + // CStorageContainer::disown(); + m_DllDescription = NULL; + m_DllFilename = NULL; + nlassert(m_ChunksOwnsPointers); +} + +IStorageObject *CDllEntry::createChunkById(uint16 id, bool container) +{ + if (!container) + { + switch (id) + { + case 0x2039: // DllDescription + case 0x2037: // DllFilename + return new CStorageValue(); + } + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/dll_directory.h b/code/nel/tools/3d/pipeline_max/dll_directory.h new file mode 100644 index 000000000..b30feef5a --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/dll_directory.h @@ -0,0 +1,135 @@ +/** + * \file dll_directory.h + * \brief CDllDirectory + * \date 2012-08-18 09:01GMT + * \author Jan Boon (Kaetemi) + * CDllDirectory + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_DLL_DIRECTORY_H +#define PIPELINE_DLL_DIRECTORY_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "storage_object.h" +#include "storage_value.h" +#include "dll_plugin_desc.h" + +namespace PIPELINE { +namespace MAX { + +/** + * \brief CDllEntry + * \date 2012-08-18 09:01GMT + * \author Jan Boon (Kaetemi) + * CDllEntry + */ +class CDllEntry : public CStorageContainer +{ +public: + CDllEntry(); + CDllEntry(const IDllPluginDescInternal *dllPluginDesc); + virtual ~CDllEntry(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + + // read access + const ucstring &dllDescription() const { return m_DllDescription->Value; } + const ucstring &dllFilename() const { return m_DllFilename->Value; } + + // debug + void overrideDllFilename(const ucstring &dllFilename) { m_DllFilename->Value = dllFilename; } + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + CStorageValue *m_DllDescription; + CStorageValue *m_DllFilename; + +}; /* class CDllDirectory */ + +/** + * \brief CDllDirectory + * \date 2012-08-18 09:01GMT + * \author Jan Boon (Kaetemi) + * This class is used for parsing the local dll indices in a max file, + * both reading and writing is supported. It is not used at runtime, + * and should be reset when no longer necessary. Plugins have their own + * copy of the actual IDllPluginDescInternal. This class only contains + * CDllEntry instances, which should not be used directly. The instance + * of this class used to parse the max file should be kept, as there + * might be chunks that were not parsed, which should be rewritten to + * the stream. + */ +class CDllDirectory : public CStorageContainer +{ +public: + CDllDirectory(); + virtual ~CDllDirectory(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + + // public + // Get a dll entry corresponding to a chunk index, pointers become invalid after reset + const CDllEntry *get(sint32 index) const; + // Reset the dll directory, all dll entry pointers become invalid, use internal name and dll plugin registry + void reset(); + // Get or create the chunk index for a dll by dll plugin description + sint32 getOrCreateIndex(const IDllPluginDescInternal *dllPluginDesc); + +private: + void addInternalIndices(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + TStorageObjectContainer m_ChunkCache; + std::vector m_Entries; + std::map m_InternalNameToIndex; + + const CDllEntry m_DllEntryBuiltin; + const CDllEntry m_DllEntryScript; + +}; /* class CDllDirectory */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_DLL_DIRECTORY_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/dll_plugin_desc.cpp b/code/nel/tools/3d/pipeline_max/dll_plugin_desc.cpp new file mode 100644 index 000000000..01308a1c7 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/dll_plugin_desc.cpp @@ -0,0 +1,75 @@ +/** + * \file dll_plugin_desc.cpp + * \brief CDllPluginDesc + * \date 2012-08-20 09:59GMT + * \author Jan Boon (Kaetemi) + * CDllPluginDesc + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "dll_plugin_desc.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +// using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +const ucchar *CDllPluginDescBuiltin::displayName() const +{ + static const ucstring value = ucstring("Builtin"); + return value.c_str(); +} + +const ucchar *CDllPluginDescBuiltin::internalName() const +{ + static const ucstring value = ucstring("Builtin"); + return value.c_str(); +} + +const CDllPluginDescBuiltin DllPluginDescBuiltin; + +const ucchar *CDllPluginDescScript::displayName() const +{ + static const ucstring value = ucstring("Script"); + return value.c_str(); +} + +const ucchar *CDllPluginDescScript::internalName() const +{ + static const ucstring value = ucstring("Script"); + return value.c_str(); +} + +const CDllPluginDescScript DllPluginDescScript; + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/dll_plugin_desc.h b/code/nel/tools/3d/pipeline_max/dll_plugin_desc.h new file mode 100644 index 000000000..3aa76cd39 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/dll_plugin_desc.h @@ -0,0 +1,109 @@ +/** + * \file dll_plugin_desc.h + * \brief CDllPluginDesc + * \date 2012-08-20 09:59GMT + * \author Jan Boon (Kaetemi) + * CDllPluginDesc + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_DLL_PLUGIN_DESC_H +#define PIPELINE_DLL_PLUGIN_DESC_H +#include + +// STL includes + +// NeL includes +#include + +// Project includes + +namespace PIPELINE { +namespace MAX { + +/** + * \brief IDllPluginDescInternal + * \date 2012-08-20 09:59GMT + * \author Jan Boon (Kaetemi) + * Used for internal plugin descriptions that have no actual plugin + * associated with them. + */ +class IDllPluginDescInternal +{ +public: + virtual const ucchar *displayName() const = 0; + virtual const ucchar *internalName() const = 0; + +}; /* class IDllPluginDescInternal */ + +/** + * \brief IDllPluginDesc + * \date 2012-08-20 09:59GMT + * \author Jan Boon (Kaetemi) + * Inherit from this when making a plugin + */ +class IDllPluginDesc : public IDllPluginDescInternal +{ +public: + // virtual const ucchar *displayName() const = 0; + // virtual const ucchar *internalName() const = 0; + // TODO: list scene classes + +}; /* class IDllPluginDesc */ + +/** + * \brief CDllPluginDescBuiltin + * \date 2012-08-20 09:59GMT + * \author Jan Boon (Kaetemi) + * Use only internally for builtin classes + * TODO: Move to separate header? + */ +class CDllPluginDescBuiltin : public IDllPluginDescInternal +{ +public: + virtual const ucchar *displayName() const; + virtual const ucchar *internalName() const; +}; /* class CDllPluginDescBuiltin */ + +extern const CDllPluginDescBuiltin DllPluginDescBuiltin; + +/** + * \brief CDllPluginDescScript + * \date 2012-08-20 09:59GMT + * \author Jan Boon (Kaetemi) + * Use only internally for scripts + * TODO: Move to separate header? + */ +class CDllPluginDescScript : public IDllPluginDescInternal +{ +public: + virtual const ucchar *displayName() const; + virtual const ucchar *internalName() const; +}; /* class CDllPluginDescScript */ + +extern const CDllPluginDescScript DllPluginDescScript; + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_DLL_PLUGIN_DESC_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/epoly/editable_poly.cpp b/code/nel/tools/3d/pipeline_max/epoly/editable_poly.cpp new file mode 100644 index 000000000..0d8f92f69 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/epoly/editable_poly.cpp @@ -0,0 +1,158 @@ +/** + * \file editable_poly.cpp + * \brief CEditablePoly + * \date 2012-08-26 12:02GMT + * \author Jan Boon (Kaetemi) + * CEditablePoly + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "editable_poly.h" + +// STL includes +#include + +// NeL includes +// #include + +// Project includes +#include "epoly.h" + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace EPOLY { + +CEditablePoly::CEditablePoly(CScene *scene) : CPolyObject(scene) +{ + +} + +CEditablePoly::~CEditablePoly() +{ + if (!m_ChunksOwnsPointers) + { + for (TStorageObjectContainer::iterator it = m_EditablePolyUnknown.begin(), end = m_EditablePolyUnknown.end(); it != end; ++it) + delete it->second; + m_EditablePolyUnknown.clear(); + } +} + +const ucstring CEditablePoly::DisplayName = ucstring("EditablePoly"); +const char *CEditablePoly::InternalName = "EditablePoly"; +const NLMISC::CClassId CEditablePoly::ClassId = NLMISC::CClassId(0x1bf8338d, 0x192f6098); +const TSClassId CEditablePoly::SuperClassId = CPolyObject::SuperClassId; +const CEditablePolyClassDesc EditablePolyClassDesc(&DllPluginDescEPoly); + +void CEditablePoly::parse(uint16 version, uint filter) +{ + CPolyObject::parse(version); + + IStorageObject *so; + so = getChunk(0x4039); + if (so) m_EditablePolyUnknown.push_back(TStorageObjectWithId(0x4039, so)); + so = getChunk(0x403a); + if (so) m_EditablePolyUnknown.push_back(TStorageObjectWithId(0x403a, so)); + for (; ; ) + { // note: also in editable mesh, copy paste or related somehow? / use a common parser class inbetween? + so = getChunk(0x3003); + if (so) m_EditablePolyUnknown.push_back(TStorageObjectWithId(0x3003, so)); + else break; + so = getChunk(0x3004); + if (so) m_EditablePolyUnknown.push_back(TStorageObjectWithId(0x3004, so)); + } + so = getChunk(0x3002); + if (so) m_EditablePolyUnknown.push_back(TStorageObjectWithId(0x3002, so)); + so = getChunk(0x4038); + if (so) m_EditablePolyUnknown.push_back(TStorageObjectWithId(0x4038, so)); + + CPolyObject::parse(version, PMB_POLY_OBJECT_PARSE_FILTER); +} + +void CEditablePoly::clean() +{ + CPolyObject::clean(); +} + +void CEditablePoly::build(uint16 version, uint filter) +{ + CPolyObject::build(version); + + for (TStorageObjectContainer::iterator it = m_EditablePolyUnknown.begin(), end = m_EditablePolyUnknown.end(); it != end; ++it) + putChunk(it->first, it->second); + + CPolyObject::build(version, PMB_POLY_OBJECT_PARSE_FILTER); +} + +void CEditablePoly::disown() +{ + m_EditablePolyUnknown.clear(); + CPolyObject::disown(); +} + +void CEditablePoly::init() +{ + CPolyObject::init(); +} + +bool CEditablePoly::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CPolyObject::inherits(classId); +} + +const ISceneClassDesc *CEditablePoly::classDesc() const +{ + return &EditablePolyClassDesc; +} + +void CEditablePoly::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CPolyObject::toStringLocal(ostream, pad); + + std::string padpad = pad + "\t"; + sint i = 0; + for (TStorageObjectContainer::const_iterator it = m_EditablePolyUnknown.begin(), end = m_EditablePolyUnknown.end(); it != end; ++it) + { + std::stringstream ss; + ss << std::hex << std::setfill('0'); + ss << std::setw(4) << it->first; + ostream << "\n" << pad << "EditablePolyUnkown[" << i << "] 0x" << ss.str() << ": "; + it->second->toString(ostream, padpad); + ++i; + } + + CPolyObject::toStringLocal(ostream, pad, PMB_POLY_OBJECT_PARSE_FILTER); +} + +IStorageObject *CEditablePoly::createChunkById(uint16 id, bool container) +{ + return CPolyObject::createChunkById(id, container); +} + +} /* namespace EPOLY */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/epoly/editable_poly.h b/code/nel/tools/3d/pipeline_max/epoly/editable_poly.h new file mode 100644 index 000000000..6a5232c20 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/epoly/editable_poly.h @@ -0,0 +1,89 @@ +/** + * \file editable_poly.h + * \brief CEditablePoly + * \date 2012-08-26 12:02GMT + * \author Jan Boon (Kaetemi) + * CEditablePoly + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_EDITABLE_POLY_H +#define PIPELINE_EDITABLE_POLY_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "../builtin/poly_object.h" + +namespace PIPELINE { +namespace MAX { +namespace EPOLY { + +/** + * \brief CEditablePoly + * \date 2012-08-26 12:02GMT + * \author Jan Boon (Kaetemi) + * CEditablePoly + */ +class CEditablePoly : public PIPELINE::MAX::BUILTIN::CPolyObject +{ +public: + CEditablePoly(CScene *scene); + virtual ~CEditablePoly(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + TStorageObjectContainer m_EditablePolyUnknown; + +}; /* class CEditablePoly */ + +typedef CSceneClassDesc CEditablePolyClassDesc; +extern const CEditablePolyClassDesc EditablePolyClassDesc; + +} /* namespace EPOLY */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_EDITABLE_POLY_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/epoly/epoly.cpp b/code/nel/tools/3d/pipeline_max/epoly/epoly.cpp new file mode 100644 index 000000000..120605fa7 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/epoly/epoly.cpp @@ -0,0 +1,81 @@ +/** + * \file epoly.cpp + * \brief CEPoly + * \date 2012-08-26 12:03GMT + * \author Jan Boon (Kaetemi) + * CEPoly + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "epoly.h" + +// STL includes + +// NeL includes +// #include + +// Project includes +#include "../scene_class_registry.h" + +#include "editable_poly.h" + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace EPOLY { + +CEPoly::CEPoly() +{ + +} + +CEPoly::~CEPoly() +{ + +} + +void CEPoly::registerClasses(CSceneClassRegistry *registry) +{ + registry->add(&EditablePolyClassDesc); +} + +const ucchar *CDllPluginDescEPoly::displayName() const +{ + static const ucstring value = ucstring("Editable Poly Object (Ryzom Core)"); + return value.c_str(); +} + +const ucchar *CDllPluginDescEPoly::internalName() const +{ + static const ucstring value = ucstring("EPoly.dlo"); + return value.c_str(); +} + +const CDllPluginDescEPoly DllPluginDescEPoly; + +} /* namespace EPOLY */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/epoly/epoly.h b/code/nel/tools/3d/pipeline_max/epoly/epoly.h new file mode 100644 index 000000000..7d0823bce --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/epoly/epoly.h @@ -0,0 +1,84 @@ +/** + * \file epoly.h + * \brief CEPoly + * \date 2012-08-26 12:03GMT + * \author Jan Boon (Kaetemi) + * CEPoly + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_EPOLY_H +#define PIPELINE_EPOLY_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "../dll_plugin_desc.h" + +namespace PIPELINE { +namespace MAX { + +class CSceneClassRegistry; + +namespace EPOLY { + +/** + * \brief CEPoly + * \date 2012-08-26 12:03GMT + * \author Jan Boon (Kaetemi) + * CEPoly + */ +class CEPoly +{ +public: + static void registerClasses(CSceneClassRegistry *registry); + +public: + CEPoly(); + virtual ~CEPoly(); + +}; /* class CEPoly */ + +/** + * \brief CDllPluginDescEPoly + * \date 2012-08-26 12:03GMT + * \author Jan Boon (Kaetemi) + * CDllPluginDescEPoly + */ +class CDllPluginDescEPoly : public IDllPluginDescInternal +{ +public: + virtual const ucchar *displayName() const; + virtual const ucchar *internalName() const; +}; /* class CDllPluginDescScript */ + +extern const CDllPluginDescEPoly DllPluginDescEPoly; + +} /* namespace EPOLY */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_EPOLY_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/scene.cpp b/code/nel/tools/3d/pipeline_max/scene.cpp new file mode 100644 index 000000000..85293e680 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/scene.cpp @@ -0,0 +1,237 @@ +/** + * \file scene.cpp + * \brief CScene + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CScene + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "scene.h" + +// STL includes +#include + +// NeL includes +// #include +#include + +// Project includes +#include "dll_directory.h" +#include "class_directory_3.h" +#include "scene_class_registry.h" +#include "scene_class_unknown.h" +#include "builtin/scene_impl.h" + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CScene::CScene(const CSceneClassRegistry *sceneClassRegistry, CDllDirectory *dllDirectory, CClassDirectory3 *classDirectory3) : m_SceneClassRegistry(sceneClassRegistry), m_DllDirectory(dllDirectory), m_ClassDirectory3(classDirectory3) +{ + +} + +CScene::~CScene() +{ + +} + +std::string CScene::className() const +{ + return "Scene"; +} + +void CScene::toString(std::ostream &ostream, const std::string &pad) const +{ + CStorageContainer::toString(ostream, pad); +} + +void CScene::parse(uint16 version, uint filter) +{ + CStorageContainer::parse(version); + nlassert(m_Chunks.size() == 1); +} + +void CScene::clean() +{ + CStorageContainer::clean(); +} + +void CScene::build(uint16 version, uint filter) +{ + nlassert(m_Chunks.size() == 1); + CStorageContainer::build(this->version()); +} + +void CScene::disown() +{ + CStorageContainer::disown(); +} + +uint16 CScene::version() +{ + nlassert(m_Chunks.size() == 1); + return m_Chunks.begin()->first; +} + +CSceneClassContainer *CScene::container() +{ + nlassert(m_Chunks.size() == 1); + return static_cast(m_Chunks.begin()->second); +} + +IStorageObject *CScene::createChunkById(uint16 id, bool container) +{ + if (container) + { + // Return the scene class container. There can be only one. + return new CSceneClassContainer(this, m_SceneClassRegistry, m_DllDirectory, m_ClassDirectory3); + } + return CStorageContainer::createChunkById(id, container); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CSceneClassContainer::CSceneClassContainer(CScene *scene, const CSceneClassRegistry *sceneClassRegistry, CDllDirectory *dllDirectory, CClassDirectory3 *classDirectory3) : m_Scene(scene), m_SceneClassRegistry(sceneClassRegistry), m_DllDirectory(dllDirectory), m_ClassDirectory3(classDirectory3), m_BuiltinScene(NULL) +{ + +} + +CSceneClassContainer::~CSceneClassContainer() +{ + +} + +std::string CSceneClassContainer::className() const +{ + return "SceneClassContainer"; +} + +void CSceneClassContainer::toString(std::ostream &ostream, const std::string &pad) const +{ + CStorageContainer::toString(ostream, pad); +} + +void CSceneClassContainer::parse(uint16 version, uint filter) +{ + // Temporary 'readonly' implementation, not modifying m_Chunks! + m_StorageObjectByIndex.resize(m_Chunks.size()); + TStorageObjectIterator it = m_Chunks.begin(); + for (std::vector::size_type i = 0; i < m_StorageObjectByIndex.size(); ++i) + { + m_StorageObjectByIndex[i] = static_cast(it->second); + ++it; + } + CSceneClass *builtinScene = m_StorageObjectByIndex[m_StorageObjectByIndex.size() - 1]; + nlassert(builtinScene); + m_BuiltinScene = dynamic_cast(builtinScene); + nlassert(m_BuiltinScene); + CStorageContainer::parse(version); +} + +void CSceneClassContainer::clean() +{ + // Temporary 'readonly' implementation, not modifying m_Chunks! + CStorageContainer::clean(); +} + +void CSceneClassContainer::build(uint16 version, uint filter) +{ + // Temporary 'readonly' implementation, not modifying m_Chunks! + for (std::vector::size_type i = 0; i < m_StorageObjectByIndex.size(); ++i) + { + m_StorageObjectToIndex[m_StorageObjectByIndex[i]] = i; + } + CStorageContainer::build(version); +} + +void CSceneClassContainer::disown() +{ + // Temporary 'readonly' implementation, not modifying m_Chunks! + CStorageContainer::disown(); +} + +CSceneClass *CSceneClassContainer::getByStorageIndex(uint32 index) const +{ + // Temporary 'readonly' implementation, not modifying m_Chunks! + if (index >= m_StorageObjectByIndex.size()) { nlerror("Index %i is outside size %i", index, m_StorageObjectByIndex.size()); return NULL; } + return m_StorageObjectByIndex[index]; +} + +uint32 CSceneClassContainer::getOrCreateStorageIndex(CSceneClass *storageObject) +{ + // Temporary 'readonly' implementation, not modifying m_Chunks! + return m_StorageObjectToIndex[storageObject]; +} + +IStorageObject *CSceneClassContainer::createChunkById(uint16 id, bool container) +{ + // nldebug("Scene class id %x (%i)", (uint32)id, (uint32)id); + switch (id) + { + // Known unknown special identifiers... + case 0x2032: + return m_SceneClassRegistry->createUnknown(m_Scene, 0x0, NLMISC::CClassId(0x29263a68, 0x405f22f5), ucstring("OSM Derived"), ucstring("Internal"), ucstring("Internal")); + case 0x2033: + return m_SceneClassRegistry->createUnknown(m_Scene, 0x0, NLMISC::CClassId(0x4ec13906, 0x5578130e), ucstring("WSM Derived"), ucstring("Internal"), ucstring("Internal")); + // return new CSceneClass(m_Scene); // TODO: Make dummy dllentry and classentry for these... + // return static_cast(new CSceneClassUnknown(dllEntry, classEntry)); + } + const CClassEntry *classEntry = m_ClassDirectory3->get(id); + CSceneClass *sceneClass = m_SceneClassRegistry->create(m_Scene, classEntry->superClassId(), classEntry->classId()); + if (sceneClass) + { + return static_cast(sceneClass); + } + else + { + const CDllEntry *dllEntry = m_DllDirectory->get(classEntry->dllIndex()); + sceneClass = m_SceneClassRegistry->createUnknown(m_Scene, classEntry->superClassId(), classEntry->classId(), classEntry->displayName(), dllEntry->dllFilename(), dllEntry->dllDescription()); + if (sceneClass) + { + return static_cast(sceneClass); + } + else + { + // Create an invalid unknown scene class + return static_cast(new CSceneClassUnknown(m_Scene,classEntry->classId(), classEntry->superClassId(), classEntry->displayName(), "SceneClassUnknown", dllEntry->dllFilename(), dllEntry->dllDescription())); + } + } +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/scene.h b/code/nel/tools/3d/pipeline_max/scene.h new file mode 100644 index 000000000..89153368f --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/scene.h @@ -0,0 +1,146 @@ +/** + * \file scene.h + * \brief CScene + * \date 2012-08-18 19:25GMT + * \author Jan Boon (Kaetemi) + * CScene + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_SCENE_H +#define PIPELINE_SCENE_H +#include + +// STL includes + +// NeL includes +#include + +// Project includes +#include "storage_object.h" +#include "storage_value.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +class CSceneImpl; + +} + +class CSceneClass; + +// Registry containing available scene classes +class CSceneClassRegistry; + +// Storage +class CDllDirectory; +class CClassDirectory3; +class CSceneClassContainer; + +/** + * \brief CScene + * \date 2012-08-19 19:25GMT + * \author Jan Boon (Kaetemi) + * CScene + */ +class CScene : public CStorageContainer +{ +public: + CScene(const CSceneClassRegistry *sceneClassRegistry, CDllDirectory *dllDirectory, CClassDirectory3 *classDirectory3); + virtual ~CScene(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + + // public + uint16 version(); + CSceneClassContainer *container(); + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + const CSceneClassRegistry *m_SceneClassRegistry; + CDllDirectory *m_DllDirectory; + CClassDirectory3 *m_ClassDirectory3; + +}; /* class CScene */ + +/** + * \brief CSceneClassContainer + * \date 2012-08-19 19:25GMT + * \author Jan Boon (Kaetemi) + * CSceneClassContainer + */ +class CSceneClassContainer : public CStorageContainer +{ +public: + CSceneClassContainer(CScene *scene, const CSceneClassRegistry *sceneClassRegistry, CDllDirectory *dllDirectory, CClassDirectory3 *classDirectory3); + virtual ~CSceneClassContainer(); + + // inherited + virtual std::string className() const; + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + + /// Use while parsing to get an object by it's index + CSceneClass *getByStorageIndex(uint32 index) const; + /// Use while building to get an index for an object + uint32 getOrCreateStorageIndex(CSceneClass *storageObject); + + /// TODO: Evaluate the references tree to build new indexes. + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + +public: + /// Return the single instance of the builtin scene class + inline BUILTIN::CSceneImpl *scene() const { return m_BuiltinScene; } + +private: + CScene *m_Scene; + + const CSceneClassRegistry *m_SceneClassRegistry; + CDllDirectory *m_DllDirectory; + CClassDirectory3 *m_ClassDirectory3; + + std::vector m_StorageObjectByIndex; + std::map m_StorageObjectToIndex; + + BUILTIN::CSceneImpl *m_BuiltinScene; + +}; /* class CSceneClassContainer */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_SCENE_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/scene_class.cpp b/code/nel/tools/3d/pipeline_max/scene_class.cpp new file mode 100644 index 000000000..61527d854 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/scene_class.cpp @@ -0,0 +1,288 @@ +/** + * \file scene_class.cpp + * \brief CSceneClass + * \date 2012-08-20 09:07GMT + * \author Jan Boon (Kaetemi) + * CSceneClass + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "scene_class.h" + +// STL includes +#include + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +// Elevate warnings to errors in this file for stricter reading +#undef nlwarning +#define nlwarning nlerror + +// Elevate debug to error in this file for debugging +// #undef nldebug +// #define nldebug nlerror + +// Chunk identifiers +// #define ... + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CSceneClass::CSceneClass(CScene *scene) : m_Scene(scene) +{ + +} + +CSceneClass::~CSceneClass() +{ + if (!m_ChunksOwnsPointers) + { + for (TStorageObjectContainer::iterator it = m_OrphanedChunks.begin(), end = m_OrphanedChunks.end(); it != end; ++it) + delete it->second; + m_OrphanedChunks.clear(); + for (std::vector::iterator it = m_ArchivedChunks.begin(), end = m_ArchivedChunks.end(); it != end; ++it) + delete (*it); + m_ArchivedChunks.clear(); + } +} + +std::string CSceneClass::className() const +{ + return classDesc()->internalName(); +} + +void CSceneClass::toString(std::ostream &ostream, const std::string &pad) const +{ + if (m_ChunksOwnsPointers) + { + CStorageContainer::toString(ostream, pad); + } + else + { + ostream << " "; + ostream << "(" << className() << ": " << ucstring(classDesc()->displayName()).toUtf8() << ", " << classDesc()->classId().toString() << ", 0x"; + { + std::stringstream ss; + ss << std::hex << std::setfill('0'); + ss << std::setw(8) << classDesc()->superClassId(); + ostream << ss.str(); + } + ostream << ", " << ucstring(classDesc()->dllPluginDesc()->internalName()).toUtf8() << ") [" << m_OrphanedChunks.size() << "] { "; + toStringLocal(ostream, pad); + // Append orphans + std::string padpad = pad + "\t"; + sint i = 0; + for (TStorageObjectContainer::const_iterator it = m_OrphanedChunks.begin(), end = m_OrphanedChunks.end(); it != end; ++it) + { + std::stringstream ss; + ss << std::hex << std::setfill('0'); + ss << std::setw(4) << it->first; + ostream << "\n" << pad << "Orphan[" << i << "] 0x" << ss.str() << ": "; + it->second->toString(ostream, padpad); + ++i; + } + ostream << "} "; + } +} + +void CSceneClass::parse(uint16 version, uint filter) +{ + // Cannot be parsed yet + if (!m_ChunksOwnsPointers) { nlerror("Already parsed"); return; } // Already parsed, illegal to call twice + + // Parse all child chunks + CStorageContainer::parse(version); + + // Orphanize all child chunk + m_OrphanedChunks.insert(m_OrphanedChunks.end(), m_Chunks.begin(), m_Chunks.end()); + + // Take ownership + m_ChunksOwnsPointers = false; + + // Inheriting classes take control from here on, they should check + // m_ChunksOwnsPointers to be false before taking action, in case + // a subclass called disown due to failure. +} + +void CSceneClass::clean() +{ + if (m_ChunksOwnsPointers) { nldebug("Not parsed, or disowned"); return; } // Must have local ownership, parsing may have failed + if (m_Chunks.size() == 0 && m_OrphanedChunks.size() != 0) { nlwarning("Already cleaned"); return; } // Already cleaned, should not call twice, not reliable because not all chunks have child chunks + + // Clear unneeded references from the parent + m_Chunks.clear(); + + // Clean owned child chunks + for (TStorageObjectContainer::const_iterator it = m_OrphanedChunks.begin(), end = m_OrphanedChunks.end(); it != end; ++it) + { + if (it->second->isContainer()) + { + static_cast(it->second)->clean(); + } + } + + // Erase archived chunks, they must have been parsed perfectly + for (std::vector::iterator it = m_ArchivedChunks.begin(), end = m_ArchivedChunks.end(); it != end; ++it) + delete (*it); + m_ArchivedChunks.clear(); +} + +void CSceneClass::build(uint16 version, uint filter) +{ + // Must be clean first + if (!m_ChunksOwnsPointers && m_Chunks.size() != 0) { nlerror("Not cleaned"); return; } // Cannot call twice, illegal call + if (m_Chunks.size() != 0) { nldebug("Not parsed, or disowned"); return; } // Don't have local ownership, parsing may have failed, the built version is implicitly up to date + + // Store orphan chunks + m_Chunks.insert(m_Chunks.end(), m_OrphanedChunks.begin(), m_OrphanedChunks.end()); + + // Build the orphan chunks (this is a little trick to do it this + // way here, don't do this from subclasses) + CStorageContainer::build(version); + + // Set the insertion pointer before the orphans + m_PutChunkInsert = m_Chunks.begin(); + + // Inheriting classes take control from here on, so the build is + // called to owned subclasses from the putChunk function. +} + +void CSceneClass::disown() +{ + if (m_ChunksOwnsPointers) { nldebug("Not parsed"); } + if (!m_ChunksOwnsPointers && (m_Chunks.size() < m_OrphanedChunks.size())) { nlerror("Not built"); return; } // If chunks is not the owner, built chunks must match the parsed data. This check is not fully reliable + + // Clear local references + m_OrphanedChunks.clear(); + m_ArchivedChunks.clear(); + + // Return ownership + m_ChunksOwnsPointers = true; + + // Disown children + CStorageContainer::disown(); +} + +void CSceneClass::init() +{ + // Nothing to do here! +} + +IStorageObject *CSceneClass::createChunkById(uint16 id, bool container) +{ + return CStorageContainer::createChunkById(id, container); +} + +const ucstring CSceneClass::DisplayName = ucstring("Invalid Scene Class"); +const char *CSceneClass::InternalName = "SceneClass"; +const NLMISC::CClassId CSceneClass::ClassId = NLMISC::CClassId::Null; // This class is invalid +const TSClassId CSceneClass::SuperClassId = 0x0000; // This class is invalid + +namespace { +static const CSceneClassDesc SceneClassDesc(static_cast(&DllPluginDescBuiltin)); +} /* anonymous namespace */ + +bool CSceneClass::inherits(const NLMISC::CClassId classId) const +{ + return false; +} + +const ISceneClassDesc *CSceneClass::classDesc() const +{ + return static_cast(&SceneClassDesc); +} + +void CSceneClass::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + // Nothing to do here... +} + +IStorageObject *CSceneClass::getChunk(uint16 id) +{ + if (m_OrphanedChunks.begin()->first == id) + { + IStorageObject *result = m_OrphanedChunks.begin()->second; + m_OrphanedChunks.pop_front(); + return result; + } + else + { + for (TStorageObjectContainer::iterator it = m_OrphanedChunks.begin(), end = m_OrphanedChunks.end(); it != end; ++it) + { + if (it->first == id) + { + nlwarning("Try to get chunk with 0x%x id, but found 0x%x instead. Found the correct chunk at a different position. Unknown chunks, or chunks out of order", (uint32)id, (uint32)m_OrphanedChunks.begin()->first); + IStorageObject *result = it->second; + m_OrphanedChunks.erase(it); + return result; + } + } + } + // nldebug("Chunk 0x%x not found, this is allowed, returning NULL", (uint32)id); + return NULL; +} + +void CSceneClass::putChunk(uint16 id, IStorageObject *storageObject) +{ + if (storageObject->isContainer()) + { + static_cast(storageObject)->build(VersionUnknown); // FIXME + } + m_OrphanedChunks.insert(m_PutChunkInsert, TStorageObjectWithId(id, storageObject)); +} + +uint16 CSceneClass::peekChunk() +{ + if (m_OrphanedChunks.size()) + return m_OrphanedChunks.begin()->first; + return 0x0000; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/scene_class.h b/code/nel/tools/3d/pipeline_max/scene_class.h new file mode 100644 index 000000000..75c84ba08 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/scene_class.h @@ -0,0 +1,231 @@ +/** + * \file scene_class.h + * \brief CSceneClass + * \date 2012-08-20 09:07GMT + * \author Jan Boon (Kaetemi) + * CSceneClass + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_SCENE_CLASS_H +#define PIPELINE_SCENE_CLASS_H +#include + +// STL includes + +// NeL includes +#include +#include + +// Project includes +#include "typedefs.h" +#include "storage_object.h" +#include "storage_value.h" +#include "dll_plugin_desc.h" +#include "scene.h" + +namespace PIPELINE { +namespace MAX { +namespace BUILTIN { + +class CSceneImpl; + +} + +class ISceneClassDesc; + +/** + * \brief CSceneClass + * \date 2012-08-19 19:25GMT + * \author Jan Boon (Kaetemi) + * It is recommended to use CRefPtr to refer to any pointers to + * classes inherited from this class. + * NOTE: CRefPtr does not delete the class when references go to + * zero. When you remove a class from the scene, the class will be + * deleted if the reference count is zero. Otherwise, you are + * responsible for deleting it (for example, if you keep the class + * backed up in an undo stack for undeletion). You may use CSmartPtr + * when the class is no longer owned by the scene container. + * CRefPtr is a safe handle, which you can use to verify if the class + * has been deleted or not, similar to AnimHandle in max. + */ +class CSceneClass : public CStorageContainer, public NLMISC::CVirtualRefCount +{ +public: + CSceneClass(CScene *scene); + virtual ~CSceneClass(); + + //! \name Inherited functions that are implemented by wrapping around other virtual functions in this class + //@{ + virtual std::string className() const; // do not override, implemented using classDesc + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; // do not override, implemented using toStringLocal + //@} + + //! \name Inherited functions called through the storage loading and saving system + //@{ + /// Override this to read a chunk from the chunks stream. Call the parent's parse function first. Get the necessary chunks implemented by your class using getChunk. See the getChunk function for further information. In case of failure, call disown. If m_ChunksOwnsPointers is true, the parsing has failed, warnings have already been printed, and nothing should happen. Chunks are already parsed when you get them from getChunk + virtual void parse(uint16 version, uint filter = 0); + /// Override this if the chunks you are using are not needed after they have been parsed. You may delete any chunks you own. Call the parent's clean first. You must call clean on any chunks you own if they implement this function + virtual void clean(); + /// Override this to write a chunk to the chunks stream. If you create a new chunk, the creating class owns it, and should delete it when clean is called. You no longer own any created chunks when disown has been called. Use putChunk to add the chunk. Call the parent's build first. The putChunk function calls build on added chunks + virtual void build(uint16 version, uint filter = 0); + /// Remove any references to chunks that are owned by the inheriting class (those that were acquired using getChunk during parse or created using putChunk during build). You no longer have ownership over these chunks, and should not use them anymore. This function may be called after build to disable any functionality from the loaded storage. Call the parent's disown after disowning your own chunks. Disown is called on the disowned child chunks for you + virtual void disown(); + //@} + + //! \name Virtual functionality for inheriting classes to implement + //@{ + /// Initialize this class from scratch, call the parent first + virtual void init(); + //@} + + //! \name Static const variables for the class description + //@{ + static const ucstring DisplayName; + static const char *InternalName; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + //@} + + //! \name More virtual functionality for inheriting classes to implement + //@{ + /// Returns whether the class inherits from a class with given class id + virtual bool inherits(const NLMISC::CClassId classId) const; + /// Return the class description of the inheriting class + virtual const ISceneClassDesc *classDesc() const; + /// Create a readable representation of this class + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + //@} + +public: + //! \name Read access to internal data, provided for browsing trough the file from code + //@{ + inline const TStorageObjectContainer &orphanedChunks() const { return m_OrphanedChunks; } + //@} + + //! \name Scene utility access + //@{ + /// Return the scene scene class + inline BUILTIN::CSceneImpl *scene() const { return m_Scene->container()->scene(); } + /// Return the scene version + inline uint16 version() const { return m_Scene->version(); } + /// Return the scene container + inline CSceneClassContainer *container() const { return m_Scene->container(); } + //@} + +protected: + //! \name Methods used by inheriting classes to read and write to the storage safely + //@{ + /// Use during parsing. Gets the chunk with specified id. Warnings when chunks are skipped may be elevated to errors. Remaining orphaned chunks will be appended after chunks that are written by the classes. Returns NULL when the chunk does not exist. Empty chunks are often not written by classes. You have ownership over the chunk until it is disowned. In case that the chunk cannot be parsed, call disown and abort parsing, or you may keep the chunk as is without modifications and put it back as is during build with putChunk. If this function returns NULL it is also possible that the parsing has been aborted when m_ChunksOwnsPointers is true + IStorageObject *getChunk(uint16 id); + /// Use during file build. Adds a chunk to the chunks that will be written to the file. Build is called when a chunk is passed through + void putChunk(uint16 id, IStorageObject *storageObject); + /// Same as getChunk but for lazy programmers, must use together with putChunkValue + template + const T &getChunkValue(uint16 id); + /// Same as putChunk but for lazy programmers, must use together with getChunkValue + template + void putChunkValue(uint16 id, const T &value); + /// See the next chunk id + uint16 peekChunk(); + //@} + +protected: + virtual IStorageObject *createChunkById(uint16 id, bool container); + + /// Chunks which have been parsed, kept unmodified, and which are no longer necessary, should be placed here + std::vector m_ArchivedChunks; + +private: + TStorageObjectContainer m_OrphanedChunks; + TStorageObjectIterator m_PutChunkInsert; + + CScene *m_Scene; + +}; /* class CSceneClass */ + +template +const T &CSceneClass::getChunkValue(uint16 id) +{ + CStorageValue *chunk = static_cast *>(getChunk(id)); + if (!chunk) { nlerror("Try to get required chunk value 0x%x but it does not exist, bad file format"); } + m_ArchivedChunks.push_back(chunk); + return chunk->Value; +} + +template +void CSceneClass::putChunkValue(uint16 id, const T &value) +{ + CStorageValue *chunk = new CStorageValue(); + chunk->Value = value; + m_ArchivedChunks.push_back(chunk); + putChunk(id, chunk); +} + +/** + * \brief ISceneClassDesc + * \date 2012-08-19 19:25GMT + * \author Jan Boon (Kaetemi) + * ISceneClassDesc + */ +class ISceneClassDesc +{ +public: + virtual CSceneClass *create(CScene *scene) const = 0; + virtual void destroy(CSceneClass *sc) const = 0; + virtual const ucchar *displayName() const = 0; + virtual const char *internalName() const = 0; + virtual NLMISC::CClassId classId() const = 0; + virtual TSClassId superClassId() const = 0; + virtual const IDllPluginDescInternal *dllPluginDesc() const = 0; + +}; /* class ISceneClassDesc */ + +/** + * \brief CSceneClassDesc + * \date 2012-08-19 19:25GMT + * \author Jan Boon (Kaetemi) + * CSceneClassDesc + * Use in a cpp when registering the CClassId. + */ +template +class CSceneClassDesc : public ISceneClassDesc +{ +public: + CSceneClassDesc(const IDllPluginDescInternal *dllPluginDesc) : m_DllPluginDesc(dllPluginDesc) { } + virtual CSceneClass *create(CScene *scene) const { return static_cast(new T(scene)); } + virtual void destroy(CSceneClass *sc) const { delete static_cast(sc); } + virtual const ucchar *displayName() const { return T::DisplayName.c_str(); } + virtual const char *internalName() const { return T::InternalName; } + virtual NLMISC::CClassId classId() const { return T::ClassId; } + virtual TSClassId superClassId() const { return T::SuperClassId; } + virtual const IDllPluginDescInternal *dllPluginDesc() const { return m_DllPluginDesc; } +private: + const IDllPluginDescInternal *m_DllPluginDesc; + +}; /* class CSceneClassDesc */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_SCENE_CLASS_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/scene_class_registry.cpp b/code/nel/tools/3d/pipeline_max/scene_class_registry.cpp new file mode 100644 index 000000000..d5b63bd78 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/scene_class_registry.cpp @@ -0,0 +1,176 @@ +/** + * \file scene_class_registry.cpp + * \brief CSceneClassRegistry + * \date 2012-08-20 09:57GMT + * \author Jan Boon (Kaetemi) + * CSceneClassRegistry + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "scene_class_registry.h" + +// STL includes +#include + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +// Elevate warnings to errors in this file for stricter reading +#undef nlwarning +#define nlwarning nlerror + +// Elevate debug to error in this file for debugging +// #undef nldebug +// #define nldebug nlerror + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CSceneClassRegistry::CSceneClassRegistry() +{ + +} + +CSceneClassRegistry::~CSceneClassRegistry() +{ + +} + +void CSceneClassRegistry::add(const ISceneClassDesc *desc) +{ + TKey key(desc->superClassId(), desc->classId()); + if (m_ClassDescriptions.find(key) != m_ClassDescriptions.end()) { nlerror("Already added this class to the registry"); return; } + m_ClassDescriptions[key] = desc; +} + +void CSceneClassRegistry::remove(const TSClassId superClassId, const NLMISC::CClassId classId) +{ + TKey key(superClassId, classId); + if (m_ClassDescriptions.find(key) == m_ClassDescriptions.end()) { nlwarning("Try to remove class that is not found"); return; } + m_ClassDescriptions.erase(key); +} + +/// Add a superclass to the registry +void CSceneClassRegistry::add(const ISuperClassDesc *desc) +{ + // nldebug("Register superclass 0x%x", desc->superClassId()); + if (m_SuperClassDescriptions.find(desc->superClassId()) != m_SuperClassDescriptions.end()) { nlerror("Already added this superclass to the registry"); return; } + m_SuperClassDescriptions[desc->superClassId()] = desc; +} + +/// Remove a superclass from the registry +void CSceneClassRegistry::remove(const TSClassId superClassId) +{ + if (m_SuperClassDescriptions.find(superClassId) == m_SuperClassDescriptions.end()) { nlwarning("Try to remove superclass that is not found"); return; } + m_SuperClassDescriptions.erase(superClassId); +} + +/// Create a class by class id +CSceneClass *CSceneClassRegistry::create(CScene *scene, const TSClassId superClassId, const NLMISC::CClassId classId) const +{ + TKey key(superClassId, classId); + if (m_ClassDescriptions.find(key) == m_ClassDescriptions.end()) { /* nldebug("Try to create class that does not exist"); */ return NULL; } + return m_ClassDescriptions.find(key)->second->create(scene); +} + +/// Create an unknown class by superclass id +CSceneClass *CSceneClassRegistry::createUnknown(CScene *scene, TSClassId superClassId, const NLMISC::CClassId classId, const ucstring &displayName, const ucstring &dllFilename, const ucstring &dllDescription) const +{ + if (m_SuperClassDescriptions.find(superClassId) == m_SuperClassDescriptions.end()) { nlwarning("Creating superclass 0x%x (%s) %s that does not exist", superClassId, displayName.toUtf8().c_str(), classId.toString().c_str()); return NULL; } + return m_SuperClassDescriptions.find(superClassId)->second->createUnknown(scene, classId, displayName, dllFilename, dllDescription); +} + +/// Destroy a class by pointer +void CSceneClassRegistry::destroy(CSceneClass *sceneClass) const +{ + sceneClass->classDesc()->destroy(sceneClass); +} + +/// Return the description of a class by class id +const ISceneClassDesc *CSceneClassRegistry::describe(const TSClassId superClassId, const NLMISC::CClassId classId) const +{ + TKey key(superClassId, classId); + if (m_ClassDescriptions.find(key) == m_ClassDescriptions.end()) { nldebug("Try to describe class that does not exist"); return NULL; } + return m_ClassDescriptions.find(key)->second; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CSceneClassRegistry::TKey::TKey(TSClassId superClassId, NLMISC::CClassId classId) : SuperClassId(superClassId), ClassId(classId) +{ + +} + +bool CSceneClassRegistry::TKey::operator<(const CSceneClassRegistry::TKey &right) const +{ + if (SuperClassId < right.SuperClassId) + return true; + if (SuperClassId > right.SuperClassId) + return false; + if (ClassId < right.ClassId) + return true; + if (ClassId > right.ClassId) + return false; + return false; +} + +bool CSceneClassRegistry::TKey::operator>(const CSceneClassRegistry::TKey &right) const +{ + if (SuperClassId > right.SuperClassId) + return true; + if (SuperClassId < right.SuperClassId) + return false; + if (ClassId > right.ClassId) + return true; + if (ClassId < right.ClassId) + return false; + return false; +} + +bool CSceneClassRegistry::TKey::operator==(const CSceneClassRegistry::TKey &right) const +{ + return ClassId == right.ClassId && SuperClassId == right.SuperClassId; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/scene_class_registry.h b/code/nel/tools/3d/pipeline_max/scene_class_registry.h new file mode 100644 index 000000000..af954c533 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/scene_class_registry.h @@ -0,0 +1,98 @@ +/** + * \file scene_class_registry.h + * \brief CSceneClassRegistry + * \date 2012-08-20 09:57GMT + * \author Jan Boon (Kaetemi) + * CSceneClassRegistry + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_SCENE_CLASS_REGISTRY_H +#define PIPELINE_SCENE_CLASS_REGISTRY_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "scene_class.h" +#include "super_class_desc.h" + +namespace PIPELINE { +namespace MAX { + +/** + * \brief CSceneClassRegistry + * \date 2012-08-20 09:57GMT + * \author Jan Boon (Kaetemi) + * CSceneClassRegistry + */ +class CSceneClassRegistry +{ +public: + CSceneClassRegistry(); + virtual ~CSceneClassRegistry(); + + /// Add a class to the registry + void add(const ISceneClassDesc *desc); + /// Remove a class from the registry + void remove(TSClassId superClassId, const NLMISC::CClassId classId); + + /// Add a superclass to the registry + void add(const ISuperClassDesc *desc); + /// Remove a superclass from the registry + void remove(const TSClassId superClassId); + + /// Create a class by class id + CSceneClass *create(CScene *scene, TSClassId superClassId, const NLMISC::CClassId classId) const; + + /// Create an unknown class by superclass id + CSceneClass *createUnknown(CScene *scene, TSClassId superClassId, const NLMISC::CClassId classId, const ucstring &displayName, const ucstring &dllFilename, const ucstring &dllDescription) const; + + /// Destroy a class by pointer + void destroy(CSceneClass *sceneClass) const; + + /// Return the description of a class by class id + const ISceneClassDesc *describe(TSClassId superClassId, const NLMISC::CClassId classId) const; + +private: + struct TKey + { + TKey(TSClassId superClassId, NLMISC::CClassId classId); + TSClassId SuperClassId; + NLMISC::CClassId ClassId; + bool operator<(const TKey &right) const; + bool operator>(const TKey &right) const; + bool operator==(const TKey &right) const; + }; + + std::map m_ClassDescriptions; + std::map m_SuperClassDescriptions; + +}; /* class CSceneClassRegistry */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_SCENE_CLASS_REGISTRY_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/scene_class_unknown.cpp b/code/nel/tools/3d/pipeline_max/scene_class_unknown.cpp new file mode 100644 index 000000000..f5179a7d3 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/scene_class_unknown.cpp @@ -0,0 +1,114 @@ +/** + * \file scene_class_unknown.cpp + * \brief CSceneClassUnknown + * \date 2012-08-20 13:23GMT + * \author Jan Boon (Kaetemi) + * CSceneClassUnknown + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "scene_class_unknown.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +// using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CSceneClassUnknownDllPluginDesc::CSceneClassUnknownDllPluginDesc(const ucstring &dllFilename, const ucstring &dllDescription) : m_InternalName(dllFilename), m_DisplayName(dllDescription) +{ + +} + +const ucchar *CSceneClassUnknownDllPluginDesc::internalName() const +{ + return m_InternalName.c_str(); +} + +const ucchar *CSceneClassUnknownDllPluginDesc::displayName() const +{ + return m_DisplayName.c_str(); +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CSceneClassUnknownDesc::CSceneClassUnknownDesc(const NLMISC::CClassId classId, const TSClassId superClassId, const ucstring &displayName, const std::string &internalName, const ucstring &dllFilename, const ucstring &dllDescription) : m_DisplayName(displayName), m_InternalName(internalName), m_ClassId(classId), m_SuperClassId(superClassId), m_DllPluginDesc(dllFilename, dllDescription) +{ + +} + +CSceneClass *CSceneClassUnknownDesc::create(CScene *scene) const +{ + nlassert(false); +} + +void CSceneClassUnknownDesc::destroy(CSceneClass *sc) const +{ + delete sc; +} + +const ucchar *CSceneClassUnknownDesc::displayName() const +{ + return m_DisplayName.c_str(); +} + +const char *CSceneClassUnknownDesc::internalName() const +{ + return m_InternalName.c_str(); +} + +NLMISC::CClassId CSceneClassUnknownDesc::classId() const +{ + return m_ClassId; +} + +TSClassId CSceneClassUnknownDesc::superClassId() const +{ + return m_SuperClassId; +} + +const IDllPluginDescInternal *CSceneClassUnknownDesc::dllPluginDesc() const +{ + return &m_DllPluginDesc; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/scene_class_unknown.h b/code/nel/tools/3d/pipeline_max/scene_class_unknown.h new file mode 100644 index 000000000..46fb44a39 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/scene_class_unknown.h @@ -0,0 +1,115 @@ +/** + * \file scene_class_unknown.h + * \brief CSceneClassUnknown + * \date 2012-08-20 13:23GMT + * \author Jan Boon (Kaetemi) + * CSceneClassUnknown + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_SCENE_CLASS_UNKNOWN_H +#define PIPELINE_SCENE_CLASS_UNKNOWN_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "scene_class.h" + +namespace PIPELINE { +namespace MAX { + +/** + * \brief CSceneClassUnknownDllPluginDesc + * \date 2012-08-20 13:23GMT + * \author Jan Boon (Kaetemi) + * CSceneClassUnknownDllPluginDesc + */ +class CSceneClassUnknownDllPluginDesc : public IDllPluginDescInternal +{ +public: + CSceneClassUnknownDllPluginDesc(const ucstring &dllFilename, const ucstring &dllDescription); + virtual const ucchar *internalName() const; + virtual const ucchar *displayName() const; + +private: + ucstring m_InternalName; + ucstring m_DisplayName; + +}; + +/** + * \brief CSceneClassUnknownDesc + * \date 2012-08-20 13:23GMT + * \author Jan Boon (Kaetemi) + * CSceneClassUnknownDesc + */ +class CSceneClassUnknownDesc : public ISceneClassDesc +{ +public: + CSceneClassUnknownDesc(const NLMISC::CClassId classId, const TSClassId superClassId, const ucstring &displayName, const std::string &internalName, const ucstring &dllFilename, const ucstring &dllDescription); + virtual CSceneClass *create(CScene *scene) const; + virtual void destroy(CSceneClass *sc) const; + virtual const ucchar *displayName() const; + virtual const char *internalName() const; + virtual NLMISC::CClassId classId() const; + virtual TSClassId superClassId() const; + virtual const IDllPluginDescInternal *dllPluginDesc() const; + +private: + ucstring m_DisplayName; + std::string m_InternalName; + NLMISC::CClassId m_ClassId; + TSClassId m_SuperClassId; + CSceneClassUnknownDllPluginDesc m_DllPluginDesc; + +}; /* class ISceneClassDesc */ + +/** + * \brief CSceneClassUnknown + * \date 2012-08-20 13:23GMT + * \author Jan Boon (Kaetemi) + * Utility class for parsing unknown scene classes and keeping them + * in storage as is. + */ +template +class CSceneClassUnknown : public TSuperClass +{ +public: + CSceneClassUnknown(CScene *scene, const NLMISC::CClassId classId, const TSClassId superClassId, const ucstring &displayName, const std::string &internalName, const ucstring &dllFilename, const ucstring &dllDescription) : TSuperClass(scene), m_Desc(classId, superClassId, displayName, internalName, dllFilename, dllDescription) { } + virtual ~CSceneClassUnknown() { } + + // inherited + virtual const ISceneClassDesc *classDesc() const { return &m_Desc; } + +private: + CSceneClassUnknownDesc m_Desc; + +}; /* class CSceneClass */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_SCENE_CLASS_UNKNOWN_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_array.cpp b/code/nel/tools/3d/pipeline_max/storage_array.cpp new file mode 100644 index 000000000..acd0326c7 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_array.cpp @@ -0,0 +1,49 @@ +/** + * \file storage_array.cpp + * \brief CStorageArray + * \date 2012-08-21 11:33GMT + * \author Jan Boon (Kaetemi) + * CStorageArray + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "storage_array.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +void blahblahblah() { } + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_array.h b/code/nel/tools/3d/pipeline_max/storage_array.h new file mode 100644 index 000000000..1f72f8213 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_array.h @@ -0,0 +1,217 @@ +/** + * \file storage_array.h + * \brief CStorageArray + * \date 2012-08-21 11:33GMT + * \author Jan Boon (Kaetemi) + * CStorageArray + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_STORAGE_ARRAY_H +#define PIPELINE_STORAGE_ARRAY_H +#include + +// STL includes +#include + +// NeL includes +#include +#include + +// Project includes +#include "storage_object.h" + +namespace PIPELINE { +namespace MAX { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +/** + * \brief CStorageArray + * \date 2012-08-21 11:33GMT + * \author Jan Boon (Kaetemi) + * WARNING: sizeof(TType) should match the serialized size, + * otherwise you must specialize the getSize and setSize functions! + */ +template +class CStorageArray : public IStorageObject +{ +public: + // public data + typedef T TType; + typedef std::vector TTypeArray; + TTypeArray Value; + + // inherited + virtual std::string className() const; + virtual void serial(NLMISC::IStream &stream); + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + +public: // should be protected but that doesn't compile, nice c++! + // Sets size when reading + virtual void setSize(sint32 size); + // Gets the size when writing, return false if unknown + virtual bool getSize(sint32 &size) const; +}; /* class CStorageArray */ + +template +std::string CStorageArray::className() const +{ + return "StorageArray"; +} + +template +void CStorageArray::serial(NLMISC::IStream &stream) +{ + for (typename TTypeArray::iterator it = Value.begin(), end = Value.end(); it != end; ++it) + { + stream.serial(*it); + } +} + +template +void CStorageArray::toString(std::ostream &ostream, const std::string &pad) const +{ + ostream << "(" << className() << ") [" << Value.size() << "] { "; // << s << " } "; + uint i = 0; + for (typename TTypeArray::const_iterator it = Value.begin(), end = Value.end(); it != end; ++it) + { + std::string s = NLMISC::toString(*it); + //ostream << "\n" << pad << i << ": " << s; + ostream << "{ " << s << " } "; + ++i; + } + ostream << "} "; +} + +template +void CStorageArray::setSize(sint32 size) +{ + if (size % (sizeof(TType)) != 0) + nlerror("Size %i is not a multiple of value type size %i", size, sizeof(TType)); + Value.resize(size / sizeof(TType)); +} + +template +bool CStorageArray::getSize(sint32 &size) const +{ + size = Value.size() * sizeof(TType); + return true; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +template +class CStorageArraySizePre : public CStorageArray +{ +public: + virtual std::string className() const; + virtual void serial(NLMISC::IStream &stream); + virtual void setSize(sint32 size); + virtual bool getSize(sint32 &size) const; +}; + +template +std::string CStorageArraySizePre::className() const +{ + return "StorageArraySizePre"; +} + +template +void CStorageArraySizePre::serial(NLMISC::IStream &stream) +{ + uint32 size = this->Value.size(); + stream.serial(size); + nlassert(this->Value.size() == size); + CStorageArray::serial(stream); +} + +template +void CStorageArraySizePre::setSize(sint32 size) +{ + CStorageArray::setSize(size - sizeof(uint32)); +} + +template +bool CStorageArraySizePre::getSize(sint32 &size) const +{ + size = CStorageArray::getSize(size) + sizeof(uint32); + return true; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +/// Same as CStorageArraySizePre but with no sizeof checks. +/// Use when serializing variable sizes in type T. +template +class CStorageArrayDynSize : public CStorageArray +{ +public: + virtual std::string className() const; + virtual void serial(NLMISC::IStream &stream); + virtual void setSize(sint32 size); + virtual bool getSize(sint32 &size) const; +}; + +template +std::string CStorageArrayDynSize::className() const +{ + return "StorageArrayDynSize"; +} + +template +void CStorageArrayDynSize::serial(NLMISC::IStream &stream) +{ + uint32 size = this->Value.size(); + stream.serial(size); + this->Value.resize(size); + CStorageArray::serial(stream); +} + +template +void CStorageArrayDynSize::setSize(sint32 size) +{ + // Nothing to do here! +} + +template +bool CStorageArrayDynSize::getSize(sint32 &size) const +{ + // Nothing to do here! + return false; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_STORAGE_ARRAY_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_chunks.cpp b/code/nel/tools/3d/pipeline_max/storage_chunks.cpp new file mode 100644 index 000000000..b8cfbbd03 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_chunks.cpp @@ -0,0 +1,202 @@ +/** + * \file storage_chunks.cpp + * \brief CStorageChunks + * \date 2012-08-18 09:20GMT + * \author Jan Boon (Kaetemi) + * CStorageChunks + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "storage_chunks.h" + +// STL includes + +// NeL includes +#include + +// Project includes + +// using namespace std; +// using namespace NLMISC; + +// #define NL_DEBUG_STORAGE + +namespace PIPELINE { +namespace MAX { + +CStorageChunks::CStorageChunks(NLMISC::IStream &stream, sint64 size) : m_Stream(stream), m_Is64Bit(false) +{ + if (size >= 2147483647L) + throw NLMISC::EStream("64bit chunks not supported"); + m_Chunks.reserve(64); + m_Chunks.resize(1); + m_Chunks[0].HeaderSize = 0; + m_Chunks[0].OffsetBegin = stream.getPos(); + if (stream.isReading()) + { + m_Chunks[0].Id = 0; + m_Chunks[0].Size = 0x80000000 | (uint32)(size); + } + else + { + m_Chunks[0].Id = 1; + m_Chunks[0].Size = 0; + } +} + +CStorageChunks::~CStorageChunks() +{ +#ifdef NL_DEBUG_STORAGE + if (m_Chunks.size() != 1) + nldebug("Not all chunks were closed"); +#endif +} + +bool CStorageChunks::enterChunk() +{ + if (m_Stream.isReading()) + { + // input logic + if (!isChunkContainer()) + { +#ifdef NL_DEBUG_STORAGE + nldebug("Current chunk is not a container, cannot enter"); +#endif + return false; + } + if (endOfChunk()) + { +#ifdef NL_DEBUG_STORAGE + nldebug("End of chunk, cannot enter"); +#endif + return false; + } + m_Chunks.resize(m_Chunks.size() + 1); + CChunk *chunk = currentChunk(); + chunk->OffsetBegin = m_Stream.getPos(); + m_Stream.serial(chunk->Id); + m_Stream.serial(chunk->Size); + chunk->HeaderSize = 6; + if (chunk->Size == 0) + { + // this is a 64bit chunk + uint64 size64; + m_Stream.serial(size64); + chunk->HeaderSize += 8; + bool iscont = (size64 & 0x8000000000000000) == 0x8000000000000000; + size64 &= 0x7FFFFFFFFFFFFFFF; + if (size64 >= 2147483647L) + throw NLMISC::EStream("64bit chunks not supported"); + // downgrade to 32 bit chunk + chunk->Size = (uint32)size64; + if (iscont) chunk->Size |= 0x80000000; + m_Is64Bit = true; // it's true + } +#ifdef NL_DEBUG_STORAGE + nldebug("Entered reading chunk of size %i", chunk->Size); +#endif + return true; + } + else + { +#ifdef NL_DEBUG_STORAGE + nldebug("No input, this function cannot output, throw exception"); +#endif + throw NLMISC::EStream(); + } +} + +bool CStorageChunks::enterChunk(uint16 id, bool container) +{ + if (!m_Stream.isReading()) + { +#ifdef NL_DEBUG_STORAGE + nldebug("Writing, enter chunk"); +#endif + + if (m_Is64Bit) + throw NLMISC::EStream("64bit chunks not supported"); + + // enter the new chunk + m_Chunks.resize(m_Chunks.size() + 1); + CChunk *chunk = currentChunk(); + uint32 sizeDummy = 0xFFFFFFFF; + chunk->Id = container ? 1 : 0; + chunk->OffsetBegin = m_Stream.getPos(); // store current pos + + // write header + m_Stream.serial(id); // write the id + m_Stream.serial(sizeDummy); // write 32 bit size placeholder + return true; + } + else // input or exception + { + while (enterChunk()) + { + if (getChunkId() == id) + return true; + leaveChunk(); // skip data + } + return false; + } +} + +sint32 CStorageChunks::leaveChunk() +{ + if (m_Stream.isReading()) + { + // input logic + sint32 skipped = currentChunk()->endOfChunk() - m_Stream.getPos(); + if (skipped) + { + m_Stream.seek(currentChunk()->endOfChunk(), NLMISC::IStream::begin); +#ifdef NL_DEBUG_STORAGE + nldebug("Skipped %i bytes in the current chunk", skipped); +#endif + } + m_Chunks.resize(m_Chunks.size() - 1); + return skipped; + } + else + { +#ifdef NL_DEBUG_STORAGE + nldebug("Writing, leave chunk"); +#endif + sint32 pos = m_Stream.getPos(); + sint32 sizeWithHeader = pos - currentChunk()->OffsetBegin; + sint32 sizePos = currentChunk()->OffsetBegin + 2; + m_Stream.seek(sizePos, NLMISC::IStream::begin); // hopefully this correctly overwrites!!! + uint32 sizeField = (uint32)sizeWithHeader | (uint32)currentChunk()->Id << 31; // add container flag + m_Stream.serial(sizeField); + m_Stream.seek(pos, NLMISC::IStream::begin); + m_Chunks.resize(m_Chunks.size() - 1); +#ifdef NL_DEBUG_STORAGE + nldebug("Size: %i, Field: %x", sizeWithHeader, sizeField); +#endif + return sizeWithHeader; + } +} + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_chunks.h b/code/nel/tools/3d/pipeline_max/storage_chunks.h new file mode 100644 index 000000000..45d72fb87 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_chunks.h @@ -0,0 +1,107 @@ +/** + * \file storage_chunks.h + * \brief CStorageChunks + * \date 2012-08-18 09:20GMT + * \author Jan Boon (Kaetemi) + * CStorageChunks + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_STORAGE_CHUNKS_H +#define PIPELINE_STORAGE_CHUNKS_H +#include + +// STL includes + +// NeL includes +#include + +// Project includes + +namespace PIPELINE { +namespace MAX { + +/** + * \brief CStorageChunks + * \date 2012-08-18 09:20GMT + * \author Jan Boon (Kaetemi) + * CStorageChunks + */ +class CStorageChunks +{ +private: + struct CChunk + { + // Size of the chunk header, 6 for 32 bit, 14 for 64 bit + uint8 HeaderSize; + // Where the header starts + sint32 OffsetBegin; + + // Identifier + uint16 Id; + // Size including header size + uint32 Size; + + inline sint32 getSizeWithHeader() const { return (sint32)(Size & 0x7FFFFFFF); } + inline sint32 getSize() const { return getSizeWithHeader() - (sint32)HeaderSize; } + inline bool isContainer() const { return (Size & 0x80000000) == 0x80000000; } + inline sint32 endOfChunk() const { return OffsetBegin + getSizeWithHeader(); } + inline sint32 getDataBegin() const { return OffsetBegin + (sint32)HeaderSize; } + }; + +public: + CStorageChunks(NLMISC::IStream &stream, sint64 size = 0); + virtual ~CStorageChunks(); + + // Returns true if there's another chunk, false if no more chunks in this container or if the current chunk is not a container + bool enterChunk(); + // Reads and skips chunks until the one with given id is found, or writes a chunk with this id + bool enterChunk(uint16 id, bool container); + // Returns the number of skipped bytes in read more, returns chunk size including header in write mode + sint32 leaveChunk(); + + inline bool is64Bit() const { return m_Is64Bit; } + inline void set64Bit(bool enabled = true) { m_Is64Bit = enabled; } + + inline uint16 getChunkId() const { return currentChunk()->Id; } + inline sint32 getChunkSize() const { return currentChunk()->getSize(); } + inline bool isChunkContainer() const { return currentChunk()->isContainer(); } + inline bool endOfChunk() const { return /*m_Chunks.size() == 1 ? eof() :*/ m_Stream.getPos() >= currentChunk()->endOfChunk(); } + + inline NLMISC::IStream &stream() { return m_Stream; } + +private: + inline const CChunk *currentChunk() const { return &m_Chunks[m_Chunks.size() - 1]; } + inline CChunk *currentChunk() { return &m_Chunks[m_Chunks.size() - 1]; } + +private: + NLMISC::IStream &m_Stream; + std::vector m_Chunks; + bool m_Is64Bit; + +}; /* class CStorageChunks */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_STORAGE_CHUNKS_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_file.cpp b/code/nel/tools/3d/pipeline_max/storage_file.cpp new file mode 100644 index 000000000..083075424 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_file.cpp @@ -0,0 +1,55 @@ +/** + * \file storage_file.cpp + * \brief CStorageFile + * \date 2012-08-20 13:35GMT + * \author Jan Boon (Kaetemi) + * CStorageFile + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "storage_file.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { + +CStorageFile::CStorageFile() +{ + +} + +CStorageFile::~CStorageFile() +{ + +} + +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_file.h b/code/nel/tools/3d/pipeline_max/storage_file.h new file mode 100644 index 000000000..596016e16 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_file.h @@ -0,0 +1,63 @@ +/** + * \file storage_file.h + * \brief CStorageFile + * \date 2012-08-20 13:35GMT + * \author Jan Boon (Kaetemi) + * CStorageFile + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_STORAGE_FILE_H +#define PIPELINE_STORAGE_FILE_H +#include + +// STL includes + +// NeL includes + +// Project includes + +namespace PIPELINE { + +/** + * \brief CStorageFile + * \date 2012-08-20 13:35GMT + * \author Jan Boon (Kaetemi) + * CStorageFile + */ +class CStorageFile +{ +protected: + // pointers + // ... + + // instances + // ... +public: + CStorageFile(); + virtual ~CStorageFile(); +}; /* class CStorageFile */ + +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_STORAGE_FILE_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_object.cpp b/code/nel/tools/3d/pipeline_max/storage_object.cpp new file mode 100644 index 000000000..c580caab4 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_object.cpp @@ -0,0 +1,386 @@ +/** + * \file storage_object.cpp + * \brief CStorageObject + * \date 2012-08-18 09:02GMT + * \author Jan Boon (Kaetemi) + * CStorageObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "storage_object.h" + +// STL includes +#include + +// NeL includes +// #include + +// Project includes +#include "storage_stream.h" +#include "storage_chunks.h" + +// using namespace std; +// using namespace NLMISC; + +// #define NL_DEBUG_STORAGE + +namespace PIPELINE { +namespace MAX { + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +IStorageObject::IStorageObject() +{ + +} + +IStorageObject::~IStorageObject() +{ + +} + +std::string IStorageObject::toString() +{ + std::stringstream ss; + toString(ss); + return ss.str(); +} + +void IStorageObject::setSize(sint32 size) +{ + // ignore +} + +bool IStorageObject::getSize(sint32 &size) const +{ + return false; +} + +bool IStorageObject::isContainer() const +{ + return false; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CStorageContainer::CStorageContainer() : m_ChunksOwnsPointers(true) +{ + +} + +CStorageContainer::~CStorageContainer() +{ + if (m_ChunksOwnsPointers) + { + for (TStorageObjectContainer::iterator it = m_Chunks.begin(), end = m_Chunks.end(); it != end; ++it) + { + delete it->second; + } + } + m_Chunks.clear(); +} + +std::string CStorageContainer::className() const // why is this not const in IClassable? +{ + return "StorageContainer"; +} + +void CStorageContainer::serial(NLMISC::IStream &stream) +{ + if (stream.isReading()) + { + nlassert(m_ChunksOwnsPointers); + nlassert(m_Chunks.empty()); + } + if (stream.getPos() == 0) + { + CStorageStream *storageStream = dynamic_cast(&stream); + if (storageStream) + { +#ifdef NL_DEBUG_STORAGE + nldebug("Implicitly assume the entire stream is the container"); +#endif + CStorageChunks chunks(stream, stream.isReading() ? storageStream->size() : 0); + serial(chunks); + return; + } + } +#ifdef NL_DEBUG_STORAGE + nldebug("Wrap the container inside a chunk, as the size is not known"); +#endif + { + // Use dummy size value so the system can at least read the header + CStorageChunks chunks(stream, stream.isReading() ? 0xFF : 0); + bool ok = chunks.enterChunk(0x4352, true); + nlassert(ok); + serial(chunks); + chunks.leaveChunk(); + } +} + +void CStorageContainer::serial(NLMISC::IStream &stream, uint size) +{ + CStorageChunks chunks(stream, size); + serial(chunks); + return; +} + +void CStorageContainer::toString(std::ostream &ostream, const std::string &pad) const +{ + // note: only use pad when multi-lining + // like Blah: (Something) "SingleValue" + // Blahblah: (Container) { + // Moo: (Foo) "What" } + // only increase pad when multi-lining sub-items + nlassert(m_ChunksOwnsPointers); + ostream << "(" << className() << ") [" << m_Chunks.size() << "] { "; + std::string padpad = pad + "\t"; + sint i = 0; + for (TStorageObjectContainer::const_iterator it = m_Chunks.begin(), end = m_Chunks.end(); it != end; ++it) + { + std::stringstream ss; + ss << std::hex << std::setfill('0'); + ss << std::setw(4) << it->first; + ostream << "\n" << pad << i << " 0x" << ss.str() << ": "; + it->second->toString(ostream, padpad); + ++i; + } + ostream << "} "; +} + +void CStorageContainer::parse(uint16 version, uint filter) +{ + nlassert(m_ChunksOwnsPointers); // Can only use this when m_Chunks still has ownership. + for (TStorageObjectContainer::const_iterator it = m_Chunks.begin(), end = m_Chunks.end(); it != end; ++it) + { + if (it->second->isContainer()) + { + static_cast(it->second)->parse(version); + } + } +} + +void CStorageContainer::clean() +{ + nlassert(m_ChunksOwnsPointers); // Can only use the default when m_Chunks retains ownership. + for (TStorageObjectContainer::const_iterator it = m_Chunks.begin(), end = m_Chunks.end(); it != end; ++it) + { + if (it->second->isContainer()) + { + static_cast(it->second)->clean(); + } + } +} + +void CStorageContainer::build(uint16 version, uint filter) +{ + for (TStorageObjectContainer::const_iterator it = m_Chunks.begin(), end = m_Chunks.end(); it != end; ++it) + { + if (it->second->isContainer()) + { + static_cast(it->second)->build(version); + } + } +} + +void CStorageContainer::disown() +{ + nlassert(m_ChunksOwnsPointers); // Can only use this when m_Chunks has been given ownership. + for (TStorageObjectContainer::const_iterator it = m_Chunks.begin(), end = m_Chunks.end(); it != end; ++it) + { + if (it->second->isContainer()) + { + static_cast(it->second)->disown(); + } + } +} + +IStorageObject *CStorageContainer::findStorageObject(uint16 id, uint nb) const +{ + uint c = 0; + for (TStorageObjectContainer::const_iterator it = m_Chunks.begin(), end = m_Chunks.end(); it != end; ++it) + { + if (it->first == id) + { + if (c == nb) return it->second; + else ++c; + } + } + return NULL; +} + +IStorageObject *CStorageContainer::findLastStorageObject(uint16 id) const +{ + for (TStorageObjectContainer::const_reverse_iterator it = m_Chunks.rbegin(), end = m_Chunks.rend(); it != end; ++it) + { + if (it->first == id) + return it->second; + } + return NULL; +} + +bool CStorageContainer::isContainer() const +{ + return true; +} + +void CStorageContainer::serial(CStorageChunks &chunks) +{ + if (chunks.stream().isReading()) + { +#ifdef NL_DEBUG_STORAGE + nldebug("Reading container chunk"); +#endif + nlassert(m_ChunksOwnsPointers); + nlassert(m_Chunks.empty()); + while (chunks.enterChunk()) + { + uint16 id = chunks.getChunkId(); + bool cont = chunks.isChunkContainer(); + IStorageObject *storageObject = createChunkById(id, cont); + storageObject->setSize(chunks.getChunkSize()); + if (storageObject->isContainer()) static_cast(storageObject)->serial(chunks); + else storageObject->serial(chunks.stream()); + m_Chunks.push_back(TStorageObjectWithId(id, storageObject)); + if (chunks.leaveChunk()) // bytes were skipped while reading + throw EStorage(); + /*TStorageObjectContainer::iterator soit = m_Chunks.end(); + --soit; + serialized(soit, cont);*/ + } + } + else + { +#ifdef NL_DEBUG_STORAGE + nldebug("Writing container chunk"); +#endif + for (TStorageObjectContainer::iterator it = m_Chunks.begin(), end = m_Chunks.end(); it != end; ++it) + { + chunks.enterChunk(it->first, it->second->isContainer()); + IStorageObject *storageObject = it->second; + if (storageObject->isContainer()) static_cast(storageObject)->serial(chunks); + else storageObject->serial(chunks.stream()); + chunks.leaveChunk(); + } + } +} + +IStorageObject *CStorageContainer::createChunkById(uint16 id, bool container) +{ + if (container) + { + return new CStorageContainer(); + } + else + { + return new CStorageRaw(); + } +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +CStorageRaw::CStorageRaw() +{ + +} + +CStorageRaw::~CStorageRaw() +{ + +} + +std::string CStorageRaw::className() const +{ + return "StorageRaw"; +} + +void CStorageRaw::serial(NLMISC::IStream &stream) +{ + stream.serialBuffer(&Value[0], Value.size()); +} + +void CStorageRaw::toString(std::ostream &ostream, const std::string &pad) const +{ + // note: only use pad when multi-lining + // like Blah: (Something) "SingleValue" + // Blahblah: (Container) { + // Moo: (Foo) "What" } + // only increase pad when multi-lining sub-items + ostream << "(" << className() << ") { "; + ostream << "\n" << pad << "Size: " << Value.size(); + bool isString = true; + ostream << "\n" << pad << "String: "; + for (TType::size_type i = 0; i < Value.size(); ++i) + { + char c = Value[i]; + if (c == 0 || c == 123 || c == 125) ostream << "."; + else if (c >= 32 && c <= 126) ostream << c; + else + { + ostream << "."; + isString = false; + } + } + ostream << " "; + if (!isString || Value.size() <= 4) + { + ostream << "\n" << pad << "Hex: "; + for (TType::size_type i = 0; i < Value.size(); ++i) + { + std::stringstream ss; + ss << std::hex << std::setfill('0') << std::setw(2) << (int)Value[i]; + ostream << ss.str() << " "; + } + } + if (Value.size() == 4) + { + ostream << "\n" << pad << "Int: " << (*(sint32 *)(void *)(&Value[0])) << " "; + ostream << "\n" << pad << "Float: " << (*(float *)(void *)(&Value[0])) << " "; + } + ostream << "} "; +} + +void CStorageRaw::setSize(sint32 size) +{ + Value.resize(size); +} + +bool CStorageRaw::getSize(sint32 &size) const +{ + size = Value.size(); + return true; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_object.h b/code/nel/tools/3d/pipeline_max/storage_object.h new file mode 100644 index 000000000..e05fb755b --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_object.h @@ -0,0 +1,174 @@ +/** + * \file storage_object.h + * \brief CStorageObject + * \date 2012-08-18 09:02GMT + * \author Jan Boon (Kaetemi) + * CStorageObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_STORAGE_OBJECT_H +#define PIPELINE_STORAGE_OBJECT_H +#include + +// STL includes +#include + +// NeL includes +#include + +// Project includes + +namespace PIPELINE { +namespace MAX { + +class CStorageChunks; + +struct EStorage : public NLMISC::Exception +{ + EStorage() : NLMISC::Exception("PIPELINE::MAX::EStorage") { } + EStorage(const char *msg) : NLMISC::Exception(msg) { } + virtual ~EStorage() throw() { } +}; + +struct EStorageParse : public EStorage +{ + EStorageParse() : EStorage("PIPELINE::MAX::EStorageParse") { } + EStorageParse(const char *msg) : EStorage(msg) { } + virtual ~EStorageParse() throw() { } +}; + +enum TParseLevel +{ + PARSE_INTERNAL = 0x00000001, // Directly parse basic class formats + PARSE_BUILTIN = 0x00000002, // Parse all builtin classes + // PARSE_NELDATA = 0x00000004, // Parse all structures related to nel specific data (nel material, node properties, etcetera) + // PARSE_NEL3D = 0x00000008, // Parse classes to initialize their nel3d equivalent classes +}; + +// IStorageObject : exposes serial(CStorageStream &stream) and dump(const std::string &pad) +class IStorageObject : public NLMISC::IStreamable +{ +public: + IStorageObject(); + virtual ~IStorageObject(); + + virtual std::string getClassName() { return className(); } // inherited from NLMISC::IClassable through NLMISC::IStreamable + virtual std::string className() const = 0; // renamed for constness + // virtual void serial(NLMISC::IStream &stream); // inherited from NLMISC::IStreamable + std::string toString(); + virtual void toString(std::ostream &ostream, const std::string &pad = "") const = 0; + +public: // should be protected but that doesn't compile, nice c++! + // Sets size when reading + virtual void setSize(sint32 size); + // Gets the size when writing, return false if unknown + virtual bool getSize(sint32 &size) const; + // Only true when inherting from CStorageContainer + virtual bool isContainer() const; +}; + +// CStorageContainer : serializes a container chunk +class CStorageContainer : public IStorageObject +{ +public: + // public data + typedef std::pair TStorageObjectWithId; + typedef std::list TStorageObjectContainer; + typedef TStorageObjectContainer::iterator TStorageObjectIterator; + typedef TStorageObjectContainer::const_iterator TStorageObjectConstIt; + +protected: + // protected data + TStorageObjectContainer m_Chunks; + bool m_ChunksOwnsPointers; + +public: + CStorageContainer(); + virtual ~CStorageContainer(); + + // inherited + virtual std::string className() const; + virtual void serial(NLMISC::IStream &stream); // only used to wrap a container inside another stream + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + + // utility + void serial(NLMISC::IStream &stream, uint size); // without wrapping, known size + + // virtual + // Parse this class with given version and parse level filter + virtual void parse(uint16 version, uint filter = 0); + // Clean up built data or duplicate unparsed source data, call after serializing build and after parse + virtual void clean(); + // Build the storage structure needed to store the parsed data back + virtual void build(uint16 version, uint filter = 0); + // Give ownership of the chunks back to the m_Chunks, must call build first, call instead of clean, reduces the parse level back to 0 + virtual void disown(); + +public: + // read access + inline const TStorageObjectContainer &chunks() const { return m_Chunks; } + IStorageObject *findStorageObject(uint16 id, uint nb = 0) const; // find storage object with given id, nb count in case there are more + IStorageObject *findLastStorageObject(uint16 id) const; + +public: // should be protected but that doesn't compile, nice c++! + // inherited + virtual bool isContainer() const; + +protected: + // override in subclasses, default to parent if not handled + virtual void serial(CStorageChunks &chunks); + // Create a storage object by id, override to provide custom serialization + virtual IStorageObject *createChunkById(uint16 id, bool container); + +}; + +// CStorageRaw : serializes raw data, use for unknown data +class CStorageRaw : public IStorageObject +{ +public: + // public data + typedef std::vector TType; + TType Value; + +public: + CStorageRaw(); + virtual ~CStorageRaw(); + + // inherited + virtual std::string className() const; + virtual void serial(NLMISC::IStream &stream); + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + +public: // should be protected but that doesn't compile, nice c++! + // Sets size when reading + virtual void setSize(sint32 size); + // Gets the size when writing, return false if unknown + virtual bool getSize(sint32 &size) const; + +}; + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_STORAGE_OBJECT_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_stream.cpp b/code/nel/tools/3d/pipeline_max/storage_stream.cpp new file mode 100644 index 000000000..d9e27153e --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_stream.cpp @@ -0,0 +1,193 @@ +/** + * \file storage_stream.cpp + * \brief CStorageStream + * \date 2012-08-16 22:06GMT + * \author Jan Boon (Kaetemi) + * CStorageStream + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "storage_stream.h" + +// STL includes + +// 3rd Party includes +#include +#include + +// NeL includes +// #include + +// Project includes + +// using namespace std; +// using namespace NLMISC; + +// #define NL_DEBUG_STORAGE + +namespace PIPELINE { +namespace MAX { + +CStorageStream::CStorageStream(GsfInput *input) : NLMISC::IStream(true), m_Input(input), m_Output(NULL) +{ + +} + +CStorageStream::CStorageStream(GsfOutput *output) : NLMISC::IStream(false), m_Input(NULL), m_Output(output) +{ + +} + +CStorageStream::~CStorageStream() +{ + if (m_Output) + { + gsf_output_seek(m_Output, 0, G_SEEK_END); + } +} + +bool CStorageStream::seek(sint32 offset, NLMISC::IStream::TSeekOrigin origin) const +{ + if (m_Input) + { + switch (origin) + { + case begin: + return gsf_input_seek(m_Input, offset, G_SEEK_SET); + case current: + return gsf_input_seek(m_Input, offset, G_SEEK_CUR); + case end: + return gsf_input_seek(m_Input, offset, G_SEEK_END); + } + } + else if (m_Output) + { + switch (origin) + { + case begin: + return gsf_output_seek(m_Output, offset, G_SEEK_SET); + case current: + return gsf_output_seek(m_Output, offset, G_SEEK_CUR); + case end: + return gsf_output_seek(m_Output, offset, G_SEEK_END); + } + } + return NLMISC::IStream::seek(offset, origin); +} + +sint32 CStorageStream::getPos() const +{ + if (m_Input) + { + gsf_off_t res = gsf_input_tell(m_Input); + if (res < 2147483647L) // exception when larger + return (sint32)res; + } + else if (m_Output) + { + gsf_off_t res = gsf_output_tell(m_Output); + if (res < 2147483647L) // exception when larger + return (sint32)res; + } + return NLMISC::IStream::getPos(); +} + +void CStorageStream::serialBuffer(uint8 *buf, uint len) +{ + if (!len) + { +#ifdef NL_DEBUG_STORAGE + nldebug("Serial 0 size buffer"); +#endif + return; + } + if (m_Input) + { + if (!gsf_input_read(m_Input, len, buf)) + { +#ifdef NL_DEBUG_STORAGE + nldebug("Cannot read from input, throw exception"); +#endif + throw NLMISC::EStream(); + } + } + else if (m_Output) + { + if (!gsf_output_write(m_Output, len, buf)) + { + nlwarning("Cannot write %i bytes to output at pos %i, throw exception", len, getPos()); + throw NLMISC::EStream(); + } + } + else + { +#ifdef NL_DEBUG_STORAGE + nldebug("No input or output, should not happen, throw exception"); +#endif + throw NLMISC::EStream(); + } +} + +void CStorageStream::serialBit(bool &bit) +{ + uint8 var = (uint8)bit; + serial(var); + bit = (bool)var; +} + +bool CStorageStream::eof() +{ + if (m_Input) + { + return gsf_input_eof(m_Input); + } + else + { +#ifdef NL_DEBUG_STORAGE + nldebug("No input, this function cannot output, throw exception"); +#endif + throw NLMISC::EStream(); + } +} + +sint32 CStorageStream::size() +{ + if (m_Input) + { + gsf_off_t res = gsf_input_size(m_Input); + if (res < 2147483647L) // exception when larger + return (sint32)res; + } + else + { +#ifdef NL_DEBUG_STORAGE + nldebug("No input, this function cannot output, throw exception"); +#endif + throw NLMISC::EStream(); + } + throw NLMISC::EStream(); +} + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_stream.h b/code/nel/tools/3d/pipeline_max/storage_stream.h new file mode 100644 index 000000000..e50a611d0 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_stream.h @@ -0,0 +1,84 @@ +/** + * \file storage_stream.h + * \brief CStorageStream + * \date 2012-08-16 22:06GMT + * \author Jan Boon (Kaetemi) + * CStorageStream + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_STORAGE_STREAM_H +#define PIPELINE_STORAGE_STREAM_H +#include + +// STL includes +#include + +// 3rd Party includes +#include +#include + +// NeL includes +#include + +// Project includes + +namespace PIPELINE { +namespace MAX { + +/** + * \brief CStorageStream + * \date 2012-08-16 22:06GMT + * \author Jan Boon (Kaetemi) + * CStorageStream + */ +class CStorageStream : public NLMISC::IStream +{ +public: + CStorageStream(GsfInput *input); + CStorageStream(GsfOutput *output); + virtual ~CStorageStream(); + + virtual bool seek(sint32 offset, TSeekOrigin origin) const; + virtual sint32 getPos() const; + // virtual std::string getStreamName() const; // char const * gsf_input_name (GsfInput *input); + virtual void serialBuffer(uint8 *buf, uint len); + virtual void serialBit(bool &bit); + + sint32 size(); + bool eof(); + +private: + GsfInput *m_Input; + GsfOutput *m_Output; + +/* there exist compressed max files, so maybe we will need this at some point +GsfInput * gsf_input_uncompress (GsfInput *src); +*/ + +}; /* class CStorageStream */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_STORAGE_STREAM_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_value.cpp b/code/nel/tools/3d/pipeline_max/storage_value.cpp new file mode 100644 index 000000000..3927be681 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_value.cpp @@ -0,0 +1,89 @@ +/** + * \file storage_value.cpp + * \brief CStorageValue + * \date 2012-08-18 15:00GMT + * \author Jan Boon (Kaetemi) + * CStorageValue + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "storage_value.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +template <> +void CStorageValue::serial(NLMISC::IStream &stream) +{ + stream.serialBuffer(static_cast(static_cast(&Value[0])), Value.size()); +} + +template <> +void CStorageValue::serial(NLMISC::IStream &stream) +{ + stream.serialBuffer(static_cast(static_cast(&Value[0])), Value.size() * 2); +} + +template <> +void CStorageValue::toString(std::ostream &ostream, const std::string &pad) const +{ + ostream << "(" << className() << ") { " << Value.toUtf8() << " } "; +} + +template <> +void CStorageValue::setSize(sint32 size) +{ + Value.resize(size); +} + +template <> +void CStorageValue::setSize(sint32 size) +{ + Value.resize(size / 2); +} + +template <> +bool CStorageValue::getSize(sint32 &size) const +{ + return Value.size(); +} + +template <> +bool CStorageValue::getSize(sint32 &size) const +{ + return Value.size() * 2; +} + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/storage_value.h b/code/nel/tools/3d/pipeline_max/storage_value.h new file mode 100644 index 000000000..cce8c4bce --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/storage_value.h @@ -0,0 +1,124 @@ +/** + * \file storage_value.h + * \brief CStorageValue + * \date 2012-08-18 15:00GMT + * \author Jan Boon (Kaetemi) + * CStorageValue + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_STORAGE_VALUE_H +#define PIPELINE_STORAGE_VALUE_H +#include + +// STL includes + +// NeL includes +#include +#include + +// Project includes +#include "storage_object.h" + +namespace PIPELINE { +namespace MAX { + +template +class CStorageValue : public IStorageObject +{ +public: + // public data + typedef T TType; + TType Value; + + // inherited + virtual std::string className() const; + virtual void serial(NLMISC::IStream &stream); + virtual void toString(std::ostream &ostream, const std::string &pad = "") const; + +public: // should be protected but that doesn't compile, nice c++! + // Sets size when reading + virtual void setSize(sint32 size); + // Gets the size when writing, return false if unknown + virtual bool getSize(sint32 &size) const; +}; + +template +std::string CStorageValue::className() const +{ + return "CStorageValue"; +} + +template +void CStorageValue::serial(NLMISC::IStream &stream) +{ + stream.serial(Value); +} + +template <> +void CStorageValue::serial(NLMISC::IStream &stream); + +template <> +void CStorageValue::serial(NLMISC::IStream &stream); + +template +void CStorageValue::toString(std::ostream &ostream, const std::string &pad) const +{ + std::string s = NLMISC::toString(Value); + ostream << "(" << className() << ") { " << s << " } "; +} + +template <> +void CStorageValue::toString(std::ostream &ostream, const std::string &pad) const; + +template +void CStorageValue::setSize(sint32 size) +{ + if (size != sizeof(Value)) + nlerror("Size does not match value type"); + IStorageObject::setSize(size); +} + +template <> +void CStorageValue::setSize(sint32 size); + +template <> +void CStorageValue::setSize(sint32 size); + +template +bool CStorageValue::getSize(sint32 &size) const +{ + size = sizeof(Value); + return true; +} + +template <> +bool CStorageValue::getSize(sint32 &size) const; + +template <> +bool CStorageValue::getSize(sint32 &size) const; + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_STORAGE_VALUE_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/super_class_desc.cpp b/code/nel/tools/3d/pipeline_max/super_class_desc.cpp new file mode 100644 index 000000000..934a04eea --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/super_class_desc.cpp @@ -0,0 +1,49 @@ +/** + * \file super_class_desc.cpp + * \brief CSuperClassDesc + * \date 2012-08-22 11:19GMT + * \author Jan Boon (Kaetemi) + * CSuperClassDesc + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "super_class_desc.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +// using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +void nyannyannyan() { } + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/super_class_desc.h b/code/nel/tools/3d/pipeline_max/super_class_desc.h new file mode 100644 index 000000000..f4df5e857 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/super_class_desc.h @@ -0,0 +1,107 @@ +/** + * \file super_class_desc.h + * \brief CSuperClassDesc + * \date 2012-08-22 11:19GMT + * \author Jan Boon (Kaetemi) + * CSuperClassDesc + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_SUPER_CLASS_DESC_H +#define PIPELINE_SUPER_CLASS_DESC_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "scene_class_unknown.h" + +namespace PIPELINE { +namespace MAX { + +/** + * \brief ISuperClassDesc + * \date 2012-08-22 09:42GMT + * \author Jan Boon (Kaetemi) + * ISuperClassDesc + */ +class ISuperClassDesc +{ +public: + /// Create an unknown class that inherits from this superclass + virtual CSceneClass *createUnknown(CScene *scene, const NLMISC::CClassId classId, const ucstring &displayName, const ucstring &dllFilename, const ucstring &dllDescription) const = 0; + /// Get an internal name associated with unknown classes of this superclass + virtual const char *internalNameUnknown() const = 0; + /// Gets the associated super class id, may be different from classDesc()->superClassId() for non-implemented superclasses + virtual TSClassId superClassId() const = 0; + /// Return the class description that directly implements this superclass + virtual const ISceneClassDesc *classDesc() const = 0; + +}; /* class ISceneClassDesc */ + +/** + * \brief CSuperClassDesc + * \date 2012-08-22 09:42GMT + * \author Jan Boon (Kaetemi) + * ISuperClassDesc + */ +template +class CSuperClassDesc : public ISuperClassDesc +{ +public: + CSuperClassDesc(const ISceneClassDesc *classDesc) : m_ClassDesc(classDesc) { } + virtual CSceneClass *createUnknown(CScene *scene, const NLMISC::CClassId classId, const ucstring &displayName, const ucstring &dllFilename, const ucstring &dllDescription) const { return static_cast(new CSceneClassUnknown(scene, classId, m_ClassDesc->superClassId(), displayName,internalNameUnknown(), dllFilename, dllDescription)); } + virtual const char *internalNameUnknown() const { return T::InternalNameUnknown; } + virtual TSClassId superClassId() const { return m_ClassDesc->superClassId(); } + virtual const ISceneClassDesc *classDesc() const { return m_ClassDesc; } +private: + const ISceneClassDesc *m_ClassDesc; +}; /* class ISceneClassDesc */ + +/** + * \brief CSuperClassDescUnknown + * \date 2012-08-22 09:42GMT + * \author Jan Boon (Kaetemi) + * Template for non-implemented superclass descriptions + */ +template +class CSuperClassDescUnknown : public ISuperClassDesc +{ +public: + CSuperClassDescUnknown(const ISceneClassDesc *classDesc, const char *internalNameUnknown) : m_ClassDesc(classDesc), m_InternalNameUnknown(internalNameUnknown) { } + virtual CSceneClass *createUnknown(CScene *scene, const NLMISC::CClassId classId, const ucstring &displayName, const ucstring &dllFilename, const ucstring &dllDescription) const { return static_cast(new CSceneClassUnknown(scene, classId, SuperClassId, displayName,internalNameUnknown(), dllFilename, dllDescription)); } + virtual const char *internalNameUnknown() const { return m_InternalNameUnknown; } + virtual TSClassId superClassId() const { return SuperClassId; } + virtual const ISceneClassDesc *classDesc() const { return m_ClassDesc; } +private: + const ISceneClassDesc *m_ClassDesc; + const char *m_InternalNameUnknown; + +}; /* class ISceneClassDesc */ + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_SUPER_CLASS_DESC_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/typedefs.cpp b/code/nel/tools/3d/pipeline_max/typedefs.cpp new file mode 100644 index 000000000..175eb4e57 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/typedefs.cpp @@ -0,0 +1,49 @@ +/** + * \file typedefs.cpp + * \brief CTypeDefs + * \date 2012-08-21 12:14GMT + * \author Jan Boon (Kaetemi) + * CTypeDefs + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "typedefs.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { + +void blahblahblah_typedefs() { } + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/typedefs.h b/code/nel/tools/3d/pipeline_max/typedefs.h new file mode 100644 index 000000000..d88a7d8c1 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/typedefs.h @@ -0,0 +1,61 @@ +/** + * \file typedefs.h + * \brief CTypeDefs + * \date 2012-08-21 12:14GMT + * \author Jan Boon (Kaetemi) + * CTypeDefs + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_TYPEDEFS_H +#define PIPELINE_TYPEDEFS_H +#include + +// STL includes + +// NeL includes + +// Project includes + +namespace PIPELINE { +namespace MAX { + +// Don't really care about superclass IDs right now, but we have to. +typedef uint32 TSClassId; + +// Application versions +const uint16 VersionUnknown = 0x0000; +const uint16 Version3 = 0x2004; +const uint16 Version4 = 0x2006; +const uint16 Version5 = 0x2008; +const uint16 Version6 = 0x2009; +const uint16 Version7 = 0x200A; +const uint16 Version8 = 0x200B; +const uint16 Version9 = 0x200E; +const uint16 Version2008 = 0x200F; +const uint16 Version2010 = 0x2012; + +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_TYPEDEFS_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/update1/editable_mesh.cpp b/code/nel/tools/3d/pipeline_max/update1/editable_mesh.cpp new file mode 100644 index 000000000..303cf9123 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/update1/editable_mesh.cpp @@ -0,0 +1,196 @@ +/** + * \file editable_mesh.cpp + * \brief CEditableMesh + * \date 2012-08-26 12:11GMT + * \author Jan Boon (Kaetemi) + * CEditableMesh + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "editable_mesh.h" + +// STL includes +#include + +// NeL includes +// #include + +// Project includes +#include "update1.h" + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace UPDATE1 { + +CEditableMesh::CEditableMesh(CScene *scene) : CTriObject(scene) +{ + +} + +CEditableMesh::~CEditableMesh() +{ + if (!m_ChunksOwnsPointers) + { + for (TStorageObjectContainer::iterator it = m_EditableMeshUnknown.begin(), end = m_EditableMeshUnknown.end(); it != end; ++it) + delete it->second; + m_EditableMeshUnknown.clear(); + } +} + +const ucstring CEditableMesh::DisplayName = ucstring("EditableMesh"); +const char *CEditableMesh::InternalName = "EditableMesh"; +const NLMISC::CClassId CEditableMesh::ClassId = NLMISC::CClassId(0xe44f10b3, 0x00000000); +const TSClassId CEditableMesh::SuperClassId = CTriObject::SuperClassId; +const CEditableMeshClassDesc EditableMeshClassDesc(&DllPluginDescUpdate1); + +void CEditableMesh::parse(uint16 version, uint filter) +{ + CTriObject::parse(version); + + IStorageObject *so; + so = getChunk(0x3001); + if (so) + { + m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x3001, so)); + for (; ; ) + { + if (peekChunk() == 0x2845) + { + so = getChunk(0x2845); + m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x2845, so)); + } + else if (peekChunk() == 0x2846) + { + so = getChunk(0x2846); + m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x2846, so)); + } + else if (peekChunk() == 0x2847) + { + so = getChunk(0x2847); + m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x2847, so)); + } + else break; + } + } + for (; ; ) + { + so = getChunk(0x3003); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x3003, so)); + else break; + so = getChunk(0x3004); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x3004, so)); + } + so = getChunk(0x3002); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x3002, so)); + so = getChunk(0x4020); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x4020, so)); + so = getChunk(0x4024); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x4024, so)); + so = getChunk(0x4025); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x4025, so)); + so = getChunk(0x4026); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x4026, so)); + so = getChunk(0x402c); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x402c, so)); + so = getChunk(0x402d); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x402d, so)); + so = getChunk(0x4030); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x4030, so)); + so = getChunk(0x4034); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x4034, so)); + so = getChunk(0x4038); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x4038, so)); + so = getChunk(0x403b); + if (so) m_EditableMeshUnknown.push_back(TStorageObjectWithId(0x403b, so)); + + CTriObject::parse(version, PMB_TRI_OBJECT_PARSE_FILTER); +} + +void CEditableMesh::clean() +{ + CTriObject::clean(); +} + +void CEditableMesh::build(uint16 version, uint filter) +{ + CTriObject::build(version); + + for (TStorageObjectContainer::iterator it = m_EditableMeshUnknown.begin(), end = m_EditableMeshUnknown.end(); it != end; ++it) + putChunk(it->first, it->second); + + CTriObject::build(version, PMB_TRI_OBJECT_PARSE_FILTER); +} + +void CEditableMesh::disown() +{ + m_EditableMeshUnknown.clear(); + CTriObject::disown(); +} + +void CEditableMesh::init() +{ + CTriObject::init(); +} + +bool CEditableMesh::inherits(const NLMISC::CClassId classId) const +{ + if (classId == classDesc()->classId()) return true; + return CTriObject::inherits(classId); +} + +const ISceneClassDesc *CEditableMesh::classDesc() const +{ + return &EditableMeshClassDesc; +} + +void CEditableMesh::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const +{ + CTriObject::toStringLocal(ostream, pad); + + std::string padpad = pad + "\t"; + sint i = 0; + for (TStorageObjectContainer::const_iterator it = m_EditableMeshUnknown.begin(), end = m_EditableMeshUnknown.end(); it != end; ++it) + { + std::stringstream ss; + ss << std::hex << std::setfill('0'); + ss << std::setw(4) << it->first; + ostream << "\n" << pad << "EditableMeshUnkown[" << i << "] 0x" << ss.str() << ": "; + it->second->toString(ostream, padpad); + ++i; + } + + CTriObject::toStringLocal(ostream, pad, PMB_TRI_OBJECT_PARSE_FILTER); +} + +IStorageObject *CEditableMesh::createChunkById(uint16 id, bool container) +{ + return CTriObject::createChunkById(id, container); +} + +} /* namespace UPDATE1 */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/update1/editable_mesh.h b/code/nel/tools/3d/pipeline_max/update1/editable_mesh.h new file mode 100644 index 000000000..9af1e4660 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/update1/editable_mesh.h @@ -0,0 +1,89 @@ +/** + * \file editable_mesh.h + * \brief CEditableMesh + * \date 2012-08-26 12:11GMT + * \author Jan Boon (Kaetemi) + * CEditableMesh + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_EDITABLE_MESH_H +#define PIPELINE_EDITABLE_MESH_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "../builtin/tri_object.h" + +namespace PIPELINE { +namespace MAX { +namespace UPDATE1 { + +/** + * \brief CEditableMesh + * \date 2012-08-26 12:11GMT + * \author Jan Boon (Kaetemi) + * CEditableMesh + */ +class CEditableMesh : public PIPELINE::MAX::BUILTIN::CTriObject +{ +public: + CEditableMesh(CScene *scene); + virtual ~CEditableMesh(); + + // class desc + static const ucstring DisplayName; + static const char *InternalName; + static const NLMISC::CClassId ClassId; + static const TSClassId SuperClassId; + + // inherited + virtual void parse(uint16 version, uint filter = 0); + virtual void clean(); + virtual void build(uint16 version, uint filter = 0); + virtual void disown(); + virtual void init(); + virtual bool inherits(const NLMISC::CClassId classId) const; + virtual const ISceneClassDesc *classDesc() const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + +protected: + // inherited + virtual IStorageObject *createChunkById(uint16 id, bool container); + +private: + TStorageObjectContainer m_EditableMeshUnknown; + +}; /* class CEditableMesh */ + +typedef CSceneClassDesc CEditableMeshClassDesc; +extern const CEditableMeshClassDesc EditableMeshClassDesc; + +} /* namespace UPDATE1 */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_EDITABLE_MESH_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/update1/update1.cpp b/code/nel/tools/3d/pipeline_max/update1/update1.cpp new file mode 100644 index 000000000..d4c923e9d --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/update1/update1.cpp @@ -0,0 +1,81 @@ +/** + * \file update1.cpp + * \brief CUpdate1 + * \date 2012-08-26 12:11GMT + * \author Jan Boon (Kaetemi) + * CUpdate1 + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "update1.h" + +// STL includes + +// NeL includes +// #include + +// Project includes +#include "../scene_class_registry.h" + +#include "editable_mesh.h" + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { +namespace MAX { +namespace UPDATE1 { + +CUpdate1::CUpdate1() +{ + +} + +CUpdate1::~CUpdate1() +{ + +} + +void CUpdate1::registerClasses(CSceneClassRegistry *registry) +{ + registry->add(&EditableMeshClassDesc); +} + +const ucchar *CDllPluginDescUpdate1::displayName() const +{ + static const ucstring value = ucstring("Editable Mesh Object (Ryzom Core)"); + return value.c_str(); +} + +const ucchar *CDllPluginDescUpdate1::internalName() const +{ + static const ucstring value = ucstring("update1.dlo"); + return value.c_str(); +} + +const CDllPluginDescUpdate1 DllPluginDescUpdate1; + +} /* namespace UPDATE1 */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/update1/update1.h b/code/nel/tools/3d/pipeline_max/update1/update1.h new file mode 100644 index 000000000..a3727e982 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/update1/update1.h @@ -0,0 +1,84 @@ +/** + * \file update1.h + * \brief CUpdate1 + * \date 2012-08-26 12:11GMT + * \author Jan Boon (Kaetemi) + * CUpdate1 + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_UPDATE1_H +#define PIPELINE_UPDATE1_H +#include + +// STL includes + +// NeL includes + +// Project includes +#include "../dll_plugin_desc.h" + +namespace PIPELINE { +namespace MAX { + +class CSceneClassRegistry; + +namespace UPDATE1 { + +/** + * \brief CUpdate1 + * \date 2012-08-26 12:11GMT + * \author Jan Boon (Kaetemi) + * CUpdate1 + */ +class CUpdate1 +{ +public: + static void registerClasses(CSceneClassRegistry *registry); + +public: + CUpdate1(); + virtual ~CUpdate1(); + +}; /* class CUpdate1 */ + +/** + * \brief CDllPluginDescUpdate1 + * \date 2012-08-26 12:03GMT + * \author Jan Boon (Kaetemi) + * CDllPluginDescUpdate1 + */ +class CDllPluginDescUpdate1 : public IDllPluginDescInternal +{ +public: + virtual const ucchar *displayName() const; + virtual const ucchar *internalName() const; +}; /* class CDllPluginDescScript */ + +extern const CDllPluginDescUpdate1 DllPluginDescUpdate1; + +} /* namespace UPDATE1 */ +} /* namespace MAX */ +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_UPDATE1_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/wsm_derived_object.cpp b/code/nel/tools/3d/pipeline_max/wsm_derived_object.cpp new file mode 100644 index 000000000..864d3a4f4 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/wsm_derived_object.cpp @@ -0,0 +1,55 @@ +/** + * \file wsm_derived_object.cpp + * \brief CWSMDerivedObject + * \date 2012-08-26 12:05GMT + * \author Jan Boon (Kaetemi) + * CWSMDerivedObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include "wsm_derived_object.h" + +// STL includes + +// NeL includes +// #include + +// Project includes + +using namespace std; +// using namespace NLMISC; + +namespace PIPELINE { + +CWSMDerivedObject::CWSMDerivedObject() +{ + +} + +CWSMDerivedObject::~CWSMDerivedObject() +{ + +} + +} /* namespace PIPELINE */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max/wsm_derived_object.h b/code/nel/tools/3d/pipeline_max/wsm_derived_object.h new file mode 100644 index 000000000..fe0984733 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max/wsm_derived_object.h @@ -0,0 +1,63 @@ +/** + * \file wsm_derived_object.h + * \brief CWSMDerivedObject + * \date 2012-08-26 12:05GMT + * \author Jan Boon (Kaetemi) + * CWSMDerivedObject + */ + +/* + * Copyright (C) 2012 by authors + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#ifndef PIPELINE_WSM_DERIVED_OBJECT_H +#define PIPELINE_WSM_DERIVED_OBJECT_H +#include + +// STL includes + +// NeL includes + +// Project includes + +namespace PIPELINE { + +/** + * \brief CWSMDerivedObject + * \date 2012-08-26 12:05GMT + * \author Jan Boon (Kaetemi) + * CWSMDerivedObject + */ +class CWSMDerivedObject +{ +protected: + // pointers + // ... + + // instances + // ... +public: + CWSMDerivedObject(); + virtual ~CWSMDerivedObject(); +}; /* class CWSMDerivedObject */ + +} /* namespace PIPELINE */ + +#endif /* #ifndef PIPELINE_WSM_DERIVED_OBJECT_H */ + +/* end of file */ diff --git a/code/nel/tools/3d/pipeline_max_dump/CMakeLists.txt b/code/nel/tools/3d/pipeline_max_dump/CMakeLists.txt new file mode 100644 index 000000000..d079d9000 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_dump/CMakeLists.txt @@ -0,0 +1,36 @@ + +FIND_PACKAGE(LIBGSF) + +IF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) + MESSAGE(FATAL_ERROR "LIBGSF not found!") +ENDIF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) + +FIND_PACKAGE(GLIB2) + +if (NOT GLIB2_FOUND) + MESSAGE(FATAL_ERROR "GLIB2 not found!") +ENDIF (NOT GLIB2_FOUND) + +INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${LIBGSF_INCLUDE_DIR}) + +FILE(GLOB SRCS *.cpp) +FILE(GLOB HDRS *.h) + +ADD_EXECUTABLE(pipeline_max_dump + ${SRCS} + ${HDRS} + ) + +TARGET_LINK_LIBRARIES(pipeline_max_dump + ${LIBGSF_LIBRARIES} + ${GLIB2_LIBRARIES} + pipeline_max + nelmisc +) + +NL_DEFAULT_PROPS(pipeline_max_dump "NeL, Tools, 3D: Pipeline Max Dump (Temporary Tool)") +NL_ADD_RUNTIME_FLAGS(pipeline_max_dump) + +INSTALL(TARGETS pipeline_max_dump RUNTIME DESTINATION bin COMPONENT toolsmisc) + diff --git a/code/nel/tools/3d/pipeline_max_dump/class_directory_3_2010.c b/code/nel/tools/3d/pipeline_max_dump/class_directory_3_2010.c new file mode 100644 index 000000000..e1bb93e8d --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_dump/class_directory_3_2010.c @@ -0,0 +1,352 @@ +Pipeline Max Dump (Temporary Tool) +/home/kaetemi/source/minimax/GE_Acc_MikotoBaniere.max +ClassDirectory3 +(ClassDirectory3) [57] { +0 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000082) + SuperClassID: 130 } + 1 0x2042: (CStorageValue) { ParamBlock2 } } +1 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 0 + ClassID: (0x30420c1e, 0x5a06293c) + SuperClassID: 4448 } + 1 0x2042: (CStorageValue) { ViewportManager } } +2 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 1 + ClassID: (0x25dc8980, 0x218ab459) + SuperClassID: 4448 } + 1 0x2042: (CStorageValue) { mental ray: material custom attribute } } +3 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 2 + ClassID: (0x23b708db, 0x5ddb3626) + SuperClassID: 256 } + 1 0x2042: (CStorageValue) { CustAttribContainer } } +4 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00001200) + SuperClassID: 4224 } + 1 0x2042: (CStorageValue) { Texmaps } } +5 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00000038) + SuperClassID: 4272 } + 1 0x2042: (CStorageValue) { Blinn } } +6 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000008) + SuperClassID: 8 } + 1 0x2042: (CStorageValue) { ParamBlock } } +7 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 4 + ClassID: (0x00000000, 0x25773211) + SuperClassID: 4368 } + 1 0x2042: (CStorageValue) { Max 2.5 Star } } +8 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00000002) + SuperClassID: 3072 } + 1 0x2042: (CStorageValue) { Standard } } +9 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002007) + SuperClassID: 36867 } + 1 0x2042: (CStorageValue) { Bezier Float } } +10 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 5 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 3104 } + 1 0x2042: (CStorageValue) { Placement } } +11 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 5 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 3136 } + 1 0x2042: (CStorageValue) { Output } } +12 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00000240) + SuperClassID: 3088 } + 1 0x2042: (CStorageValue) { Bitmap } } +13 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -2 + ClassID: (0x222b9eb9, 0x64c75fec) + SuperClassID: 3072 } + 1 0x2042: (CStorageValue) { NeL Material } } +14 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000c80) + SuperClassID: 256 } + 1 0x2042: (CStorageValue) { Material Editor } } +15 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00003333) + SuperClassID: 256 } + 1 0x2042: (CStorageValue) { MtlBaseLib } } +16 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 6 + ClassID: (0x5b918e4e, 0x476fa9de) + SuperClassID: 3328 } + 1 0x2042: (CStorageValue) { WaveMaster } } +17 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 6 + ClassID: (0x5b918e4a, 0x476fa9de) + SuperClassID: 3328 } + 1 0x2042: (CStorageValue) { ProSound } } +18 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000002) + SuperClassID: 1 } + 1 0x2042: (CStorageValue) { RootNode } } +19 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002008) + SuperClassID: 36875 } + 1 0x2042: (CStorageValue) { Bezier Position } } +20 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00442313) + SuperClassID: 36876 } + 1 0x2042: (CStorageValue) { TCB Rotation } } +21 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002010) + SuperClassID: 36877 } + 1 0x2042: (CStorageValue) { Bezier Scale } } +22 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002005) + SuperClassID: 36872 } + 1 0x2042: (CStorageValue) { Position/Rotation/Scale } } +23 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x0d9c20ff) + SuperClassID: 36880 } + 1 0x2042: (CStorageValue) { Master Point Controller } } +24 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 7 + ClassID: (0x192f6098, 0x1bf8338d) + SuperClassID: 16 } + 1 0x2042: (CStorageValue) { Editable Poly } } +25 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x1dba1df0, 0x7e9858fe) + SuperClassID: 4336 } + 1 0x2042: (CStorageValue) { Base Layer } } +26 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 1 } + 1 0x2042: (CStorageValue) { Node } } +27 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 8 + ClassID: (0x00000000, 0x77912301) + SuperClassID: 4256 } + 1 0x2042: (CStorageValue) { Area } } +28 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 9 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 3840 } + 1 0x2042: (CStorageValue) { Default Scanline Renderer } } +29 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x06546546, 0x46576167) + SuperClassID: 512 } + 1 0x2042: (CStorageValue) { RenderElementMgr } } +30 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002011) + SuperClassID: 36869 } + 1 0x2042: (CStorageValue) { Bezier Color } } +31 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0xee448b23) + SuperClassID: 4112 } + 1 0x2042: (CStorageValue) { RenderEnvironment } } +32 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00008d52) + SuperClassID: 256 } + 1 0x2042: (CStorageValue) { NamedSelSetList } } +33 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x90f2ee71, 0x8d73b8aa) + SuperClassID: 512 } + 1 0x2042: (CStorageValue) { TVNode } } +34 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1000) + SuperClassID: 36867 } + 1 0x2042: (CStorageValue) { Float List } } +35 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1001) + SuperClassID: 36869 } + 1 0x2042: (CStorageValue) { Point3 List } } +36 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1005) + SuperClassID: 36882 } + 1 0x2042: (CStorageValue) { Point4 List } } +37 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1002) + SuperClassID: 36875 } + 1 0x2042: (CStorageValue) { Position List } } +38 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1003) + SuperClassID: 36876 } + 1 0x2042: (CStorageValue) { Rotation List } } +39 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1004) + SuperClassID: 36877 } + 1 0x2042: (CStorageValue) { Scale List } } +40 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1015) + SuperClassID: 36881 } + 1 0x2042: (CStorageValue) { Block Control } } +41 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 11 + ClassID: (0x11793bed, 0x1f8c3646) + SuperClassID: 36867 } + 1 0x2042: (CStorageValue) { Block Manager Wrapper } } +42 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 12 + ClassID: (0x7620792b, 0x5a1b661e) + SuperClassID: 36867 } + 1 0x2042: (CStorageValue) { Propagation Manager Wrapper } } +43 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 13 + ClassID: (0xf4044794, 0x368d1139) + SuperClassID: 36867 } + 1 0x2042: (CStorageValue) { Scene Effect Loader } } +44 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 14 + ClassID: (0x087906d7, 0x294a389c) + SuperClassID: 256 } + 1 0x2042: (CStorageValue) { Reaction Manager } } +45 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 15 + ClassID: (0x265a2326, 0x28250b30) + SuperClassID: 4448 } + 1 0x2042: (CStorageValue) { ParameterCollectorCA } } +46 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 16 + ClassID: (0x01513165, 0x4a0c66e1) + SuperClassID: 2912 } + 1 0x2042: (CStorageValue) { } } +47 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x2c1a0a7b, 0x0c6f6387) + SuperClassID: 36879 } + 1 0x2042: (CStorageValue) { SceneAppData Latch } } +48 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 17 + ClassID: (0x68c22d6f, 0x5bf94f11) + SuperClassID: 2912 } + 1 0x2042: (CStorageValue) { BitmapPagerData } } +49 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x781f1430, 0x0f4871a5) + SuperClassID: 36879 } + 1 0x2042: (CStorageValue) { MasterLayerControlManager } } +50 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 18 + ClassID: (0x30935afc, 0x57a52b8c) + SuperClassID: 36879 } + 1 0x2042: (CStorageValue) { Max Mixer Clip } } +51 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 4294966784 } + 1 0x2042: (CStorageValue) { Grid Reference } } +52 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x17356912) + SuperClassID: 4240 } + 1 0x2042: (CStorageValue) { RenderEffects } } +53 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: 9 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 4304 } + 1 0x2042: (CStorageValue) { Shadow Map } } +54 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x51ff028e, 0x0d7374fc) + SuperClassID: 512 } + 1 0x2042: (CStorageValue) { Layer Manager } } +55 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x2cf03595) + SuperClassID: 256 } + 1 0x2042: (CStorageValue) { TrackSetList } } +56 0x2040: (ClassEntry) [2] { + 0 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002222) + SuperClassID: 256 } + 1 0x2042: (CStorageValue) { Scene } } } + + +------------------ +(program exited with code: 0) +Press return to continue + diff --git a/code/nel/tools/3d/pipeline_max_dump/class_directory_3_3.c b/code/nel/tools/3d/pipeline_max_dump/class_directory_3_3.c new file mode 100644 index 000000000..65907682d --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_dump/class_directory_3_3.c @@ -0,0 +1,346 @@ +Pipeline Max Dump (Temporary Tool) +/srv/work/database/interfaces/anims_max/cp_fy_hof_species.max +ClassDirectory3 +(ClassDirectory3) { +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002007) + SuperClassID: 36867 } + 0x2042: (CStorageValue) { Bezier Float } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000008) + SuperClassID: 8 } + 0x2042: (CStorageValue) { ParamBlock } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 0 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 3104 } + 0x2042: (CStorageValue) { Placement } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000082) + SuperClassID: 130 } + 0x2042: (CStorageValue) { ParamBlock2 } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 0 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 3136 } + 0x2042: (CStorageValue) { Output } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 1 + ClassID: (0x00000000, 0x00000240) + SuperClassID: 3088 } + 0x2042: (CStorageValue) { Bitmap } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 1 + ClassID: (0x00000000, 0x00001200) + SuperClassID: 4224 } + 0x2042: (CStorageValue) { Texmaps } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 1 + ClassID: (0x00000000, 0x00000037) + SuperClassID: 4272 } + 0x2042: (CStorageValue) { Phong } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 2 + ClassID: (0x00000000, 0x25773211) + SuperClassID: 4368 } + 0x2042: (CStorageValue) { Max 2.5 Star } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 1 + ClassID: (0x00000000, 0x00000002) + SuperClassID: 3072 } + 0x2042: (CStorageValue) { Standard } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -2 + ClassID: (0x043e0955, 0x5a8003f9) + SuperClassID: 3088 } + 0x2042: (CStorageValue) { Nel Multi Bitmap } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 1 + ClassID: (0x00000000, 0x00000038) + SuperClassID: 4272 } + 0x2042: (CStorageValue) { Blinn } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x938f3e43, 0x984b8d27) + SuperClassID: 36867 } + 0x2042: (CStorageValue) { On/Off } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -2 + ClassID: (0x222b9eb9, 0x64c75fec) + SuperClassID: 3072 } + 0x2042: (CStorageValue) { NeL Material } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 1 + ClassID: (0x00000000, 0x00000200) + SuperClassID: 3072 } + 0x2042: (CStorageValue) { Multi/Sub-Object } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000c80) + SuperClassID: 256 } + 0x2042: (CStorageValue) { Material Editor } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00003333) + SuperClassID: 256 } + 0x2042: (CStorageValue) { MtlBaseLib } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 3328 } + 0x2042: (CStorageValue) { Default Sound } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000002) + SuperClassID: 1 } + 0x2042: (CStorageValue) { RootNode } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002008) + SuperClassID: 36875 } + 0x2042: (CStorageValue) { Bezier Position } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00442313) + SuperClassID: 36876 } + 0x2042: (CStorageValue) { TCB Rotation } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002010) + SuperClassID: 36877 } + 0x2042: (CStorageValue) { Bezier Scale } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002005) + SuperClassID: 36872 } + 0x2042: (CStorageValue) { Position/Rotation/Scale } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 4 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 2064 } + 0x2042: (CStorageValue) { Physique } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x0d9c20ff) + SuperClassID: 36880 } + 0x2042: (CStorageValue) { Master Point Controller } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 5 + ClassID: (0x00000000, 0xe44f10b3) + SuperClassID: 16 } + 0x2042: (CStorageValue) { Editable Mesh } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x1dba1df0, 0x7e9858fe) + SuperClassID: 4336 } + 0x2042: (CStorageValue) { Base Layer } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 1 } + 0x2042: (CStorageValue) { Node } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 6 + ClassID: (0x00000000, 0x00009155) + SuperClassID: 96 } + 0x2042: (CStorageValue) { Biped } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 6 + ClassID: (0x00000000, 0x00009154) + SuperClassID: 36872 } + 0x2042: (CStorageValue) { BipSlave Control } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 6 + ClassID: (0x00000000, 0x00009156) + SuperClassID: 36872 } + 0x2042: (CStorageValue) { Vertical/Horizontal/Turn } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 6 + ClassID: (0x00000000, 0x00009125) + SuperClassID: 16 } + 0x2042: (CStorageValue) { Biped Object } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 6 + ClassID: (0x00000000, 0x00003011) + SuperClassID: 36872 } + 0x2042: (CStorageValue) { Footsteps } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00876234) + SuperClassID: 80 } + 0x2042: (CStorageValue) { Dummy } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002002) + SuperClassID: 36875 } + 0x2042: (CStorageValue) { Linear Position } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00442312) + SuperClassID: 36875 } + 0x2042: (CStorageValue) { TCB Position } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00442315) + SuperClassID: 36877 } + 0x2042: (CStorageValue) { TCB Scale } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 7 + ClassID: (0x045a6271, 0x2ec82081) + SuperClassID: 2064 } + 0x2042: (CStorageValue) { Map Extender } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 8 + ClassID: (0x00000000, 0x77912301) + SuperClassID: 4256 } + 0x2042: (CStorageValue) { Area } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 9 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 3840 } + 0x2042: (CStorageValue) { Default Scanline Renderer } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002011) + SuperClassID: 36869 } + 0x2042: (CStorageValue) { Bezier Color } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0xee448b23) + SuperClassID: 4112 } + 0x2042: (CStorageValue) { RenderEnvironment } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00008d51) + SuperClassID: 256 } + 0x2042: (CStorageValue) { NodeNamedSelSet } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00008d52) + SuperClassID: 256 } + 0x2042: (CStorageValue) { NamedSelSetList } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x4b4b1000) + SuperClassID: 36867 } + 0x2042: (CStorageValue) { Float List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x4b4b1001) + SuperClassID: 36869 } + 0x2042: (CStorageValue) { Point3 List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x4b4b1002) + SuperClassID: 36875 } + 0x2042: (CStorageValue) { Position List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x4b4b1003) + SuperClassID: 36876 } + 0x2042: (CStorageValue) { Rotation List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x4b4b1004) + SuperClassID: 36877 } + 0x2042: (CStorageValue) { Scale List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x4b4b1015) + SuperClassID: 36881 } + 0x2042: (CStorageValue) { Block Control } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x90f2ee71, 0x8d73b8aa) + SuperClassID: 512 } + 0x2042: (CStorageValue) { TVNode } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 4294966784 } + 0x2042: (CStorageValue) { Grid Reference } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x17356912) + SuperClassID: 4240 } + 0x2042: (CStorageValue) { RenderEffects } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 9 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 4304 } + 0x2042: (CStorageValue) { Shadow Map } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x51ff028e, 0x0d7374fc) + SuperClassID: 0 } + 0x2042: (CStorageValue) { Layer Manager } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002222) + SuperClassID: 256 } + 0x2042: (CStorageValue) { Scene } } } + + +------------------ +(program exited with code: 0) +Press return to continue + diff --git a/code/nel/tools/3d/pipeline_max_dump/config_2010.c b/code/nel/tools/3d/pipeline_max_dump/config_2010.c new file mode 100644 index 000000000..1cd9fed4a --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_dump/config_2010.c @@ -0,0 +1,3691 @@ +Pipeline Max Dump (Temporary Tool) +/home/kaetemi/source/minimax/GE_Acc_MikotoBaniere.max +Config +(Config) [15] { +0x2090: (CStorageValue) { 0 } +0x20e0: (StorageContainer) [4] { + 0x0100: (StorageRaw) { + Size: 12 + String: .. A........ + Hex: 00 00 20 41 0a 00 00 00 01 00 00 00 } + 0x0400: (StorageRaw) { + Size: 8 + String: ........ + Hex: 07 00 00 00 01 00 00 00 } + 0x0200: (StorageRaw) { + Size: 40 + String: ...@.. A................................ + Hex: 00 00 a0 40 00 00 20 41 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 } + 0x0300: (StorageRaw) { + Size: 0 + String: + Hex: } } +0x20a0: (Config20a0) [2] { + 0x0100: (CStorageValue) { 1 } + 0x0110: (Config20a0Entry) [25] { + 0x0100: (CStorageValue) { 220 } + 0x0110: (CStorageValue) { 0 } + 0x0120: (CStorageValue) { 1 } + 0x0130: (CStorageValue) { 0 } + 0x0140: (CStorageValue) { 0 } + 0x0150: (CStorageValue) { 0 } + 0x0160: (CStorageValue) { 1 } + 0x0161: (CStorageValue) { 1 } + 0x0170: (CStorageValue) { 1 } + 0x0180: (CStorageValue) { 0 } + 0x0190: (CStorageValue) { 0 } + 0x0200: (CStorageValue) { 0 } + 0x0210: (CStorageValue) { 0 } + 0x0220: (CStorageValue) { 994352038 } + 0x0230: (CStorageValue) { 1041059807 } + 0x0240: (CStorageValue) { 266338296 } + 0x0250: (CStorageValue) { 131008 } + 0x0260: (CStorageValue) { 0 } + 0x0270: (CStorageValue) { 1 } + 0x0280: (CStorageValue) { 0 } + 0x0310: (CStorageValue) { 0 } + 0x0290: (CStorageValue) { } + 0x0390: (CStorageValue) { default } + 0x0300: (StorageContainer) [1] { + 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } } + 0x0330: (StorageRaw) { + Size: 16 + String: ................ } } } +0x20a5: (StorageContainer) [2] { + 0x0000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0001: (StorageContainer) [87] { + 0x0000: (StorageRaw) { + Size: 4 + String: *... + Hex: 2a 00 00 00 } + 0x0001: (StorageRaw) { + Size: 9 + String: StateName } + 0x0002: (StorageRaw) { + Size: 10 + String: FormStates } + 0x0003: (StorageRaw) { + Size: 12 + String: InstanceName } + 0x0004: (StorageRaw) { + Size: 18 + String: Container Explorer } + 0x0005: (StorageRaw) { + Size: 19 + String: VisibleColumnsCount } + 0x0006: (StorageRaw) { + Size: 1 + String: 7 + Hex: 37 } + 0x0007: (StorageRaw) { + Size: 14 + String: VisibleColumns } + 0x0008: (StorageRaw) { + Size: 133 + String: Name,Container Open,Container Loaded,Container Override,Container Local Definition,Container Source Definition,Container Source Rules } + 0x0009: (StorageRaw) { + Size: 11 + String: ColumnWidth } + 0x000a: (StorageRaw) { + Size: 25 + String: 165,52,63,116,153,169,114 } + 0x000b: (StorageRaw) { + Size: 14 + String: SelectChildren } + 0x000c: (StorageRaw) { + Size: 5 + String: False } + 0x000d: (StorageRaw) { + Size: 14 + String: EditingEnabled } + 0x000e: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x000f: (StorageRaw) { + Size: 13 + String: ShowHierarchy } + 0x0010: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x0011: (StorageRaw) { + Size: 24 + String: AdvancedFilterDataSource } + 0x0012: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x0013: (StorageRaw) { + Size: 21 + String: AdvancedFilterEnabled } + 0x0014: (StorageRaw) { + Size: 5 + String: False } + 0x0015: (StorageRaw) { + Size: 22 + String: AdvancedFilterMatchAll } + 0x0016: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x0017: (StorageRaw) { + Size: 16 + String: FindToolbarState } + 0x0018: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x0019: (StorageRaw) { + Size: 24 + String: ViewSelectorToolbarState } + 0x001a: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x001b: (StorageRaw) { + Size: 21 + String: SelectionToolbarState } + 0x001c: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x001d: (StorageRaw) { + Size: 17 + String: ToolsToolbarState } + 0x001e: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x001f: (StorageRaw) { + Size: 17 + String: DisplayInfluences } + 0x0020: (StorageRaw) { + Size: 5 + String: False } + 0x0021: (StorageRaw) { + Size: 16 + String: SelectInfluences } + 0x0022: (StorageRaw) { + Size: 5 + String: False } + 0x0023: (StorageRaw) { + Size: 16 + String: SelectDependents } + 0x0024: (StorageRaw) { + Size: 5 + String: False } + 0x0025: (StorageRaw) { + Size: 15 + String: FindStyleOption } + 0x0026: (StorageRaw) { + Size: 9 + String: Wildcards } + 0x0027: (StorageRaw) { + Size: 13 + String: ToolBarLayout } + 0x0028: (StorageRaw) { + Size: 10 + String: Horizontal } + 0x0029: (StorageRaw) { + Size: 17 + String: FindCaseSensitive } + 0x002a: (StorageRaw) { + Size: 5 + String: False } + 0x002b: (StorageRaw) { + Size: 13 + String: SyncSelection } + 0x002c: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x002d: (StorageRaw) { + Size: 23 + String: ShowDependenciesEnabled } + 0x002e: (StorageRaw) { + Size: 5 + String: False } + 0x002f: (StorageRaw) { + Size: 25 + String: FilterSelectionSetEnabled } + 0x0030: (StorageRaw) { + Size: 5 + String: False } + 0x0031: (StorageRaw) { + Size: 19 + String: DisplayToolbarState } + 0x0032: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x0033: (StorageRaw) { + Size: 21 + String: ContainerToolbarState } + 0x0034: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x0035: (StorageRaw) { + Size: 15 + String: FormWindowState } + 0x0036: (StorageRaw) { + Size: 6 + String: Normal } + 0x0037: (StorageRaw) { + Size: 8 + String: FormSize } + 0x0038: (StorageRaw) { + Size: 7 + String: 844,355 } + 0x0039: (StorageRaw) { + Size: 12 + String: FormLocation } + 0x003a: (StorageRaw) { + Size: 7 + String: 100,100 } + 0x003b: (StorageRaw) { + Size: 16 + String: ColumnSortStates } + 0x003c: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x003d: (StorageRaw) { + Size: 8 + String: Geometry } + 0x003e: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x003f: (StorageRaw) { + Size: 5 + String: Shape } + 0x0040: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x0041: (StorageRaw) { + Size: 5 + String: Light } + 0x0042: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x0043: (StorageRaw) { + Size: 6 + String: Camera } + 0x0044: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x0045: (StorageRaw) { + Size: 6 + String: Helper } + 0x0046: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x0047: (StorageRaw) { + Size: 9 + String: SpaceWarp } + 0x0048: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x0049: (StorageRaw) { + Size: 5 + String: Group } + 0x004a: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x004b: (StorageRaw) { + Size: 4 + String: Xref + Hex: 58 72 65 66 } + 0x004c: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x004d: (StorageRaw) { + Size: 4 + String: Bone + Hex: 42 6f 6e 65 } + 0x004e: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x004f: (StorageRaw) { + Size: 9 + String: Container } + 0x0050: (StorageRaw) { + Size: 4 + String: True + Hex: 54 72 75 65 } + 0x0051: (StorageRaw) { + Size: 6 + String: Frozen } + 0x0052: (StorageRaw) { + Size: 5 + String: False } + 0x0053: (StorageRaw) { + Size: 6 + String: Hidden } + 0x0054: (StorageRaw) { + Size: 5 + String: False } + 0x0002: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x0003: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } } +0x20a6: (StorageContainer) [1] { + 0x0000: (StorageContainer) [1] { + 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } } } +0x2190: (StorageContainer) [2] { + 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0110: (StorageContainer) [27] { + 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 0e 08 00 00 } + 0x0410: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0420: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0510: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } + 0x0440: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0530: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0110: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x0120: (StorageRaw) { + Size: 16 + String: ................ } + 0x0140: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x0150: (StorageRaw) { + Size: 8 + String: ........ } + 0x0160: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0170: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0210: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0520: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0250: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0260: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0270: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0280: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0290: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 } + 0x0300: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0310: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0320: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x0380: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x0390: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0400: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0540: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0550: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } } } +0x20b0: (StorageContainer) [10] { + 0x0010: (StorageRaw) { + Size: 4 + String: .... + Hex: 1e 00 00 00 } + 0x0020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0030: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0050: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0060: (StorageRaw) { + Size: 4 + String: .%.. + Hex: 80 25 00 00 } + 0x0070: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0100: (StorageContainer) [1] { + 0x0090: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } } + 0x0110: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0120: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } +0x2130: (StorageContainer) [3] { + 0x0100: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x0120: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x0110: (StorageContainer) [4] { + 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0400: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0300: (StorageContainer) [8] { + 0x0100: (StorageRaw) { + Size: 11 + String: ........... + Hex: 07 00 00 00 df f8 fc e8 f0 f8 9d } + 0x0110: (StorageRaw) { + Size: 12 + String: ............ + Hex: 08 00 00 00 dc cf d3 dc c8 d9 df 9d } + 0x0120: (StorageRaw) { + Size: 17 + String: ................. + Hex: 0d 00 00 00 ab a9 ad b0 ad ac ad aa a9 ae ac a8 9d } + 0x0130: (StorageRaw) { + Size: 12 + String: ..,.:.{...J. + Hex: 94 b5 2c 0f 3a c5 7b 02 e9 a7 4a d8 } + 0x0140: (StorageRaw) { + Size: 12 + String: ............ + Hex: 08 00 00 00 d6 fc f8 e9 f8 f0 f4 9d } + 0x0150: (StorageRaw) { + Size: 12 + String: ............ + Hex: 08 00 00 00 d6 dc d8 d9 d8 d1 d1 9d } + 0x0160: (StorageRaw) { + Size: 17 + String: ................. + Hex: 0d 00 00 00 ae a8 a4 b0 ad ab ad aa a9 ab a5 ac 9d } + 0x0170: (StorageRaw) { + Size: 12 + String: %%%-%%%%%%%% } } } } +0x2080: (StorageContainer) [213] { + 0x2801: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2900: (StorageRaw) { + Size: 4 + String: c... + Hex: 63 00 00 00 } + 0x2954: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x2827: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 0a 00 00 } + 0x2828: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 0a 00 00 } + 0x3010: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x3011: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3012: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3013: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3014: (StorageRaw) { + Size: 4 + String: fff? + Hex: 66 66 66 3f } + 0x3015: (StorageRaw) { + Size: 4 + String: fff? + Hex: 66 66 66 3f } + 0x3016: (StorageRaw) { + Size: 4 + String: fff? + Hex: 66 66 66 3f } + 0x3017: (StorageRaw) { + Size: 4 + String: ..L? + Hex: cd cc 4c 3f } + 0x3018: (StorageRaw) { + Size: 4 + String: ..L? + Hex: cd cc 4c 3f } + 0x3019: (StorageRaw) { + Size: 4 + String: ..L? + Hex: cd cc 4c 3f } + 0x301a: (StorageRaw) { + Size: 4 + String: 333? + Hex: 33 33 33 3f } + 0x301b: (StorageRaw) { + Size: 4 + String: 333? + Hex: 33 33 33 3f } + 0x301c: (StorageRaw) { + Size: 4 + String: 333? + Hex: 33 33 33 3f } + 0x301d: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x301e: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x301f: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x3020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3022: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28fa: (StorageRaw) { + Size: 896 + String: ...............?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?................................................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2910: (StorageRaw) { + Size: 80 + String: ...........?...............?...............?.................................... + Hex: 01 00 00 00 0b 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2911: (StorageRaw) { + Size: 80 + String: ...........?...............?...............?...............?.................... + Hex: 01 00 00 00 02 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2912: (StorageRaw) { + Size: 80 + String: ..........5?...>q.....5....>q.........]?...>..........z...I?..zC................ + Hex: 00 00 00 00 07 00 00 00 f3 04 35 3f f2 04 b5 3e 71 c4 1c bf f3 04 35 bf f2 04 b5 3e 71 c4 1c bf 00 00 00 00 d8 b3 5d 3f ff ff ff 3e 00 00 00 00 00 00 00 00 00 00 7a c3 db 0f 49 3f 00 00 7a 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2930: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2931: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x2932: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x2800: (StorageRaw) { + Size: 4 + String: t... + Hex: 74 00 00 00 } + 0x2810: (StorageRaw) { + Size: 80 + String: ...........?...............?...............?..Z:..........C9.................... + Hex: 01 00 00 00 02 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 b4 5a 3a 00 ed 1f ba 00 00 00 00 00 89 43 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2811: (StorageRaw) { + Size: 80 + String: ...........?..............;............?..;................?.................... + Hex: 01 00 00 00 04 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 80 00 00 00 00 2e bd 3b b3 00 00 80 bf 00 00 00 00 00 00 80 3f 2e bd 3b b3 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2812: (StorageRaw) { + Size: 80 + String: ..........;...............;...;3..;....?...'.x_;M.......H.%9.................... + Hex: 01 00 00 00 00 00 00 00 2e bd 3b b3 00 00 00 00 00 00 80 bf 00 00 80 bf 2e bd 3b b3 2e bd 3b 33 2e bd 3b b3 00 00 80 3f ed ad 09 27 00 78 5f 3b 4d b0 c1 bf 00 00 00 00 48 b0 25 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2813: (StorageRaw) { + Size: 80 + String: ..............6.8.:..:;..z*=TD.?.. 78..?W.y.1.R>Qu....k...I?[.n@................ + Hex: 00 00 00 00 07 00 00 00 90 97 2e bf c3 c4 36 bd 38 e1 3a bf a1 3a 3b bf c8 7a 2a 3d 54 44 2e 3f 00 00 20 37 38 86 7f 3f 57 ee 79 bd 31 da 52 3e 51 75 19 bf a4 97 6b c0 db 0f 49 3f 5b 9d 6e 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x3040: (StorageRaw) { + Size: 12 + String: ...@...?...? } + 0x2876: (StorageRaw) { + Size: 76 + String: {.0.0.0.0.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.0.0.0.0.0.0.0.0.}. } + 0x3000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2830: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 00 00 00 } + 0x283a: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x2836: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2840: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28f4: (StorageRaw) { + Size: 4 + String: .... + Hex: ff ff ff ff } + 0x2846: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x4270: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2870: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x2861: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2890: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28a0: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28b1: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x28b5: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c1: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c5: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x28c9: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 00 00 00 } + 0x3030: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 05 00 00 00 } + 0x28cd: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3054: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x305c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3058: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 01 00 } + 0x3060: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3064: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3068: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4080: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x4000: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x4040: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4100: (StorageRaw) { + Size: 40 + String: ........................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x3004: (StorageRaw) { + Size: 12 + String: ..d......... + Hex: d6 cd 64 c0 fa cf c0 c0 00 00 00 00 } + 0x3008: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4110: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x3041: (StorageRaw) { + Size: 12 + String: ...@...?...? } + 0x2877: (StorageRaw) { + Size: 76 + String: {.0.0.0.0.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.0.0.0.0.0.0.0.0.}. } + 0x3001: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2831: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 00 00 00 } + 0x283b: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x2837: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2841: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28f5: (StorageRaw) { + Size: 4 + String: .... + Hex: ff ff ff ff } + 0x2847: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x4271: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2871: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x2862: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2891: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28a1: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28b2: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x28b6: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c2: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c6: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x28ca: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 00 00 00 } + 0x3031: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 05 00 00 00 } + 0x28ce: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3055: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x305d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3059: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 01 00 } + 0x3061: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3065: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3069: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4081: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x4001: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x4041: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4101: (StorageRaw) { + Size: 40 + String: ........................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x3005: (StorageRaw) { + Size: 12 + String: S...Y.&..... + Hex: 53 ea c5 c4 59 c8 26 c5 00 00 00 00 } + 0x3009: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4111: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x3042: (StorageRaw) { + Size: 12 + String: ...@...?...? } + 0x2878: (StorageRaw) { + Size: 76 + String: {.0.0.0.0.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.0.0.0.0.0.0.0.0.}. } + 0x3002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2832: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 00 00 00 } + 0x283c: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x2838: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2842: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28f6: (StorageRaw) { + Size: 4 + String: .... + Hex: ff ff ff ff } + 0x2848: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x4272: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2872: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x2863: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2892: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28a2: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28b3: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x28b7: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c3: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c7: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x28cb: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 00 00 00 } + 0x3032: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 05 00 00 00 } + 0x28cf: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3056: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x305e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x305a: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 01 00 } + 0x3062: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3066: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x306a: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4082: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x4002: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x4042: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4102: (StorageRaw) { + Size: 40 + String: ........................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x3006: (StorageRaw) { + Size: 12 + String: ............ + Hex: 8f 02 87 c0 84 8b e3 c0 00 00 00 00 } + 0x300a: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4112: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x3043: (StorageRaw) { + Size: 12 + String: ...@...?...? } + 0x2879: (StorageRaw) { + Size: 76 + String: {.0.0.0.0.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.0.0.0.0.0.0.0.0.}. } + 0x3003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2833: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x283d: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x2839: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2843: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28f7: (StorageRaw) { + Size: 4 + String: .... + Hex: ff ff ff ff } + 0x2849: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x4273: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x2873: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x2864: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x2893: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28a3: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28b4: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x28b8: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c4: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c8: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x28cc: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 00 00 00 } + 0x3033: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 05 00 00 00 } + 0x28d0: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x3057: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x305f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x305b: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 01 00 } + 0x3063: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x3067: (StorageRaw) { + Size: 4 + String: .... + Hex: a9 f1 83 bd } + 0x306b: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4083: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x4043: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4103: (StorageRaw) { + Size: 40 + String: ........................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x3007: (StorageRaw) { + Size: 12 + String: >....G...... + Hex: 3e c3 2e ba e9 47 93 ba 00 00 00 00 } + 0x300b: (StorageRaw) { + Size: 4 + String: ...? + Hex: 83 f9 a2 3f } + 0x4113: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x2820: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } + 0x2821: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x2826: (StorageRaw) { + Size: 4 + String: F.L. + Hex: 46 00 4c 00 } + 0x2825: (StorageRaw) { + Size: 28 + String: ......................%D.... + Hex: 00 00 00 00 02 00 00 00 04 00 00 00 06 00 00 00 00 00 00 00 00 00 25 44 01 00 00 00 } + 0x3038: (StorageRaw) { + Size: 60 + String: ....................2...>................................... + Hex: 00 00 00 00 00 00 00 00 ff ff ff ff 01 00 00 00 00 00 00 00 32 00 00 00 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 } + 0x4114: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x4115: (StorageRaw) { + Size: 12 + String: ...?...?...? } + 0x4300: (StorageRaw) { + Size: 8 + String: .......? + Hex: 02 00 00 00 00 00 80 3f } + 0x4600: (StorageRaw) { + Size: 32 + String: .. A................(......=fff? + Hex: 00 00 20 41 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 cd cc cc 3d 66 66 66 3f } + 0x4620: (StorageRaw) { + Size: 4 + String: o..: + Hex: 6f 12 83 3a } + 0x4630: (StorageContainer) [1] { + 0x0001: (StorageContainer) [10] { + 0x0002: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 f0 41 } + 0x000c: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d } + 0x0008: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0009: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x000a: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 0x000b: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } } + 0x4620: (StorageRaw) { + Size: 4 + String: o..: + Hex: 6f 12 83 3a } + 0x4630: (StorageContainer) [1] { + 0x0001: (StorageContainer) [10] { + 0x0002: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 f0 41 } + 0x000c: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d } + 0x0008: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0009: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x000a: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 0x000b: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } } + 0x4620: (StorageRaw) { + Size: 4 + String: o..: + Hex: 6f 12 83 3a } + 0x4630: (StorageContainer) [1] { + 0x0001: (StorageContainer) [10] { + 0x0002: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 f0 41 } + 0x000c: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d } + 0x0008: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0009: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x000a: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 0x000b: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } } + 0x4620: (StorageRaw) { + Size: 4 + String: o..: + Hex: 6f 12 83 3a } + 0x4630: (StorageContainer) [1] { + 0x0001: (StorageContainer) [10] { + 0x0002: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 f0 41 } + 0x000c: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d } + 0x0008: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0009: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x000a: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 0x000b: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } } + 0x4640: (StorageRaw) { + Size: 5 + String: ....? + Hex: 01 00 00 80 3f } } +0x20d0: (StorageContainer) [9] { + 0x0005: (StorageRaw) { + Size: 20 + String: .................... + Hex: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0002: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 12 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 12 00 00 } + 0x0010: (StorageRaw) { + Size: 4 + String: .... + Hex: 80 02 00 00 } + 0x0020: (StorageRaw) { + Size: 4 + String: .... + Hex: e0 01 00 00 } + 0x0030: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x0031: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } } +0x2160: (StorageContainer) [5] { + 0x0100: (StorageRaw) { + Size: 12 + String: .......@...@ + Hex: 00 00 00 00 cd cc 0c 40 cd cc 0c 40 } + 0x0200: (StorageRaw) { + Size: 8 + String: ........ + Hex: 01 00 00 00 01 00 00 00 } + 0x0300: (StorageRaw) { + Size: 28 + String: ............................ + Hex: 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 } + 0x0400: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x0500: (StorageRaw) { + Size: 4 + String: .... + Hex: 14 00 00 00 } } +0x21a0: (StorageContainer) [82] { + 0x1a00: (StorageRaw) { + Size: 8 + String: .[&<...9 + Hex: e3 5b 26 3c 1d 15 cd 39 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ..8J$.D: + Hex: bc 04 38 4a 24 06 44 3a } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .{.d.C.. + Hex: 0d 7b c4 64 00 43 b3 1e } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: lL.8.C.. + Hex: 6c 4c e6 38 00 43 b3 1e } + 0x1a02: (StorageContainer) [1] { + 0x1e61: (StorageRaw) { + Size: 4 + String: .... + Hex: 07 00 00 00 } } + 0x1a00: (StorageRaw) { + Size: 8 + String: .+@...,f + Hex: 9d 2b 40 2e 80 14 2c 66 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .6).I@,I + Hex: 14 36 29 01 49 40 2c 49 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ..e[...T + Hex: f1 01 65 5b fc 14 96 54 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .:.Am..M + Hex: e5 3a 89 41 6d 0c 95 4d } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .s.r.w.( + Hex: 11 73 cd 72 0f 77 fb 28 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .Fhi.x.B + Hex: fd 46 68 69 ab 78 9c 42 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .=.=.nH. + Hex: 1b 3d d9 3d 19 6e 48 0e } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: `{.{a... + Hex: 60 7b f7 7b 61 09 13 16 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: _..i\.E` + Hex: 5f ea ad 69 5c 2e 45 60 } + 0x1a02: (StorageContainer) [1] { + 0x0001: (StorageContainer) [23] { + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x001a: (StorageRaw) { + Size: 8 + String: ........ } + 0x001b: (StorageRaw) { + Size: 8 + String: ........ } + 0x001c: (StorageRaw) { + Size: 8 + String: ........ } + 0x001d: (StorageRaw) { + Size: 8 + String: ..... c. + Hex: 00 00 00 00 00 20 63 c0 } + 0x001e: (StorageRaw) { + Size: 8 + String: .....@_@ } + 0x001f: (StorageRaw) { + Size: 8 + String: ..... c@ } + 0x0020: (StorageRaw) { + Size: 8 + String: ........ } + 0x0021: (StorageRaw) { + Size: 8 + String: .......? + Hex: 00 00 00 00 00 00 f0 3f } + 0x0022: (StorageRaw) { + Size: 8 + String: ........ } + 0x0023: (StorageRaw) { + Size: 8 + String: ........ } + 0x0024: (StorageRaw) { + Size: 8 + String: ........ } + 0x0025: (StorageRaw) { + Size: 8 + String: ........ } + 0x0026: (StorageRaw) { + Size: 8 + String: ......F@ + Hex: 00 00 00 00 00 80 46 40 } + 0x0027: (StorageRaw) { + Size: 8 + String: ......F@ + Hex: 00 00 00 00 00 80 46 40 } + 0x0028: (StorageRaw) { + Size: 8 + String: .....@.@ + Hex: 00 00 00 00 00 40 7f 40 } + 0x0029: (StorageRaw) { + Size: 8 + String: .....@.@ + Hex: 00 00 00 00 00 40 7f 40 } + 0x002a: (StorageRaw) { + Size: 8 + String: ........ } + 0x002b: (StorageRaw) { + Size: 8 + String: ........ } + 0x002c: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 00 00 f0 bf } + 0x002d: (StorageRaw) { + Size: 8 + String: ........ } + 0x002e: (StorageRaw) { + Size: 8 + String: .......? + Hex: 00 00 00 00 00 00 f0 3f } + 0x002f: (StorageRaw) { + Size: 8 + String: ........ } } } + 0x1a00: (StorageRaw) { + Size: 8 + String: .....J2 + Hex: 95 87 c1 b0 04 4a 32 20 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .kHE&... + Hex: d4 6b 48 45 26 8a a3 85 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: EULB..KR + Hex: 45 55 4c 42 04 00 4b 52 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .$.X.._h + Hex: c8 24 14 58 b5 0f 5f 68 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .Z.J.d.H + Hex: f4 5a 81 4a 03 64 c5 48 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: s<.j.!.E + Hex: 73 3c 1e 6a 92 21 b7 45 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .54F8He. + Hex: 1d 35 34 46 38 48 65 11 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .oa..r.7 + Hex: db 6f 61 12 9d 72 ef 37 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: $5.z...I + Hex: 24 35 9f 7a b5 04 c8 49 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .{m..'.& + Hex: c3 7b 6d 11 b6 27 82 26 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: En.9$P.. + Hex: 45 6e ba 39 24 50 cf 1f } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: D..TW.+J + Hex: 44 1f dd 54 57 0b 2b 4a } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .=+..Q.o + Hex: 07 3d 2b 1c 04 51 ab 6f } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: F.L1.... + Hex: 46 0d 4c 31 ab 10 07 1c } + 0x1a02: (StorageContainer) [6] { + 0x5000: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x5004: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x5001: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x5002: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x5003: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x5005: (StorageRaw) { + Size: 0 + String: + Hex: } } + 0x1a00: (StorageRaw) { + Size: 8 + String: .....K3! + Hex: 06 97 c1 c0 c4 4b 33 21 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: z+-..~Uk + Hex: 7a 2b 2d 05 b1 7e 55 6b } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: e..D.~J. + Hex: 65 ab d1 44 b4 7e 4a 2e } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: Td.w...g + Hex: 54 64 eb 77 09 dc 05 67 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: I..2G..% + Hex: 49 b4 8e 32 47 89 dc 25 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ...-./.\ + Hex: c1 0a c0 2d 13 2f 9f 5c } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: M[.9~..t + Hex: 4d 5b aa 39 7e 15 c1 74 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ...?tQ.r + Hex: eb c9 b6 3f 74 51 bd 72 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .x.a_..m + Hex: 9d 78 c2 61 5f 02 c3 6d } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: oK.`Y..) + Hex: 6f 4b b7 60 59 08 8c 29 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: a*...... + Hex: 61 2a eb c8 85 c6 c3 8a } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ...W...Y + Hex: dc dc ab 57 dc dc 05 59 } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ..c(A.0[ + Hex: e0 08 63 28 41 9c 30 5b } + 0x1a02: (StorageRaw) { + Size: 0 + String: + Hex: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .<.:..=] + Hex: f3 3c 1c 3a e7 b5 3d 5d } + 0x1a02: (StorageContainer) [1] { + 0x0001: (StorageContainer) [6] { + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0010: (StorageRaw) { + Size: 4 + String: ..pA + Hex: 00 00 70 41 } + 0x0013: (StorageRaw) { + Size: 4 + String: ..HB + Hex: 00 00 48 42 } + 0x0014: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x0015: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 0x0016: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } } } +0x2180: (ConfigScript) [1] { + 0x0040: (ConfigScriptEntry) [2] { + 0x0050: (ConfigScriptHeader) { + SuperClassID: 3072 + ClassID: (0x222b9eb9, 0x64c75fec) } + 0x0007: (ConfigScriptMetaContainer) [10] { + 0x0060: (CStorageValue) { 9 } + 0x0007: (ConfigScriptMetaContainer) [15] { + 0x0060: (CStorageValue) { 14 } + 0x0006: (ConfigScriptMetaString) { nlbp } + 0x0003: (CStorageValue) { 0 } + 0x0003: (CStorageValue) { 1 } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { rollout } + 0x0006: (ConfigScriptMetaString) { nelBasicParameters } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bTwoSided } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { cAmbient } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { color } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { cDiffuse } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { color } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { pOpacity } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { percent } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { cSpecular } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { color } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { pSpecularLevel } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { percent } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { pGlossiness } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { percent } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { cSelfIllumColor } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { color } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { pSelfIllumAmount } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { percent } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bUseSelfIllumColor } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } } } } + 0x0007: (ConfigScriptMetaContainer) [42] { + 0x0060: (CStorageValue) { 41 } + 0x0006: (ConfigScriptMetaString) { main } + 0x0003: (CStorageValue) { 1 } + 0x0003: (CStorageValue) { 2 } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { rollout } + 0x0006: (ConfigScriptMetaString) { NelParams } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bLightMap } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bUnlighted } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbUnlighted } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bStainedGlassWindow } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbStainedGlassWindow } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bAlphaTest } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbAlphaTest } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bForceZWrite } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbForceZWrite } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bForceNoZWrite } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbForceNoZWrite } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bWater } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bWaterUseSceneEnvMapAbove } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbWaterUseSceneEnvMapAbove } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bWaterUseSceneEnvMapUnder } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbWaterUseSceneEnvMapUnder } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { fBumpUScale } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { float } + 0x0006: (ConfigScriptMetaString) { default } + 0x0004: (CStorageValue) { 0.010000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cfBumpUScale } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { fBumpVScale } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { float } + 0x0006: (ConfigScriptMetaString) { default } + 0x0004: (CStorageValue) { 0.010000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cfBumpVScale } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { fBumpUSpeed } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { float } + 0x0006: (ConfigScriptMetaString) { default } + 0x0004: (CStorageValue) { 0.010000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cfBumpUSpeed } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { fBumpVSpeed } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { float } + 0x0006: (ConfigScriptMetaString) { default } + 0x0004: (CStorageValue) { 0.010000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cfBumpVSpeed } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { fDisplaceMapUScale } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { float } + 0x0006: (ConfigScriptMetaString) { default } + 0x0004: (CStorageValue) { 0.005000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cfDisplaceMapUScale } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { fDisplaceMapVScale } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { float } + 0x0006: (ConfigScriptMetaString) { default } + 0x0004: (CStorageValue) { 0.005000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cfDisplaceMapVScale } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { fDisplaceMapUSpeed } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { float } + 0x0006: (ConfigScriptMetaString) { default } + 0x0004: (CStorageValue) { 0.005000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cfDisplaceMapUSpeed } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { fDisplaceMapVSpeed } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { float } + 0x0006: (ConfigScriptMetaString) { default } + 0x0004: (CStorageValue) { 0.005000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cfDisplaceMapVSpeed } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { fWaterHeightFactor } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { float } + 0x0006: (ConfigScriptMetaString) { default } + 0x0004: (CStorageValue) { 1.000000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cfWaterHeightFactor } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iWaterPoolID } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { ciWaterPoolID } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bCalcWaterLightmap } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbCalcWaterLightmap } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bEnableWaterSplash } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbEnableWaterSplash } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bColorVertex } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbColorVertex } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bAlphaVertex } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbAlphaVertex } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaVertexChannel } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { ciAlphaVertexChannel } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bAlphaBlend } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbAlphaBlend } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iBlendSrcFunc } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iBlendDestFunc } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iShader } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { fZBias } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { float } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cfZBias } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iLightMapChannel } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { ciLightMapChannel } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iShaderType } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bUserColor } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bSpecular } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bNormalShader } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bPerPixelLightingShader } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { cUserColor } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { color } + 0x0006: (ConfigScriptMetaString) { default } + 0x0008: (CStorageValue) { 255.000000 0.000000 255.000000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cpUserColor } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bExportTextureMatrix } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbExportTextureMatrix } } } } } + 0x0007: (ConfigScriptMetaContainer) [29] { + 0x0060: (CStorageValue) { 28 } + 0x0006: (ConfigScriptMetaString) { textures } + 0x0003: (CStorageValue) { 2 } + 0x0003: (CStorageValue) { 3 } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { rollout } + 0x0006: (ConfigScriptMetaString) { NelTexture } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bEnableSlot_1 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbEnableSlot_1 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bEnableSlot_2 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbEnableSlot_2 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bEnableSlot_3 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbEnableSlot_3 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bEnableSlot_4 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbEnableSlot_4 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bEnableSlot_5 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbEnableSlot_5 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bEnableSlot_6 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbEnableSlot_6 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bEnableSlot_7 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbEnableSlot_7 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bEnableSlot_8 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbEnableSlot_8 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bTexGen_1 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbTexGen_1 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bTexGen_2 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbTexGen_2 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bTexGen_3 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbTexGen_3 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bTexGen_4 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbTexGen_4 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bTexGen_5 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbTexGen_5 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bTexGen_6 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbTexGen_6 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bTexGen_7 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbTexGen_7 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { bTexGen_8 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { boolean } + 0x0006: (ConfigScriptMetaString) { default } + 0x0001: (CStorageValue) { 0 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cbTexGen_8 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { tTexture_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { textureMap } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { mbTexture_1 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { tTexture_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { textureMap } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { mbTexture_2 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { tTexture_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { textureMap } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { mbTexture_3 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { tTexture_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { textureMap } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { mbTexture_4 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { tTexture_5 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { textureMap } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { mbTexture_5 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { tTexture_6 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { textureMap } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { mbTexture_6 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { tTexture_7 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { textureMap } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { mbTexture_7 } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { tTexture_8 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { textureMap } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { mbTexture_8 } } } } } + 0x0007: (ConfigScriptMetaContainer) [24] { + 0x0060: (CStorageValue) { 23 } + 0x0006: (ConfigScriptMetaString) { slot1 } + 0x0003: (CStorageValue) { 3 } + 0x0003: (CStorageValue) { 4 } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { rollout } + 0x0006: (ConfigScriptMetaString) { NelMultitextureSlot1 } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { cConstant_1 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { color } + 0x0006: (ConfigScriptMetaString) { default } + 0x0008: (CStorageValue) { 255.000000 255.000000 255.000000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cpConstant } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbOperation_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbBlendSource_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg0_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg1_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg2_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg0Operand_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg1Operand_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg2Operand_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaOperation_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaBlendSource_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg0_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg1_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg2_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg0Operand_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg1Operand_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg2Operand_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iTextureShader_1 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iConstantAlpha_1 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 255 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { sdConstantAlpha } } } } } + 0x0007: (ConfigScriptMetaContainer) [24] { + 0x0060: (CStorageValue) { 23 } + 0x0006: (ConfigScriptMetaString) { slot2 } + 0x0003: (CStorageValue) { 4 } + 0x0003: (CStorageValue) { 5 } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { rollout } + 0x0006: (ConfigScriptMetaString) { NelMultitextureSlot2 } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { cConstant_2 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { color } + 0x0006: (ConfigScriptMetaString) { default } + 0x0008: (CStorageValue) { 255.000000 255.000000 255.000000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cpConstant } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbOperation_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbBlendSource_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg0_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg1_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg2_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg0Operand_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg1Operand_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg2Operand_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaOperation_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaBlendSource_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg0_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg1_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg2_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg0Operand_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg1Operand_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg2Operand_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iTextureShader_2 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iConstantAlpha_2 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 255 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { sdConstantAlpha } } } } } + 0x0007: (ConfigScriptMetaContainer) [24] { + 0x0060: (CStorageValue) { 23 } + 0x0006: (ConfigScriptMetaString) { slot3 } + 0x0003: (CStorageValue) { 5 } + 0x0003: (CStorageValue) { 6 } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { rollout } + 0x0006: (ConfigScriptMetaString) { NelMultitextureSlot3 } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { cConstant_3 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { color } + 0x0006: (ConfigScriptMetaString) { default } + 0x0008: (CStorageValue) { 255.000000 255.000000 255.000000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cpConstant } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbOperation_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbBlendSource_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg0_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg1_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg2_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg0Operand_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg1Operand_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg2Operand_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaOperation_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaBlendSource_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg0_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg1_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg2_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg0Operand_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg1Operand_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg2Operand_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iTextureShader_3 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iConstantAlpha_3 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 255 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { sdConstantAlpha } } } } } + 0x0007: (ConfigScriptMetaContainer) [24] { + 0x0060: (CStorageValue) { 23 } + 0x0006: (ConfigScriptMetaString) { slot4 } + 0x0003: (CStorageValue) { 6 } + 0x0003: (CStorageValue) { 7 } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { rollout } + 0x0006: (ConfigScriptMetaString) { NelMultitextureSlot4 } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { cConstant_4 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { color } + 0x0006: (ConfigScriptMetaString) { default } + 0x0008: (CStorageValue) { 255.000000 255.000000 255.000000 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { cpConstant } } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbOperation_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbBlendSource_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg0_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg1_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg2_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg0Operand_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg1Operand_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iRgbArg2Operand_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaOperation_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaBlendSource_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg0_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg1_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg2_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg0Operand_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg1Operand_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iAlphaArg2Operand_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 3 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iTextureShader_4 } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 1 } } } + 0x0007: (ConfigScriptMetaContainer) [3] { + 0x0060: (CStorageValue) { 2 } + 0x0006: (ConfigScriptMetaString) { iConstantAlpha_4 } + 0x0007: (ConfigScriptMetaContainer) [7] { + 0x0060: (CStorageValue) { 6 } + 0x0006: (ConfigScriptMetaString) { type } + 0x0006: (ConfigScriptMetaString) { integer } + 0x0006: (ConfigScriptMetaString) { default } + 0x0003: (CStorageValue) { 255 } + 0x0006: (ConfigScriptMetaString) { ui } + 0x0007: (ConfigScriptMetaContainer) [2] { + 0x0060: (CStorageValue) { 1 } + 0x0006: (ConfigScriptMetaString) { sdConstantAlpha } } } } } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { slot5 } + 0x0003: (CStorageValue) { 7 } + 0x0003: (CStorageValue) { 8 } + 0x0007: (ConfigScriptMetaContainer) [1] { + 0x0060: (CStorageValue) { 0 } } } + 0x0007: (ConfigScriptMetaContainer) [5] { + 0x0060: (CStorageValue) { 4 } + 0x0006: (ConfigScriptMetaString) { slot6 } + 0x0003: (CStorageValue) { 8 } + 0x0003: (CStorageValue) { 9 } + 0x0007: (ConfigScriptMetaContainer) [1] { + 0x0060: (CStorageValue) { 0 } } } } } } +0x2007: (StorageContainer) [1] { + 0x0010: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 1e 01 00 00 } } +0x2008: (StorageContainer) [3] { + 0x0010: (StorageRaw) { + Size: 52 + String: ...?...............?...............?................ + Hex: 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 } + 0x0020: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 a0 41 } + 0x0030: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + + +------------------ +(program exited with code: 0) +Press return to continue + diff --git a/code/nel/tools/3d/pipeline_max_dump/config_2010.txt b/code/nel/tools/3d/pipeline_max_dump/config_2010.txt new file mode 100644 index 000000000..e00602ed3 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_dump/config_2010.txt @@ -0,0 +1,7192 @@ +Pipeline Max Dump (Temporary Tool) +/home/kaetemi/source/minimax/GE_Acc_MikotoBaniere.max +Config +(Config) { +0x2090: (StorageRaw) { + Size: 4 + String: .... } +0x20e0: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 12 + String: .. A........ + Hex: 00 00 20 41 0a 00 00 00 01 00 00 00 } + 0x0400: (StorageRaw) { + Size: 8 + String: ........ + Hex: 07 00 00 00 01 00 00 00 } + 0x0200: (StorageRaw) { + Size: 40 + String: ...@.. A................................ + Hex: 00 00 a0 40 00 00 20 41 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 } + 0x0300: (StorageRaw) { + Size: 0 + String: } } +0x20a0: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0110: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: dc 00 00 00 } + 0x0110: (StorageRaw) { + Size: 4 + String: .... } + 0x0120: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0130: (StorageRaw) { + Size: 4 + String: .... } + 0x0140: (StorageRaw) { + Size: 4 + String: .... } + 0x0150: (StorageRaw) { + Size: 4 + String: .... } + 0x0160: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0161: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0170: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0180: (StorageRaw) { + Size: 4 + String: .... } + 0x0190: (StorageRaw) { + Size: 4 + String: .... } + 0x0200: (StorageRaw) { + Size: 4 + String: .... } + 0x0210: (StorageRaw) { + Size: 4 + String: .... } + 0x0220: (StorageRaw) { + Size: 4 + String: ..D; + Hex: a6 9b 44 3b } + 0x0230: (StorageRaw) { + Size: 4 + String: .O.> + Hex: df 4f 0d 3e } + 0x0240: (StorageRaw) { + Size: 4 + String: .... + Hex: f8 ff df 0f } + 0x0250: (StorageRaw) { + Size: 4 + String: .... + Hex: c0 ff 01 00 } + 0x0260: (StorageRaw) { + Size: 8 + String: ........ } + 0x0270: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0280: (StorageRaw) { + Size: 4 + String: .... } + 0x0310: (StorageRaw) { + Size: 4 + String: .... } + 0x0290: (StorageRaw) { + Size: 0 + String: } + 0x0390: (StorageRaw) { + Size: 14 + String: d.e.f.a.u.l.t. } + 0x0300: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 4 + String: .... } } + 0x0330: (StorageRaw) { + Size: 16 + String: ................ } } } +0x20a5: (StorageContainer) { + 0x0000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0001: (StorageContainer) { + 0x0000: (StorageRaw) { + Size: 4 + String: *... } + 0x0001: (StorageRaw) { + Size: 9 + String: StateName } + 0x0002: (StorageRaw) { + Size: 10 + String: FormStates } + 0x0003: (StorageRaw) { + Size: 12 + String: InstanceName } + 0x0004: (StorageRaw) { + Size: 18 + String: Container Explorer } + 0x0005: (StorageRaw) { + Size: 19 + String: VisibleColumnsCount } + 0x0006: (StorageRaw) { + Size: 1 + String: 7 } + 0x0007: (StorageRaw) { + Size: 14 + String: VisibleColumns } + 0x0008: (StorageRaw) { + Size: 133 + String: Name,Container Open,Container Loaded,Container Override,Container Local Definition,Container Source Definition,Container Source Rules } + 0x0009: (StorageRaw) { + Size: 11 + String: ColumnWidth } + 0x000a: (StorageRaw) { + Size: 25 + String: 165,52,63,116,153,169,114 } + 0x000b: (StorageRaw) { + Size: 14 + String: SelectChildren } + 0x000c: (StorageRaw) { + Size: 5 + String: False } + 0x000d: (StorageRaw) { + Size: 14 + String: EditingEnabled } + 0x000e: (StorageRaw) { + Size: 4 + String: True } + 0x000f: (StorageRaw) { + Size: 13 + String: ShowHierarchy } + 0x0010: (StorageRaw) { + Size: 4 + String: True } + 0x0011: (StorageRaw) { + Size: 24 + String: AdvancedFilterDataSource } + 0x0012: (StorageRaw) { + Size: 0 + String: } + 0x0013: (StorageRaw) { + Size: 21 + String: AdvancedFilterEnabled } + 0x0014: (StorageRaw) { + Size: 5 + String: False } + 0x0015: (StorageRaw) { + Size: 22 + String: AdvancedFilterMatchAll } + 0x0016: (StorageRaw) { + Size: 4 + String: True } + 0x0017: (StorageRaw) { + Size: 16 + String: FindToolbarState } + 0x0018: (StorageRaw) { + Size: 4 + String: True } + 0x0019: (StorageRaw) { + Size: 24 + String: ViewSelectorToolbarState } + 0x001a: (StorageRaw) { + Size: 4 + String: True } + 0x001b: (StorageRaw) { + Size: 21 + String: SelectionToolbarState } + 0x001c: (StorageRaw) { + Size: 4 + String: True } + 0x001d: (StorageRaw) { + Size: 17 + String: ToolsToolbarState } + 0x001e: (StorageRaw) { + Size: 4 + String: True } + 0x001f: (StorageRaw) { + Size: 17 + String: DisplayInfluences } + 0x0020: (StorageRaw) { + Size: 5 + String: False } + 0x0021: (StorageRaw) { + Size: 16 + String: SelectInfluences } + 0x0022: (StorageRaw) { + Size: 5 + String: False } + 0x0023: (StorageRaw) { + Size: 16 + String: SelectDependents } + 0x0024: (StorageRaw) { + Size: 5 + String: False } + 0x0025: (StorageRaw) { + Size: 15 + String: FindStyleOption } + 0x0026: (StorageRaw) { + Size: 9 + String: Wildcards } + 0x0027: (StorageRaw) { + Size: 13 + String: ToolBarLayout } + 0x0028: (StorageRaw) { + Size: 10 + String: Horizontal } + 0x0029: (StorageRaw) { + Size: 17 + String: FindCaseSensitive } + 0x002a: (StorageRaw) { + Size: 5 + String: False } + 0x002b: (StorageRaw) { + Size: 13 + String: SyncSelection } + 0x002c: (StorageRaw) { + Size: 4 + String: True } + 0x002d: (StorageRaw) { + Size: 23 + String: ShowDependenciesEnabled } + 0x002e: (StorageRaw) { + Size: 5 + String: False } + 0x002f: (StorageRaw) { + Size: 25 + String: FilterSelectionSetEnabled } + 0x0030: (StorageRaw) { + Size: 5 + String: False } + 0x0031: (StorageRaw) { + Size: 19 + String: DisplayToolbarState } + 0x0032: (StorageRaw) { + Size: 4 + String: True } + 0x0033: (StorageRaw) { + Size: 21 + String: ContainerToolbarState } + 0x0034: (StorageRaw) { + Size: 4 + String: True } + 0x0035: (StorageRaw) { + Size: 15 + String: FormWindowState } + 0x0036: (StorageRaw) { + Size: 6 + String: Normal } + 0x0037: (StorageRaw) { + Size: 8 + String: FormSize } + 0x0038: (StorageRaw) { + Size: 7 + String: 844,355 } + 0x0039: (StorageRaw) { + Size: 12 + String: FormLocation } + 0x003a: (StorageRaw) { + Size: 7 + String: 100,100 } + 0x003b: (StorageRaw) { + Size: 16 + String: ColumnSortStates } + 0x003c: (StorageRaw) { + Size: 0 + String: } + 0x003d: (StorageRaw) { + Size: 8 + String: Geometry } + 0x003e: (StorageRaw) { + Size: 4 + String: True } + 0x003f: (StorageRaw) { + Size: 5 + String: Shape } + 0x0040: (StorageRaw) { + Size: 4 + String: True } + 0x0041: (StorageRaw) { + Size: 5 + String: Light } + 0x0042: (StorageRaw) { + Size: 4 + String: True } + 0x0043: (StorageRaw) { + Size: 6 + String: Camera } + 0x0044: (StorageRaw) { + Size: 4 + String: True } + 0x0045: (StorageRaw) { + Size: 6 + String: Helper } + 0x0046: (StorageRaw) { + Size: 4 + String: True } + 0x0047: (StorageRaw) { + Size: 9 + String: SpaceWarp } + 0x0048: (StorageRaw) { + Size: 4 + String: True } + 0x0049: (StorageRaw) { + Size: 5 + String: Group } + 0x004a: (StorageRaw) { + Size: 4 + String: True } + 0x004b: (StorageRaw) { + Size: 4 + String: Xref } + 0x004c: (StorageRaw) { + Size: 4 + String: True } + 0x004d: (StorageRaw) { + Size: 4 + String: Bone } + 0x004e: (StorageRaw) { + Size: 4 + String: True } + 0x004f: (StorageRaw) { + Size: 9 + String: Container } + 0x0050: (StorageRaw) { + Size: 4 + String: True } + 0x0051: (StorageRaw) { + Size: 6 + String: Frozen } + 0x0052: (StorageRaw) { + Size: 5 + String: False } + 0x0053: (StorageRaw) { + Size: 6 + String: Hidden } + 0x0054: (StorageRaw) { + Size: 5 + String: False } + 0x0002: (StorageRaw) { + Size: 1 + String: . } + 0x0003: (StorageRaw) { + Size: 1 + String: . } } } +0x20a6: (StorageContainer) { + 0x0000: (StorageContainer) { + 0x0001: (StorageRaw) { + Size: 4 + String: .... } } } +0x2190: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0110: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 0e 08 00 00 } + 0x0410: (StorageRaw) { + Size: 4 + String: .... } + 0x0420: (StorageRaw) { + Size: 4 + String: .... } + 0x0510: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } + 0x0440: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0530: (StorageRaw) { + Size: 4 + String: .... } + 0x0110: (StorageRaw) { + Size: 0 + String: } + 0x0120: (StorageRaw) { + Size: 16 + String: ................ } + 0x0140: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x0150: (StorageRaw) { + Size: 8 + String: ........ } + 0x0160: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0170: (StorageRaw) { + Size: 4 + String: .... } + 0x0210: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0520: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0250: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0260: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0270: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0280: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0290: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 } + 0x0300: (StorageRaw) { + Size: 4 + String: .... } + 0x0310: (StorageRaw) { + Size: 4 + String: .... } + 0x0320: (StorageRaw) { + Size: 0 + String: } + 0x0380: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x0390: (StorageRaw) { + Size: 4 + String: .... } + 0x0400: (StorageRaw) { + Size: 4 + String: .... } + 0x0540: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0550: (StorageRaw) { + Size: 4 + String: .... } } } +0x20b0: (StorageContainer) { + 0x0010: (StorageRaw) { + Size: 4 + String: .... + Hex: 1e 00 00 00 } + 0x0020: (StorageRaw) { + Size: 4 + String: .... } + 0x0030: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0050: (StorageRaw) { + Size: 4 + String: .... } + 0x0060: (StorageRaw) { + Size: 4 + String: .%.. + Hex: 80 25 00 00 } + 0x0070: (StorageRaw) { + Size: 4 + String: .... } + 0x0100: (StorageContainer) { + 0x0090: (StorageRaw) { + Size: 4 + String: .... } } + 0x0110: (StorageRaw) { + Size: 4 + String: .... } + 0x0120: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } +0x2130: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 0 + String: } + 0x0120: (StorageRaw) { + Size: 0 + String: } + 0x0110: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 4 + String: .... } + 0x0200: (StorageRaw) { + Size: 4 + String: .... } + 0x0400: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0300: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 11 + String: ........... + Hex: 07 00 00 00 df f8 fc e8 f0 f8 9d } + 0x0110: (StorageRaw) { + Size: 12 + String: ............ + Hex: 08 00 00 00 dc cf d3 dc c8 d9 df 9d } + 0x0120: (StorageRaw) { + Size: 17 + String: ................. + Hex: 0d 00 00 00 ab a9 ad b0 ad ac ad aa a9 ae ac a8 9d } + 0x0130: (StorageRaw) { + Size: 12 + String: ..,.:.{...J. + Hex: 94 b5 2c 0f 3a c5 7b 02 e9 a7 4a d8 } + 0x0140: (StorageRaw) { + Size: 12 + String: ............ + Hex: 08 00 00 00 d6 fc f8 e9 f8 f0 f4 9d } + 0x0150: (StorageRaw) { + Size: 12 + String: ............ + Hex: 08 00 00 00 d6 dc d8 d9 d8 d1 d1 9d } + 0x0160: (StorageRaw) { + Size: 17 + String: ................. + Hex: 0d 00 00 00 ae a8 a4 b0 ad ab ad aa a9 ab a5 ac 9d } + 0x0170: (StorageRaw) { + Size: 12 + String: %%%-%%%%%%%% } } } } +0x2080: (StorageContainer) { + 0x2801: (StorageRaw) { + Size: 4 + String: .... } + 0x2900: (StorageRaw) { + Size: 4 + String: c... } + 0x2954: (StorageRaw) { + Size: 0 + String: } + 0x2827: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 0a 00 00 } + 0x2828: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 0a 00 00 } + 0x3010: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x3011: (StorageRaw) { + Size: 4 + String: .... } + 0x3012: (StorageRaw) { + Size: 4 + String: .... } + 0x3013: (StorageRaw) { + Size: 4 + String: .... } + 0x3014: (StorageRaw) { + Size: 4 + String: fff? } + 0x3015: (StorageRaw) { + Size: 4 + String: fff? } + 0x3016: (StorageRaw) { + Size: 4 + String: fff? } + 0x3017: (StorageRaw) { + Size: 4 + String: ..L? + Hex: cd cc 4c 3f } + 0x3018: (StorageRaw) { + Size: 4 + String: ..L? + Hex: cd cc 4c 3f } + 0x3019: (StorageRaw) { + Size: 4 + String: ..L? + Hex: cd cc 4c 3f } + 0x301a: (StorageRaw) { + Size: 4 + String: 333? } + 0x301b: (StorageRaw) { + Size: 4 + String: 333? } + 0x301c: (StorageRaw) { + Size: 4 + String: 333? } + 0x301d: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x301e: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x301f: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x3020: (StorageRaw) { + Size: 4 + String: .... } + 0x3022: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28fa: (StorageRaw) { + Size: 896 + String: ...............?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?................................................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2910: (StorageRaw) { + Size: 80 + String: ...........?...............?...............?.................................... + Hex: 01 00 00 00 0b 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2911: (StorageRaw) { + Size: 80 + String: ...........?...............?...............?...............?.................... + Hex: 01 00 00 00 02 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2912: (StorageRaw) { + Size: 80 + String: ..........5?...>q.....5....>q.........]?...>..........z...I?..zC................ + Hex: 00 00 00 00 07 00 00 00 f3 04 35 3f f2 04 b5 3e 71 c4 1c bf f3 04 35 bf f2 04 b5 3e 71 c4 1c bf 00 00 00 00 d8 b3 5d 3f ff ff ff 3e 00 00 00 00 00 00 00 00 00 00 7a c3 db 0f 49 3f 00 00 7a 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2930: (StorageRaw) { + Size: 4 + String: .... } + 0x2931: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x2932: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x2800: (StorageRaw) { + Size: 4 + String: t... } + 0x2810: (StorageRaw) { + Size: 80 + String: ...........?...............?...............?..Z:..........C9.................... + Hex: 01 00 00 00 02 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 b4 5a 3a 00 ed 1f ba 00 00 00 00 00 89 43 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2811: (StorageRaw) { + Size: 80 + String: ...........?..............;............?..;................?.................... + Hex: 01 00 00 00 04 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 80 00 00 00 00 2e bd 3b b3 00 00 80 bf 00 00 00 00 00 00 80 3f 2e bd 3b b3 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2812: (StorageRaw) { + Size: 80 + String: ..........;...............;...;3..;....?...'.x_;M.......H.%9.................... + Hex: 01 00 00 00 00 00 00 00 2e bd 3b b3 00 00 00 00 00 00 80 bf 00 00 80 bf 2e bd 3b b3 2e bd 3b 33 2e bd 3b b3 00 00 80 3f ed ad 09 27 00 78 5f 3b 4d b0 c1 bf 00 00 00 00 48 b0 25 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x2813: (StorageRaw) { + Size: 80 + String: ..............6.8.:..:;..z*=TD.?.. 78..?W.y.1.R>Qu....k...I?[.n@................ + Hex: 00 00 00 00 07 00 00 00 90 97 2e bf c3 c4 36 bd 38 e1 3a bf a1 3a 3b bf c8 7a 2a 3d 54 44 2e 3f 00 00 20 37 38 86 7f 3f 57 ee 79 bd 31 da 52 3e 51 75 19 bf a4 97 6b c0 db 0f 49 3f 5b 9d 6e 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x3040: (StorageRaw) { + Size: 12 + String: ...@...?...? } + 0x2876: (StorageRaw) { + Size: 76 + String: {.0.0.0.0.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.0.0.0.0.0.0.0.0.}. } + 0x3000: (StorageRaw) { + Size: 4 + String: .... } + 0x2830: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 00 00 00 } + 0x283a: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x2836: (StorageRaw) { + Size: 4 + String: .... } + 0x2840: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28f4: (StorageRaw) { + Size: 4 + String: .... + Hex: ff ff ff ff } + 0x2846: (StorageRaw) { + Size: 4 + String: .... } + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x4270: (StorageRaw) { + Size: 4 + String: .... } + 0x2870: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x2861: (StorageRaw) { + Size: 4 + String: .... } + 0x2890: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28a0: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28b1: (StorageRaw) { + Size: 4 + String: .... } + 0x28b5: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c1: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c5: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x28c9: (StorageRaw) { + Size: 4 + String: ... } + 0x3030: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 05 00 00 00 } + 0x28cd: (StorageRaw) { + Size: 4 + String: .... } + 0x3054: (StorageRaw) { + Size: 4 + String: .... } + 0x305c: (StorageRaw) { + Size: 4 + String: .... } + 0x3058: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 01 00 } + 0x3060: (StorageRaw) { + Size: 4 + String: .... } + 0x3064: (StorageRaw) { + Size: 4 + String: .... } + 0x3068: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4080: (StorageRaw) { + Size: 4 + String: .... } + 0x4000: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x4040: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4100: (StorageRaw) { + Size: 40 + String: ........................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x3004: (StorageRaw) { + Size: 12 + String: ..d......... + Hex: d6 cd 64 c0 fa cf c0 c0 00 00 00 00 } + 0x3008: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4110: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x3041: (StorageRaw) { + Size: 12 + String: ...@...?...? } + 0x2877: (StorageRaw) { + Size: 76 + String: {.0.0.0.0.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.0.0.0.0.0.0.0.0.}. } + 0x3001: (StorageRaw) { + Size: 4 + String: .... } + 0x2831: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 00 00 00 } + 0x283b: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x2837: (StorageRaw) { + Size: 4 + String: .... } + 0x2841: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28f5: (StorageRaw) { + Size: 4 + String: .... + Hex: ff ff ff ff } + 0x2847: (StorageRaw) { + Size: 4 + String: .... } + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x4271: (StorageRaw) { + Size: 4 + String: .... } + 0x2871: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x2862: (StorageRaw) { + Size: 4 + String: .... } + 0x2891: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28a1: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28b2: (StorageRaw) { + Size: 4 + String: .... } + 0x28b6: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c2: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c6: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x28ca: (StorageRaw) { + Size: 4 + String: ... } + 0x3031: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 05 00 00 00 } + 0x28ce: (StorageRaw) { + Size: 4 + String: .... } + 0x3055: (StorageRaw) { + Size: 4 + String: .... } + 0x305d: (StorageRaw) { + Size: 4 + String: .... } + 0x3059: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 01 00 } + 0x3061: (StorageRaw) { + Size: 4 + String: .... } + 0x3065: (StorageRaw) { + Size: 4 + String: .... } + 0x3069: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4081: (StorageRaw) { + Size: 4 + String: .... } + 0x4001: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x4041: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4101: (StorageRaw) { + Size: 40 + String: ........................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x3005: (StorageRaw) { + Size: 12 + String: S...Y.&..... + Hex: 53 ea c5 c4 59 c8 26 c5 00 00 00 00 } + 0x3009: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4111: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x3042: (StorageRaw) { + Size: 12 + String: ...@...?...? } + 0x2878: (StorageRaw) { + Size: 76 + String: {.0.0.0.0.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.0.0.0.0.0.0.0.0.}. } + 0x3002: (StorageRaw) { + Size: 4 + String: .... } + 0x2832: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 00 00 00 } + 0x283c: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x2838: (StorageRaw) { + Size: 4 + String: .... } + 0x2842: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28f6: (StorageRaw) { + Size: 4 + String: .... + Hex: ff ff ff ff } + 0x2848: (StorageRaw) { + Size: 4 + String: .... } + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x4272: (StorageRaw) { + Size: 4 + String: .... } + 0x2872: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x2863: (StorageRaw) { + Size: 4 + String: .... } + 0x2892: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28a2: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28b3: (StorageRaw) { + Size: 4 + String: .... } + 0x28b7: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c3: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c7: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x28cb: (StorageRaw) { + Size: 4 + String: ... } + 0x3032: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 05 00 00 00 } + 0x28cf: (StorageRaw) { + Size: 4 + String: .... } + 0x3056: (StorageRaw) { + Size: 4 + String: .... } + 0x305e: (StorageRaw) { + Size: 4 + String: .... } + 0x305a: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 01 00 } + 0x3062: (StorageRaw) { + Size: 4 + String: .... } + 0x3066: (StorageRaw) { + Size: 4 + String: .... } + 0x306a: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4082: (StorageRaw) { + Size: 4 + String: .... } + 0x4002: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x4042: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4102: (StorageRaw) { + Size: 40 + String: ........................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x3006: (StorageRaw) { + Size: 12 + String: ............ + Hex: 8f 02 87 c0 84 8b e3 c0 00 00 00 00 } + 0x300a: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4112: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x3043: (StorageRaw) { + Size: 12 + String: ...@...?...? } + 0x2879: (StorageRaw) { + Size: 76 + String: {.0.0.0.0.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.-.0.0.0.0.0.0.0.0.0.0.0.0.}. } + 0x3003: (StorageRaw) { + Size: 4 + String: .... } + 0x2833: (StorageRaw) { + Size: 4 + String: .... } + 0x283d: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x2839: (StorageRaw) { + Size: 4 + String: .... } + 0x2843: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28f7: (StorageRaw) { + Size: 4 + String: .... + Hex: ff ff ff ff } + 0x2849: (StorageRaw) { + Size: 4 + String: .... } + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x4273: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x2873: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x2864: (StorageRaw) { + Size: 4 + String: .... } + 0x2893: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28a3: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 0x28b4: (StorageRaw) { + Size: 4 + String: .... } + 0x28b8: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c4: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x28c8: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x28cc: (StorageRaw) { + Size: 4 + String: ... } + 0x3033: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 05 00 00 00 } + 0x28d0: (StorageRaw) { + Size: 4 + String: .... } + 0x3057: (StorageRaw) { + Size: 4 + String: .... } + 0x305f: (StorageRaw) { + Size: 4 + String: .... } + 0x305b: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 01 00 } + 0x3063: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x3067: (StorageRaw) { + Size: 4 + String: .... + Hex: a9 f1 83 bd } + 0x306b: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4083: (StorageRaw) { + Size: 4 + String: .... } + 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x4043: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x4103: (StorageRaw) { + Size: 40 + String: ........................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x3007: (StorageRaw) { + Size: 12 + String: >....G...... + Hex: 3e c3 2e ba e9 47 93 ba 00 00 00 00 } + 0x300b: (StorageRaw) { + Size: 4 + String: ...? + Hex: 83 f9 a2 3f } + 0x4113: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x2820: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } + 0x2821: (StorageRaw) { + Size: 0 + String: } + 0x2826: (StorageRaw) { + Size: 4 + String: F.L. } + 0x2825: (StorageRaw) { + Size: 28 + String: ......................%D.... + Hex: 00 00 00 00 02 00 00 00 04 00 00 00 06 00 00 00 00 00 00 00 00 00 25 44 01 00 00 00 } + 0x3038: (StorageRaw) { + Size: 60 + String: ....................2...>................................... + Hex: 00 00 00 00 00 00 00 00 ff ff ff ff 01 00 00 00 00 00 00 00 32 00 00 00 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 } + 0x4114: (StorageRaw) { + Size: 4 + String: .... } + 0x4115: (StorageRaw) { + Size: 12 + String: ...?...?...? } + 0x4300: (StorageRaw) { + Size: 8 + String: .......? + Hex: 02 00 00 00 00 00 80 3f } + 0x4600: (StorageRaw) { + Size: 32 + String: .. A................(......=fff? + Hex: 00 00 20 41 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 cd cc cc 3d 66 66 66 3f } + 0x4620: (StorageRaw) { + Size: 4 + String: o..: + Hex: 6f 12 83 3a } + 0x4630: (StorageContainer) { + 0x0001: (StorageContainer) { + 0x0002: (StorageRaw) { + Size: 1 + String: . } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 f0 41 } + 0x000c: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d } + 0x0008: (StorageRaw) { + Size: 4 + String: .... } + 0x0009: (StorageRaw) { + Size: 1 + String: . } + 0x000a: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 0x000b: (StorageRaw) { + Size: 1 + String: . } } } + 0x4620: (StorageRaw) { + Size: 4 + String: o..: + Hex: 6f 12 83 3a } + 0x4630: (StorageContainer) { + 0x0001: (StorageContainer) { + 0x0002: (StorageRaw) { + Size: 1 + String: . } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 f0 41 } + 0x000c: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d } + 0x0008: (StorageRaw) { + Size: 4 + String: .... } + 0x0009: (StorageRaw) { + Size: 1 + String: . } + 0x000a: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 0x000b: (StorageRaw) { + Size: 1 + String: . } } } + 0x4620: (StorageRaw) { + Size: 4 + String: o..: + Hex: 6f 12 83 3a } + 0x4630: (StorageContainer) { + 0x0001: (StorageContainer) { + 0x0002: (StorageRaw) { + Size: 1 + String: . } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 f0 41 } + 0x000c: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d } + 0x0008: (StorageRaw) { + Size: 4 + String: .... } + 0x0009: (StorageRaw) { + Size: 1 + String: . } + 0x000a: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 0x000b: (StorageRaw) { + Size: 1 + String: . } } } + 0x4620: (StorageRaw) { + Size: 4 + String: o..: + Hex: 6f 12 83 3a } + 0x4630: (StorageContainer) { + 0x0001: (StorageContainer) { + 0x0002: (StorageRaw) { + Size: 1 + String: . } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: .... } + 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 f0 41 } + 0x000c: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d } + 0x0008: (StorageRaw) { + Size: 4 + String: .... } + 0x0009: (StorageRaw) { + Size: 1 + String: . } + 0x000a: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 0x000b: (StorageRaw) { + Size: 1 + String: . } } } + 0x4640: (StorageRaw) { + Size: 5 + String: ....? + Hex: 01 00 00 80 3f } } +0x20d0: (StorageContainer) { + 0x0005: (StorageRaw) { + Size: 20 + String: .................... + Hex: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0002: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 12 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... } + 0x0004: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 12 00 00 } + 0x0010: (StorageRaw) { + Size: 4 + String: .... + Hex: 80 02 00 00 } + 0x0020: (StorageRaw) { + Size: 4 + String: .... + Hex: e0 01 00 00 } + 0x0030: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x0031: (StorageRaw) { + Size: 4 + String: .... } } +0x2160: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 12 + String: .......@...@ + Hex: 00 00 00 00 cd cc 0c 40 cd cc 0c 40 } + 0x0200: (StorageRaw) { + Size: 8 + String: ........ + Hex: 01 00 00 00 01 00 00 00 } + 0x0300: (StorageRaw) { + Size: 28 + String: ............................ + Hex: 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 } + 0x0400: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 0x0500: (StorageRaw) { + Size: 4 + String: .... + Hex: 14 00 00 00 } } +0x21a0: (StorageContainer) { + 0x1a00: (StorageRaw) { + Size: 8 + String: .[&<...9 + Hex: e3 5b 26 3c 1d 15 cd 39 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ..8J$.D: + Hex: bc 04 38 4a 24 06 44 3a } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .{.d.C.. + Hex: 0d 7b c4 64 00 43 b3 1e } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: lL.8.C.. + Hex: 6c 4c e6 38 00 43 b3 1e } + 0x1a02: (StorageContainer) { + 0x1e61: (StorageRaw) { + Size: 4 + String: .... + Hex: 07 00 00 00 } } + 0x1a00: (StorageRaw) { + Size: 8 + String: .+@...,f + Hex: 9d 2b 40 2e 80 14 2c 66 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .6).I@,I + Hex: 14 36 29 01 49 40 2c 49 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ..e[...T + Hex: f1 01 65 5b fc 14 96 54 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .:.Am..M + Hex: e5 3a 89 41 6d 0c 95 4d } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .s.r.w.( + Hex: 11 73 cd 72 0f 77 fb 28 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .Fhi.x.B + Hex: fd 46 68 69 ab 78 9c 42 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .=.=.nH. + Hex: 1b 3d d9 3d 19 6e 48 0e } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: `{.{a... + Hex: 60 7b f7 7b 61 09 13 16 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: _..i\.E` + Hex: 5f ea ad 69 5c 2e 45 60 } + 0x1a02: (StorageContainer) { + 0x0001: (StorageContainer) { + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x001a: (StorageRaw) { + Size: 8 + String: ........ } + 0x001b: (StorageRaw) { + Size: 8 + String: ........ } + 0x001c: (StorageRaw) { + Size: 8 + String: ........ } + 0x001d: (StorageRaw) { + Size: 8 + String: ..... c. + Hex: 00 00 00 00 00 20 63 c0 } + 0x001e: (StorageRaw) { + Size: 8 + String: .....@_@ } + 0x001f: (StorageRaw) { + Size: 8 + String: ..... c@ } + 0x0020: (StorageRaw) { + Size: 8 + String: ........ } + 0x0021: (StorageRaw) { + Size: 8 + String: .......? + Hex: 00 00 00 00 00 00 f0 3f } + 0x0022: (StorageRaw) { + Size: 8 + String: ........ } + 0x0023: (StorageRaw) { + Size: 8 + String: ........ } + 0x0024: (StorageRaw) { + Size: 8 + String: ........ } + 0x0025: (StorageRaw) { + Size: 8 + String: ........ } + 0x0026: (StorageRaw) { + Size: 8 + String: ......F@ + Hex: 00 00 00 00 00 80 46 40 } + 0x0027: (StorageRaw) { + Size: 8 + String: ......F@ + Hex: 00 00 00 00 00 80 46 40 } + 0x0028: (StorageRaw) { + Size: 8 + String: .....@.@ + Hex: 00 00 00 00 00 40 7f 40 } + 0x0029: (StorageRaw) { + Size: 8 + String: .....@.@ + Hex: 00 00 00 00 00 40 7f 40 } + 0x002a: (StorageRaw) { + Size: 8 + String: ........ } + 0x002b: (StorageRaw) { + Size: 8 + String: ........ } + 0x002c: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 00 00 f0 bf } + 0x002d: (StorageRaw) { + Size: 8 + String: ........ } + 0x002e: (StorageRaw) { + Size: 8 + String: .......? + Hex: 00 00 00 00 00 00 f0 3f } + 0x002f: (StorageRaw) { + Size: 8 + String: ........ } } } + 0x1a00: (StorageRaw) { + Size: 8 + String: .....J2 + Hex: 95 87 c1 b0 04 4a 32 20 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .kHE&... + Hex: d4 6b 48 45 26 8a a3 85 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: EULB..KR + Hex: 45 55 4c 42 04 00 4b 52 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .$.X.._h + Hex: c8 24 14 58 b5 0f 5f 68 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .Z.J.d.H + Hex: f4 5a 81 4a 03 64 c5 48 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: s<.j.!.E + Hex: 73 3c 1e 6a 92 21 b7 45 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .54F8He. + Hex: 1d 35 34 46 38 48 65 11 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .oa..r.7 + Hex: db 6f 61 12 9d 72 ef 37 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: $5.z...I + Hex: 24 35 9f 7a b5 04 c8 49 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .{m..'.& + Hex: c3 7b 6d 11 b6 27 82 26 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: En.9$P.. + Hex: 45 6e ba 39 24 50 cf 1f } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: D..TW.+J + Hex: 44 1f dd 54 57 0b 2b 4a } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .=+..Q.o + Hex: 07 3d 2b 1c 04 51 ab 6f } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: F.L1.... + Hex: 46 0d 4c 31 ab 10 07 1c } + 0x1a02: (StorageContainer) { + 0x5000: (StorageRaw) { + Size: 1 + String: . } + 0x5004: (StorageRaw) { + Size: 1 + String: . } + 0x5001: (StorageRaw) { + Size: 1 + String: . } + 0x5002: (StorageRaw) { + Size: 0 + String: } + 0x5003: (StorageRaw) { + Size: 0 + String: } + 0x5005: (StorageRaw) { + Size: 0 + String: } } + 0x1a00: (StorageRaw) { + Size: 8 + String: .....K3! + Hex: 06 97 c1 c0 c4 4b 33 21 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: z+-..~Uk + Hex: 7a 2b 2d 05 b1 7e 55 6b } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: e..D.~J. + Hex: 65 ab d1 44 b4 7e 4a 2e } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: Td.w...g + Hex: 54 64 eb 77 09 dc 05 67 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: I..2G..% + Hex: 49 b4 8e 32 47 89 dc 25 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ...-./.\ + Hex: c1 0a c0 2d 13 2f 9f 5c } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: M[.9~..t + Hex: 4d 5b aa 39 7e 15 c1 74 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ...?tQ.r + Hex: eb c9 b6 3f 74 51 bd 72 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .x.a_..m + Hex: 9d 78 c2 61 5f 02 c3 6d } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: oK.`Y..) + Hex: 6f 4b b7 60 59 08 8c 29 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: a*...... + Hex: 61 2a eb c8 85 c6 c3 8a } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ...W...Y + Hex: dc dc ab 57 dc dc 05 59 } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: ..c(A.0[ + Hex: e0 08 63 28 41 9c 30 5b } + 0x1a02: (StorageRaw) { + Size: 0 + String: } + 0x1a00: (StorageRaw) { + Size: 8 + String: .<.:..=] + Hex: f3 3c 1c 3a e7 b5 3d 5d } + 0x1a02: (StorageContainer) { + 0x0001: (StorageContainer) { + 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0010: (StorageRaw) { + Size: 4 + String: ..pA } + 0x0013: (StorageRaw) { + Size: 4 + String: ..HB } + 0x0014: (StorageRaw) { + Size: 1 + String: . } + 0x0015: (StorageRaw) { + Size: 1 + String: . } + 0x0016: (StorageRaw) { + Size: 1 + String: . } } } } +0x2180: (StorageContainer) { + 0x0040: (StorageContainer) { + 0x0050: (StorageRaw) { + Size: 12 + String: ....._.d..+" + Hex: 00 0c 00 00 ec 5f c7 64 b9 9e 2b 22 } // 4 bytes superclassid, 12 bytes classid + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 09 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 0e 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....nlbp. + Hex: 05 00 00 00 6e 6c 62 70 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....rollout. + Hex: 08 00 00 00 72 6f 6c 6c 6f 75 74 00 } + 0x0006: (StorageRaw) { + Size: 23 + String: ....nelBasicParameters. + Hex: 13 00 00 00 6e 65 6c 42 61 73 69 63 50 61 72 61 6d 65 74 65 72 73 00 } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....bTwoSided. + Hex: 0a 00 00 00 62 54 77 6f 53 69 64 65 64 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 13 + String: ....cAmbient. + Hex: 09 00 00 00 63 41 6d 62 69 65 6e 74 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....color. + Hex: 06 00 00 00 63 6f 6c 6f 72 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 13 + String: ....cDiffuse. + Hex: 09 00 00 00 63 44 69 66 66 75 73 65 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....color. + Hex: 06 00 00 00 63 6f 6c 6f 72 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 13 + String: ....pOpacity. + Hex: 09 00 00 00 70 4f 70 61 63 69 74 79 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....percent. + Hex: 08 00 00 00 70 65 72 63 65 6e 74 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....cSpecular. + Hex: 0a 00 00 00 63 53 70 65 63 75 6c 61 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....color. + Hex: 06 00 00 00 63 6f 6c 6f 72 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 19 + String: ....pSpecularLevel. + Hex: 0f 00 00 00 70 53 70 65 63 75 6c 61 72 4c 65 76 65 6c 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....percent. + Hex: 08 00 00 00 70 65 72 63 65 6e 74 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....pGlossiness. + Hex: 0c 00 00 00 70 47 6c 6f 73 73 69 6e 65 73 73 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....percent. + Hex: 08 00 00 00 70 65 72 63 65 6e 74 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 20 + String: ....cSelfIllumColor. + Hex: 10 00 00 00 63 53 65 6c 66 49 6c 6c 75 6d 43 6f 6c 6f 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....color. + Hex: 06 00 00 00 63 6f 6c 6f 72 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 21 + String: ....pSelfIllumAmount. + Hex: 11 00 00 00 70 53 65 6c 66 49 6c 6c 75 6d 41 6d 6f 75 6e 74 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....percent. + Hex: 08 00 00 00 70 65 72 63 65 6e 74 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 23 + String: ....bUseSelfIllumColor. + Hex: 13 00 00 00 62 55 73 65 53 65 6c 66 49 6c 6c 75 6d 43 6f 6c 6f 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: )... } + 0x0006: (StorageRaw) { + Size: 9 + String: ....main. + Hex: 05 00 00 00 6d 61 69 6e 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....rollout. + Hex: 08 00 00 00 72 6f 6c 6c 6f 75 74 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....NelParams. + Hex: 0a 00 00 00 4e 65 6c 50 61 72 61 6d 73 00 } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....bLightMap. + Hex: 0a 00 00 00 62 4c 69 67 68 74 4d 61 70 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....bUnlighted. + Hex: 0b 00 00 00 62 55 6e 6c 69 67 68 74 65 64 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....cbUnlighted. + Hex: 0c 00 00 00 63 62 55 6e 6c 69 67 68 74 65 64 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....bStainedGlassWindow. + Hex: 14 00 00 00 62 53 74 61 69 6e 65 64 47 6c 61 73 73 57 69 6e 64 6f 77 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 25 + String: ....cbStainedGlassWindow. + Hex: 15 00 00 00 63 62 53 74 61 69 6e 65 64 47 6c 61 73 73 57 69 6e 64 6f 77 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....bAlphaTest. + Hex: 0b 00 00 00 62 41 6c 70 68 61 54 65 73 74 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....cbAlphaTest. + Hex: 0c 00 00 00 63 62 41 6c 70 68 61 54 65 73 74 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....bForceZWrite. + Hex: 0d 00 00 00 62 46 6f 72 63 65 5a 57 72 69 74 65 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....cbForceZWrite. + Hex: 0e 00 00 00 63 62 46 6f 72 63 65 5a 57 72 69 74 65 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 19 + String: ....bForceNoZWrite. + Hex: 0f 00 00 00 62 46 6f 72 63 65 4e 6f 5a 57 72 69 74 65 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 20 + String: ....cbForceNoZWrite. + Hex: 10 00 00 00 63 62 46 6f 72 63 65 4e 6f 5a 57 72 69 74 65 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 11 + String: ....bWater. + Hex: 07 00 00 00 62 57 61 74 65 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 30 + String: ....bWaterUseSceneEnvMapAbove. + Hex: 1a 00 00 00 62 57 61 74 65 72 55 73 65 53 63 65 6e 65 45 6e 76 4d 61 70 41 62 6f 76 65 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 31 + String: ....cbWaterUseSceneEnvMapAbove. + Hex: 1b 00 00 00 63 62 57 61 74 65 72 55 73 65 53 63 65 6e 65 45 6e 76 4d 61 70 41 62 6f 76 65 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 30 + String: ....bWaterUseSceneEnvMapUnder. + Hex: 1a 00 00 00 62 57 61 74 65 72 55 73 65 53 63 65 6e 65 45 6e 76 4d 61 70 55 6e 64 65 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 31 + String: ....cbWaterUseSceneEnvMapUnder. + Hex: 1b 00 00 00 63 62 57 61 74 65 72 55 73 65 53 63 65 6e 65 45 6e 76 4d 61 70 55 6e 64 65 72 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....fBumpUScale. + Hex: 0c 00 00 00 66 42 75 6d 70 55 53 63 61 6c 65 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....float. + Hex: 06 00 00 00 66 6c 6f 61 74 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: ..#< + Hex: 0a d7 23 3c } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....cfBumpUScale. + Hex: 0d 00 00 00 63 66 42 75 6d 70 55 53 63 61 6c 65 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....fBumpVScale. + Hex: 0c 00 00 00 66 42 75 6d 70 56 53 63 61 6c 65 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....float. + Hex: 06 00 00 00 66 6c 6f 61 74 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: ..#< + Hex: 0a d7 23 3c } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....cfBumpVScale. + Hex: 0d 00 00 00 63 66 42 75 6d 70 56 53 63 61 6c 65 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....fBumpUSpeed. + Hex: 0c 00 00 00 66 42 75 6d 70 55 53 70 65 65 64 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....float. + Hex: 06 00 00 00 66 6c 6f 61 74 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: ..#< + Hex: 0a d7 23 3c } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....cfBumpUSpeed. + Hex: 0d 00 00 00 63 66 42 75 6d 70 55 53 70 65 65 64 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....fBumpVSpeed. + Hex: 0c 00 00 00 66 42 75 6d 70 56 53 70 65 65 64 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....float. + Hex: 06 00 00 00 66 6c 6f 61 74 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: ..#< + Hex: 0a d7 23 3c } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....cfBumpVSpeed. + Hex: 0d 00 00 00 63 66 42 75 6d 70 56 53 70 65 65 64 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 23 + String: ....fDisplaceMapUScale. + Hex: 13 00 00 00 66 44 69 73 70 6c 61 63 65 4d 61 70 55 53 63 61 6c 65 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....float. + Hex: 06 00 00 00 66 6c 6f 61 74 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: ...; + Hex: 0a d7 a3 3b } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....cfDisplaceMapUScale. + Hex: 14 00 00 00 63 66 44 69 73 70 6c 61 63 65 4d 61 70 55 53 63 61 6c 65 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 23 + String: ....fDisplaceMapVScale. + Hex: 13 00 00 00 66 44 69 73 70 6c 61 63 65 4d 61 70 56 53 63 61 6c 65 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....float. + Hex: 06 00 00 00 66 6c 6f 61 74 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: ...; + Hex: 0a d7 a3 3b } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....cfDisplaceMapVScale. + Hex: 14 00 00 00 63 66 44 69 73 70 6c 61 63 65 4d 61 70 56 53 63 61 6c 65 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 23 + String: ....fDisplaceMapUSpeed. + Hex: 13 00 00 00 66 44 69 73 70 6c 61 63 65 4d 61 70 55 53 70 65 65 64 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....float. + Hex: 06 00 00 00 66 6c 6f 61 74 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: ...; + Hex: 0a d7 a3 3b } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....cfDisplaceMapUSpeed. + Hex: 14 00 00 00 63 66 44 69 73 70 6c 61 63 65 4d 61 70 55 53 70 65 65 64 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 23 + String: ....fDisplaceMapVSpeed. + Hex: 13 00 00 00 66 44 69 73 70 6c 61 63 65 4d 61 70 56 53 70 65 65 64 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....float. + Hex: 06 00 00 00 66 6c 6f 61 74 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: ...; + Hex: 0a d7 a3 3b } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....cfDisplaceMapVSpeed. + Hex: 14 00 00 00 63 66 44 69 73 70 6c 61 63 65 4d 61 70 56 53 70 65 65 64 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 23 + String: ....fWaterHeightFactor. + Hex: 13 00 00 00 66 57 61 74 65 72 48 65 69 67 68 74 46 61 63 74 6f 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....float. + Hex: 06 00 00 00 66 6c 6f 61 74 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0004: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....cfWaterHeightFactor. + Hex: 14 00 00 00 63 66 57 61 74 65 72 48 65 69 67 68 74 46 61 63 74 6f 72 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iWaterPoolID. + Hex: 0d 00 00 00 69 57 61 74 65 72 50 6f 6f 6c 49 44 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....ciWaterPoolID. + Hex: 0e 00 00 00 63 69 57 61 74 65 72 50 6f 6f 6c 49 44 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 23 + String: ....bCalcWaterLightmap. + Hex: 13 00 00 00 62 43 61 6c 63 57 61 74 65 72 4c 69 67 68 74 6d 61 70 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....cbCalcWaterLightmap. + Hex: 14 00 00 00 63 62 43 61 6c 63 57 61 74 65 72 4c 69 67 68 74 6d 61 70 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 23 + String: ....bEnableWaterSplash. + Hex: 13 00 00 00 62 45 6e 61 62 6c 65 57 61 74 65 72 53 70 6c 61 73 68 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....cbEnableWaterSplash. + Hex: 14 00 00 00 63 62 45 6e 61 62 6c 65 57 61 74 65 72 53 70 6c 61 73 68 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....bColorVertex. + Hex: 0d 00 00 00 62 43 6f 6c 6f 72 56 65 72 74 65 78 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....cbColorVertex. + Hex: 0e 00 00 00 63 62 43 6f 6c 6f 72 56 65 72 74 65 78 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....bAlphaVertex. + Hex: 0d 00 00 00 62 41 6c 70 68 61 56 65 72 74 65 78 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....cbAlphaVertex. + Hex: 0e 00 00 00 63 62 41 6c 70 68 61 56 65 72 74 65 78 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaVertexChannel. + Hex: 14 00 00 00 69 41 6c 70 68 61 56 65 72 74 65 78 43 68 61 6e 6e 65 6c 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 25 + String: ....ciAlphaVertexChannel. + Hex: 15 00 00 00 63 69 41 6c 70 68 61 56 65 72 74 65 78 43 68 61 6e 6e 65 6c 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....bAlphaBlend. + Hex: 0c 00 00 00 62 41 6c 70 68 61 42 6c 65 6e 64 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....cbAlphaBlend. + Hex: 0d 00 00 00 63 62 41 6c 70 68 61 42 6c 65 6e 64 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....iBlendSrcFunc. + Hex: 0e 00 00 00 69 42 6c 65 6e 64 53 72 63 46 75 6e 63 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 19 + String: ....iBlendDestFunc. + Hex: 0f 00 00 00 69 42 6c 65 6e 64 44 65 73 74 46 75 6e 63 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....iShader. + Hex: 08 00 00 00 69 53 68 61 64 65 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 11 + String: ....fZBias. + Hex: 07 00 00 00 66 5a 42 69 61 73 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....float. + Hex: 06 00 00 00 66 6c 6f 61 74 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....cfZBias. + Hex: 08 00 00 00 63 66 5a 42 69 61 73 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 21 + String: ....iLightMapChannel. + Hex: 11 00 00 00 69 4c 69 67 68 74 4d 61 70 43 68 61 6e 6e 65 6c 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....ciLightMapChannel. + Hex: 12 00 00 00 63 69 4c 69 67 68 74 4d 61 70 43 68 61 6e 6e 65 6c 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....iShaderType. + Hex: 0c 00 00 00 69 53 68 61 64 65 72 54 79 70 65 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....bUserColor. + Hex: 0b 00 00 00 62 55 73 65 72 43 6f 6c 6f 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....bSpecular. + Hex: 0a 00 00 00 62 53 70 65 63 75 6c 61 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....bNormalShader. + Hex: 0e 00 00 00 62 4e 6f 72 6d 61 6c 53 68 61 64 65 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 28 + String: ....bPerPixelLightingShader. + Hex: 18 00 00 00 62 50 65 72 50 69 78 65 6c 4c 69 67 68 74 69 6e 67 53 68 61 64 65 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cUserColor. + Hex: 0b 00 00 00 63 55 73 65 72 43 6f 6c 6f 72 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....color. + Hex: 06 00 00 00 63 6f 6c 6f 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0008: (StorageRaw) { + Size: 12 + String: ...C.......C + Hex: 00 00 7f 43 00 00 00 00 00 00 7f 43 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....cpUserColor. + Hex: 0c 00 00 00 63 70 55 73 65 72 43 6f 6c 6f 72 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 25 + String: ....bExportTextureMatrix. + Hex: 15 00 00 00 62 45 78 70 6f 72 74 54 65 78 74 75 72 65 4d 61 74 72 69 78 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 26 + String: ....cbExportTextureMatrix. + Hex: 16 00 00 00 63 62 45 78 70 6f 72 74 54 65 78 74 75 72 65 4d 61 74 72 69 78 00 } } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 1c 00 00 00 } + 0x0006: (StorageRaw) { + Size: 13 + String: ....textures. + Hex: 09 00 00 00 74 65 78 74 75 72 65 73 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....rollout. + Hex: 08 00 00 00 72 6f 6c 6c 6f 75 74 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....NelTexture. + Hex: 0b 00 00 00 4e 65 6c 54 65 78 74 75 72 65 00 } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....bEnableSlot_1. + Hex: 0e 00 00 00 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 19 + String: ....cbEnableSlot_1. + Hex: 0f 00 00 00 63 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 31 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....bEnableSlot_2. + Hex: 0e 00 00 00 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 19 + String: ....cbEnableSlot_2. + Hex: 0f 00 00 00 63 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 32 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....bEnableSlot_3. + Hex: 0e 00 00 00 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 19 + String: ....cbEnableSlot_3. + Hex: 0f 00 00 00 63 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 33 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....bEnableSlot_4. + Hex: 0e 00 00 00 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 19 + String: ....cbEnableSlot_4. + Hex: 0f 00 00 00 63 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 34 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....bEnableSlot_5. + Hex: 0e 00 00 00 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 35 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 19 + String: ....cbEnableSlot_5. + Hex: 0f 00 00 00 63 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 35 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....bEnableSlot_6. + Hex: 0e 00 00 00 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 36 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 19 + String: ....cbEnableSlot_6. + Hex: 0f 00 00 00 63 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 36 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....bEnableSlot_7. + Hex: 0e 00 00 00 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 37 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 19 + String: ....cbEnableSlot_7. + Hex: 0f 00 00 00 63 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 37 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 18 + String: ....bEnableSlot_8. + Hex: 0e 00 00 00 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 38 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 19 + String: ....cbEnableSlot_8. + Hex: 0f 00 00 00 63 62 45 6e 61 62 6c 65 53 6c 6f 74 5f 38 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....bTexGen_1. + Hex: 0a 00 00 00 62 54 65 78 47 65 6e 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cbTexGen_1. + Hex: 0b 00 00 00 63 62 54 65 78 47 65 6e 5f 31 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....bTexGen_2. + Hex: 0a 00 00 00 62 54 65 78 47 65 6e 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cbTexGen_2. + Hex: 0b 00 00 00 63 62 54 65 78 47 65 6e 5f 32 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....bTexGen_3. + Hex: 0a 00 00 00 62 54 65 78 47 65 6e 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cbTexGen_3. + Hex: 0b 00 00 00 63 62 54 65 78 47 65 6e 5f 33 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....bTexGen_4. + Hex: 0a 00 00 00 62 54 65 78 47 65 6e 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cbTexGen_4. + Hex: 0b 00 00 00 63 62 54 65 78 47 65 6e 5f 34 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....bTexGen_5. + Hex: 0a 00 00 00 62 54 65 78 47 65 6e 5f 35 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cbTexGen_5. + Hex: 0b 00 00 00 63 62 54 65 78 47 65 6e 5f 35 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....bTexGen_6. + Hex: 0a 00 00 00 62 54 65 78 47 65 6e 5f 36 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cbTexGen_6. + Hex: 0b 00 00 00 63 62 54 65 78 47 65 6e 5f 36 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....bTexGen_7. + Hex: 0a 00 00 00 62 54 65 78 47 65 6e 5f 37 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cbTexGen_7. + Hex: 0b 00 00 00 63 62 54 65 78 47 65 6e 5f 37 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 14 + String: ....bTexGen_8. + Hex: 0a 00 00 00 62 54 65 78 47 65 6e 5f 38 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....boolean. + Hex: 08 00 00 00 62 6f 6f 6c 65 61 6e 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0001: (StorageRaw) { + Size: 4 + String: .... } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cbTexGen_8. + Hex: 0b 00 00 00 63 62 54 65 78 47 65 6e 5f 38 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....tTexture_1. + Hex: 0b 00 00 00 74 54 65 78 74 75 72 65 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....textureMap. + Hex: 0b 00 00 00 74 65 78 74 75 72 65 4d 61 70 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....mbTexture_1. + Hex: 0c 00 00 00 6d 62 54 65 78 74 75 72 65 5f 31 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....tTexture_2. + Hex: 0b 00 00 00 74 54 65 78 74 75 72 65 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....textureMap. + Hex: 0b 00 00 00 74 65 78 74 75 72 65 4d 61 70 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....mbTexture_2. + Hex: 0c 00 00 00 6d 62 54 65 78 74 75 72 65 5f 32 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....tTexture_3. + Hex: 0b 00 00 00 74 54 65 78 74 75 72 65 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....textureMap. + Hex: 0b 00 00 00 74 65 78 74 75 72 65 4d 61 70 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....mbTexture_3. + Hex: 0c 00 00 00 6d 62 54 65 78 74 75 72 65 5f 33 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....tTexture_4. + Hex: 0b 00 00 00 74 54 65 78 74 75 72 65 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....textureMap. + Hex: 0b 00 00 00 74 65 78 74 75 72 65 4d 61 70 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....mbTexture_4. + Hex: 0c 00 00 00 6d 62 54 65 78 74 75 72 65 5f 34 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....tTexture_5. + Hex: 0b 00 00 00 74 54 65 78 74 75 72 65 5f 35 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....textureMap. + Hex: 0b 00 00 00 74 65 78 74 75 72 65 4d 61 70 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....mbTexture_5. + Hex: 0c 00 00 00 6d 62 54 65 78 74 75 72 65 5f 35 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....tTexture_6. + Hex: 0b 00 00 00 74 54 65 78 74 75 72 65 5f 36 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....textureMap. + Hex: 0b 00 00 00 74 65 78 74 75 72 65 4d 61 70 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....mbTexture_6. + Hex: 0c 00 00 00 6d 62 54 65 78 74 75 72 65 5f 36 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....tTexture_7. + Hex: 0b 00 00 00 74 54 65 78 74 75 72 65 5f 37 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....textureMap. + Hex: 0b 00 00 00 74 65 78 74 75 72 65 4d 61 70 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....mbTexture_7. + Hex: 0c 00 00 00 6d 62 54 65 78 74 75 72 65 5f 37 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....tTexture_8. + Hex: 0b 00 00 00 74 54 65 78 74 75 72 65 5f 38 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....textureMap. + Hex: 0b 00 00 00 74 65 78 74 75 72 65 4d 61 70 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....mbTexture_8. + Hex: 0c 00 00 00 6d 62 54 65 78 74 75 72 65 5f 38 00 } } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 17 00 00 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....slot1. + Hex: 06 00 00 00 73 6c 6f 74 31 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....rollout. + Hex: 08 00 00 00 72 6f 6c 6c 6f 75 74 00 } + 0x0006: (StorageRaw) { + Size: 25 + String: ....NelMultitextureSlot1. + Hex: 15 00 00 00 4e 65 6c 4d 75 6c 74 69 74 65 78 74 75 72 65 53 6c 6f 74 31 00 } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....cConstant_1. + Hex: 0c 00 00 00 63 43 6f 6e 73 74 61 6e 74 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....color. + Hex: 06 00 00 00 63 6f 6c 6f 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0008: (StorageRaw) { + Size: 12 + String: ...C...C...C + Hex: 00 00 7f 43 00 00 7f 43 00 00 7f 43 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cpConstant. + Hex: 0b 00 00 00 63 70 43 6f 6e 73 74 61 6e 74 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 20 + String: ....iRgbOperation_1. + Hex: 10 00 00 00 69 52 67 62 4f 70 65 72 61 74 69 6f 6e 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbBlendSource_1. + Hex: 12 00 00 00 69 52 67 62 42 6c 65 6e 64 53 6f 75 72 63 65 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg0_1. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 30 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg1_1. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 31 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg2_1. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 32 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg0Operand_1. + Hex: 12 00 00 00 69 52 67 62 41 72 67 30 4f 70 65 72 61 6e 64 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg1Operand_1. + Hex: 12 00 00 00 69 52 67 62 41 72 67 31 4f 70 65 72 61 6e 64 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg2Operand_1. + Hex: 12 00 00 00 69 52 67 62 41 72 67 32 4f 70 65 72 61 6e 64 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iAlphaOperation_1. + Hex: 12 00 00 00 69 41 6c 70 68 61 4f 70 65 72 61 74 69 6f 6e 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaBlendSource_1. + Hex: 14 00 00 00 69 41 6c 70 68 61 42 6c 65 6e 64 53 6f 75 72 63 65 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg0_1. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 30 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg1_1. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 31 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg2_1. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 32 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg0Operand_1. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 30 4f 70 65 72 61 6e 64 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg1Operand_1. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 31 4f 70 65 72 61 6e 64 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg2Operand_1. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 32 4f 70 65 72 61 6e 64 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 21 + String: ....iTextureShader_1. + Hex: 11 00 00 00 69 54 65 78 74 75 72 65 53 68 61 64 65 72 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 21 + String: ....iConstantAlpha_1. + Hex: 11 00 00 00 69 43 6f 6e 73 74 61 6e 74 41 6c 70 68 61 5f 31 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: ff 00 00 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 20 + String: ....sdConstantAlpha. + Hex: 10 00 00 00 73 64 43 6f 6e 73 74 61 6e 74 41 6c 70 68 61 00 } } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 17 00 00 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....slot2. + Hex: 06 00 00 00 73 6c 6f 74 32 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 05 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....rollout. + Hex: 08 00 00 00 72 6f 6c 6c 6f 75 74 00 } + 0x0006: (StorageRaw) { + Size: 25 + String: ....NelMultitextureSlot2. + Hex: 15 00 00 00 4e 65 6c 4d 75 6c 74 69 74 65 78 74 75 72 65 53 6c 6f 74 32 00 } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....cConstant_2. + Hex: 0c 00 00 00 63 43 6f 6e 73 74 61 6e 74 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....color. + Hex: 06 00 00 00 63 6f 6c 6f 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0008: (StorageRaw) { + Size: 12 + String: ...C...C...C + Hex: 00 00 7f 43 00 00 7f 43 00 00 7f 43 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cpConstant. + Hex: 0b 00 00 00 63 70 43 6f 6e 73 74 61 6e 74 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 20 + String: ....iRgbOperation_2. + Hex: 10 00 00 00 69 52 67 62 4f 70 65 72 61 74 69 6f 6e 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbBlendSource_2. + Hex: 12 00 00 00 69 52 67 62 42 6c 65 6e 64 53 6f 75 72 63 65 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg0_2. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 30 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg1_2. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 31 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg2_2. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 32 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg0Operand_2. + Hex: 12 00 00 00 69 52 67 62 41 72 67 30 4f 70 65 72 61 6e 64 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg1Operand_2. + Hex: 12 00 00 00 69 52 67 62 41 72 67 31 4f 70 65 72 61 6e 64 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg2Operand_2. + Hex: 12 00 00 00 69 52 67 62 41 72 67 32 4f 70 65 72 61 6e 64 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iAlphaOperation_2. + Hex: 12 00 00 00 69 41 6c 70 68 61 4f 70 65 72 61 74 69 6f 6e 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaBlendSource_2. + Hex: 14 00 00 00 69 41 6c 70 68 61 42 6c 65 6e 64 53 6f 75 72 63 65 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg0_2. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 30 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg1_2. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 31 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg2_2. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 32 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg0Operand_2. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 30 4f 70 65 72 61 6e 64 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg1Operand_2. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 31 4f 70 65 72 61 6e 64 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg2Operand_2. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 32 4f 70 65 72 61 6e 64 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 21 + String: ....iTextureShader_2. + Hex: 11 00 00 00 69 54 65 78 74 75 72 65 53 68 61 64 65 72 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 21 + String: ....iConstantAlpha_2. + Hex: 11 00 00 00 69 43 6f 6e 73 74 61 6e 74 41 6c 70 68 61 5f 32 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: ff 00 00 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 20 + String: ....sdConstantAlpha. + Hex: 10 00 00 00 73 64 43 6f 6e 73 74 61 6e 74 41 6c 70 68 61 00 } } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 17 00 00 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....slot3. + Hex: 06 00 00 00 73 6c 6f 74 33 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 05 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....rollout. + Hex: 08 00 00 00 72 6f 6c 6c 6f 75 74 00 } + 0x0006: (StorageRaw) { + Size: 25 + String: ....NelMultitextureSlot3. + Hex: 15 00 00 00 4e 65 6c 4d 75 6c 74 69 74 65 78 74 75 72 65 53 6c 6f 74 33 00 } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....cConstant_3. + Hex: 0c 00 00 00 63 43 6f 6e 73 74 61 6e 74 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....color. + Hex: 06 00 00 00 63 6f 6c 6f 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0008: (StorageRaw) { + Size: 12 + String: ...C...C...C + Hex: 00 00 7f 43 00 00 7f 43 00 00 7f 43 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cpConstant. + Hex: 0b 00 00 00 63 70 43 6f 6e 73 74 61 6e 74 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 20 + String: ....iRgbOperation_3. + Hex: 10 00 00 00 69 52 67 62 4f 70 65 72 61 74 69 6f 6e 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbBlendSource_3. + Hex: 12 00 00 00 69 52 67 62 42 6c 65 6e 64 53 6f 75 72 63 65 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg0_3. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 30 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg1_3. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 31 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg2_3. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 32 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg0Operand_3. + Hex: 12 00 00 00 69 52 67 62 41 72 67 30 4f 70 65 72 61 6e 64 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg1Operand_3. + Hex: 12 00 00 00 69 52 67 62 41 72 67 31 4f 70 65 72 61 6e 64 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg2Operand_3. + Hex: 12 00 00 00 69 52 67 62 41 72 67 32 4f 70 65 72 61 6e 64 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iAlphaOperation_3. + Hex: 12 00 00 00 69 41 6c 70 68 61 4f 70 65 72 61 74 69 6f 6e 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaBlendSource_3. + Hex: 14 00 00 00 69 41 6c 70 68 61 42 6c 65 6e 64 53 6f 75 72 63 65 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg0_3. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 30 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg1_3. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 31 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg2_3. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 32 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg0Operand_3. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 30 4f 70 65 72 61 6e 64 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg1Operand_3. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 31 4f 70 65 72 61 6e 64 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg2Operand_3. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 32 4f 70 65 72 61 6e 64 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 21 + String: ....iTextureShader_3. + Hex: 11 00 00 00 69 54 65 78 74 75 72 65 53 68 61 64 65 72 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 21 + String: ....iConstantAlpha_3. + Hex: 11 00 00 00 69 43 6f 6e 73 74 61 6e 74 41 6c 70 68 61 5f 33 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: ff 00 00 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 20 + String: ....sdConstantAlpha. + Hex: 10 00 00 00 73 64 43 6f 6e 73 74 61 6e 74 41 6c 70 68 61 00 } } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 17 00 00 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....slot4. + Hex: 06 00 00 00 73 6c 6f 74 34 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 07 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....rollout. + Hex: 08 00 00 00 72 6f 6c 6c 6f 75 74 00 } + 0x0006: (StorageRaw) { + Size: 25 + String: ....NelMultitextureSlot4. + Hex: 15 00 00 00 4e 65 6c 4d 75 6c 74 69 74 65 78 74 75 72 65 53 6c 6f 74 34 00 } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 16 + String: ....cConstant_4. + Hex: 0c 00 00 00 63 43 6f 6e 73 74 61 6e 74 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....color. + Hex: 06 00 00 00 63 6f 6c 6f 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0008: (StorageRaw) { + Size: 12 + String: ...C...C...C + Hex: 00 00 7f 43 00 00 7f 43 00 00 7f 43 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....cpConstant. + Hex: 0b 00 00 00 63 70 43 6f 6e 73 74 61 6e 74 00 } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 20 + String: ....iRgbOperation_4. + Hex: 10 00 00 00 69 52 67 62 4f 70 65 72 61 74 69 6f 6e 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbBlendSource_4. + Hex: 12 00 00 00 69 52 67 62 42 6c 65 6e 64 53 6f 75 72 63 65 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg0_4. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 30 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg1_4. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 31 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 15 + String: ....iRgbArg2_4. + Hex: 0b 00 00 00 69 52 67 62 41 72 67 32 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg0Operand_4. + Hex: 12 00 00 00 69 52 67 62 41 72 67 30 4f 70 65 72 61 6e 64 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg1Operand_4. + Hex: 12 00 00 00 69 52 67 62 41 72 67 31 4f 70 65 72 61 6e 64 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iRgbArg2Operand_4. + Hex: 12 00 00 00 69 52 67 62 41 72 67 32 4f 70 65 72 61 6e 64 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 22 + String: ....iAlphaOperation_4. + Hex: 12 00 00 00 69 41 6c 70 68 61 4f 70 65 72 61 74 69 6f 6e 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaBlendSource_4. + Hex: 14 00 00 00 69 41 6c 70 68 61 42 6c 65 6e 64 53 6f 75 72 63 65 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg0_4. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 30 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg1_4. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 31 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 17 + String: ....iAlphaArg2_4. + Hex: 0d 00 00 00 69 41 6c 70 68 61 41 72 67 32 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg0Operand_4. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 30 4f 70 65 72 61 6e 64 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg1Operand_4. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 31 4f 70 65 72 61 6e 64 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 24 + String: ....iAlphaArg2Operand_4. + Hex: 14 00 00 00 69 41 6c 70 68 61 41 72 67 32 4f 70 65 72 61 6e 64 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 21 + String: ....iTextureShader_4. + Hex: 11 00 00 00 69 54 65 78 74 75 72 65 53 68 61 64 65 72 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + 0x0006: (StorageRaw) { + Size: 21 + String: ....iConstantAlpha_4. + Hex: 11 00 00 00 69 43 6f 6e 73 74 61 6e 74 41 6c 70 68 61 5f 34 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....type. + Hex: 05 00 00 00 74 79 70 65 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....integer. + Hex: 08 00 00 00 69 6e 74 65 67 65 72 00 } + 0x0006: (StorageRaw) { + Size: 12 + String: ....default. + Hex: 08 00 00 00 64 65 66 61 75 6c 74 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: ff 00 00 00 } + 0x0006: (StorageRaw) { + Size: 7 + String: ....ui. + Hex: 03 00 00 00 75 69 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0006: (StorageRaw) { + Size: 20 + String: ....sdConstantAlpha. + Hex: 10 00 00 00 73 64 43 6f 6e 73 74 61 6e 74 41 6c 70 68 61 00 } } } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....slot5. + Hex: 06 00 00 00 73 6c 6f 74 35 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 07 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... } } } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 0x0006: (StorageRaw) { + Size: 10 + String: ....slot6. + Hex: 06 00 00 00 73 6c 6f 74 36 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 00 00 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 09 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... } } } } } } +0x2007: (StorageContainer) { + 0x0010: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 1e 01 00 00 } } +0x2008: (StorageContainer) { + 0x0010: (StorageRaw) { + Size: 52 + String: ...?...............?...............?................ + Hex: 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 } + 0x0020: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 a0 41 } + 0x0030: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } } } + + +------------------ +(program exited with code: 0) +Press return to continue + diff --git a/code/nel/tools/3d/pipeline_max_dump/config_3.c b/code/nel/tools/3d/pipeline_max_dump/config_3.c new file mode 100644 index 000000000..cbdd4899d --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_dump/config_3.c @@ -0,0 +1,1798 @@ +Pipeline Max Dump (Temporary Tool) +/srv/work/database/interfaces/anims_max/cp_fy_hof_species.max +Config +(Config) [11] { +0 0x2090: (CStorageValue) { 16 } +1 0x20e0: (StorageContainer) [3] { + 0 0x0100: (StorageRaw) { + Size: 12 + String: ...=........ + Hex: cd cc cc 3d 0a 00 00 00 01 00 00 00 } + 1 0x0200: (StorageRaw) { + Size: 48 + String: ...@.. A........................................ + Hex: 00 00 a0 40 00 00 20 41 01 00 00 00 03 00 00 00 08 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 2 0x0300: (StorageRaw) { + Size: 0 + String: + Hex: } } +2 0x20a0: (Config20a0) [3] { + 0 0x0100: (CStorageValue) { 2 } + 1 0x0110: (Config20a0Entry) [24] { + 0 0x0100: (CStorageValue) { 138 } + 1 0x0110: (CStorageValue) { 92 } + 2 0x0120: (CStorageValue) { 1 } + 3 0x0130: (CStorageValue) { 58 } + 4 0x0140: (CStorageValue) { 58 } + 5 0x0150: (CStorageValue) { 0 } + 6 0x0160: (CStorageValue) { 1 } + 7 0x0170: (CStorageValue) { 1 } + 8 0x0180: (CStorageValue) { 0 } + 9 0x0190: (CStorageValue) { 0 } + 10 0x0200: (CStorageValue) { 0 } + 11 0x0210: (CStorageValue) { 0 } + 12 0x0220: (CStorageValue) { 1007192200 } + 13 0x0230: (CStorageValue) { 1002053544 } + 14 0x0240: (CStorageValue) { 33554424 } + 15 0x0250: (CStorageValue) { 65472 } + 16 0x0260: (CStorageValue) { 0 } + 17 0x0270: (CStorageValue) { 0 } + 18 0x0280: (CStorageValue) { 0 } + 19 0x0310: (CStorageValue) { 0 } + 20 0x0320: (CStorageValue) { 0 } + 21 0x0290: (CStorageValue) { } + 22 0x0300: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } } + 23 0x0330: (StorageRaw) { + Size: 16 + String: ...._.../....... + Hex: 96 05 00 00 5f 00 00 00 2f 06 00 00 e3 00 00 00 } } + 2 0x0110: (Config20a0Entry) [24] { + 0 0x0100: (CStorageValue) { 300 } + 1 0x0110: (CStorageValue) { 905 } + 2 0x0120: (CStorageValue) { 1 } + 3 0x0130: (CStorageValue) { 7 } + 4 0x0140: (CStorageValue) { 58 } + 5 0x0150: (CStorageValue) { 0 } + 6 0x0160: (CStorageValue) { 1 } + 7 0x0170: (CStorageValue) { 1 } + 8 0x0180: (CStorageValue) { 0 } + 9 0x0190: (CStorageValue) { 0 } + 10 0x0200: (CStorageValue) { 0 } + 11 0x0210: (CStorageValue) { 0 } + 12 0x0220: (CStorageValue) { 1007192200 } + 13 0x0230: (CStorageValue) { 1041638793 } + 14 0x0240: (CStorageValue) { 524276 } + 15 0x0250: (CStorageValue) { 57216 } + 16 0x0260: (CStorageValue) { 0 } + 17 0x0270: (CStorageValue) { 1 } + 18 0x0280: (CStorageValue) { 0 } + 19 0x0310: (CStorageValue) { 0 } + 20 0x0320: (CStorageValue) { 0 } + 21 0x0290: (CStorageValue) { Untitled 1 } + 22 0x0300: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } } + 23 0x0330: (StorageRaw) { + Size: 16 + String: ....Y.......'... + Hex: f4 ff ff ff 59 00 00 00 00 05 00 00 27 04 00 00 } } } +3 0x2190: (StorageRaw) { + Size: 0 + String: + Hex: } +4 0x20b0: (StorageContainer) [9] { + 0 0x0010: (StorageRaw) { + Size: 4 + String: .... + Hex: 1e 00 00 00 } + 1 0x0020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 2 0x0030: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 3 0x0040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 4 0x0050: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 5 0x0060: (StorageRaw) { + Size: 4 + String: .%.. + Hex: 80 25 00 00 } + 6 0x0070: (StorageRaw) { + Size: 4 + String: .... + Hex: e0 0b 00 00 } + 7 0x0100: (StorageContainer) [1] { + 0 0x0090: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } } + 8 0x0110: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } } +5 0x2130: (StorageContainer) [3] { + 0 0x0100: (StorageRaw) { + Size: 0 + String: + Hex: } + 1 0x0120: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0110: (StorageContainer) [4] { + 0 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 1 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 2 0x0400: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 3 0x0300: (StorageContainer) [4] { + 0 0x0100: (StorageRaw) { + Size: 11 + String: ........... + Hex: 07 00 00 00 df f8 fc e8 f0 f8 9d } + 1 0x0110: (StorageRaw) { + Size: 12 + String: ............ + Hex: 08 00 00 00 dc cf d3 dc c8 d9 df 9d } + 2 0x0120: (StorageRaw) { + Size: 17 + String: ................. + Hex: 0d 00 00 00 ab a9 ad b0 ad ac ad aa a9 ae ac a8 9d } + 3 0x0130: (StorageRaw) { + Size: 12 + String: ..,.:.....J. + Hex: 94 b5 2c 0f 3a c5 7b 02 e9 a7 4a d8 } } } } +6 0x2080: (StorageContainer) [100] { + 0 0x2801: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 1 0x2900: (StorageRaw) { + Size: 4 + String: c... + Hex: 63 00 00 00 } + 2 0x2954: (StorageRaw) { + Size: 0 + String: + Hex: } + 3 0x2827: (StorageRaw) { + Size: 4 + String: .... + Hex: 80 00 00 00 } + 4 0x2828: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 00 00 00 } + 5 0x3010: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 6 0x3011: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 7 0x3012: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 8 0x3013: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 9 0x3014: (StorageRaw) { + Size: 4 + String: fff? + Hex: 66 66 66 3f } + 10 0x3015: (StorageRaw) { + Size: 4 + String: fff? + Hex: 66 66 66 3f } + 11 0x3016: (StorageRaw) { + Size: 4 + String: fff? + Hex: 66 66 66 3f } + 12 0x3017: (StorageRaw) { + Size: 4 + String: ..L? + Hex: cd cc 4c 3f } + 13 0x3018: (StorageRaw) { + Size: 4 + String: ..L? + Hex: cd cc 4c 3f } + 14 0x3019: (StorageRaw) { + Size: 4 + String: ..L? + Hex: cd cc 4c 3f } + 15 0x301a: (StorageRaw) { + Size: 4 + String: 333? + Hex: 33 33 33 3f } + 16 0x301b: (StorageRaw) { + Size: 4 + String: 333? + Hex: 33 33 33 3f } + 17 0x301c: (StorageRaw) { + Size: 4 + String: 333? + Hex: 33 33 33 3f } + 18 0x301d: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 19 0x301e: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 20 0x301f: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 21 0x3020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 22 0x28fa: (StorageRaw) { + Size: 896 + String: ...............?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?...............................................................................?...............?...............?................................................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 23 0x2910: (StorageRaw) { + Size: 80 + String: ...........?...............?...............?.................................... + Hex: 01 00 00 00 0b 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 24 0x2911: (StorageRaw) { + Size: 80 + String: ...........?...............?...............?...............?.................... + Hex: 01 00 00 00 02 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 25 0x2912: (StorageRaw) { + Size: 80 + String: ...........?...............>.Fw......Fw?...>..........z...I?..zC................ + Hex: 00 00 00 00 07 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 ef 83 84 3e ea 46 77 bf 00 00 00 00 ea 46 77 3f ef 83 84 3e 00 00 00 00 00 00 00 00 00 00 7a c3 db 0f 49 3f 00 00 7a 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 26 0x2930: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 27 0x2931: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 28 0x2932: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 } + 29 0x2800: (StorageRaw) { + Size: 4 + String: .... + Hex: 12 00 00 00 } + 30 0x2810: (StorageRaw) { + Size: 80 + String: ........\.|?s.J=D~*...1..4.>..q.....6uu?uj.>..N...O.u!....I?1..@................ + Hex: 00 00 00 00 07 00 00 00 5c 1c 7c 3f 73 02 4a 3d 44 7e 2a be d4 d0 31 be e7 34 8f 3e 92 ba 71 bf 7f bc 19 af 36 75 75 3f 75 6a 91 3e 10 ff 4e bc f4 a0 4f bf 75 21 90 c0 da 0f 49 3f 31 e4 81 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 31 0x2811: (StorageRaw) { + Size: 80 + String: ...........?..............;............?..;..@.>..Y........;.................... + Hex: 01 00 00 00 04 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 80 00 00 00 00 2e bd 3b b3 00 00 80 bf 00 00 00 00 00 00 80 3f 2e bd 3b b3 00 40 11 3e 00 df 59 bf 00 00 00 00 e6 1c ea 3b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 32 0x3040: (StorageRaw) { + Size: 12 + String: ...@...?...? } + 33 0x2876: (StorageRaw) { + Size: 0 + String: + Hex: } + 34 0x3000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 35 0x2830: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 36 0x2836: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 37 0x2840: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 38 0x28f4: (StorageRaw) { + Size: 4 + String: .... + Hex: ff ff ff ff } + 39 0x2846: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 40 0x2870: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 41 0x2861: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 42 0x2890: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 43 0x28a0: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 44 0x28b1: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 45 0x28b5: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 46 0x28c1: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 47 0x28c5: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 48 0x28c9: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 00 00 00 } + 49 0x3030: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 05 00 00 00 } + 50 0x28cd: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 51 0x3054: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 52 0x3058: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 01 00 } + 53 0x3060: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 54 0x3064: (StorageRaw) { + Size: 4 + String: .... + Hex: cd cc cc bd } + 55 0x3068: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 56 0x4080: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 57 0x4000: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 58 0x4040: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 59 0x4100: (StorageRaw) { + Size: 40 + String: ........................................ + Hex: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 60 0x3004: (StorageRaw) { + Size: 12 + String: ............ + Hex: 00 00 80 ff 00 00 80 ff 00 00 c0 ff } + 61 0x3008: (StorageRaw) { + Size: 4 + String: ..(@ + Hex: b4 9a 28 40 } + 62 0x4110: (StorageRaw) { + Size: 4 + String: ...? + Hex: ff ff 7f 3f } + 63 0x3041: (StorageRaw) { + Size: 12 + String: ...@...?...? } + 64 0x2877: (StorageRaw) { + Size: 0 + String: + Hex: } + 65 0x3001: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 66 0x2831: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 67 0x2837: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 68 0x2841: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 69 0x28f5: (StorageRaw) { + Size: 4 + String: .... + Hex: ff ff ff ff } + 70 0x2847: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 71 0x2871: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 72 0x2862: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 73 0x2891: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 74 0x28a1: (StorageRaw) { + Size: 16 + String: ...=...=fff?fff? + Hex: cd cc cc 3d cd cc cc 3d 66 66 66 3f 66 66 66 3f } + 75 0x28b2: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 76 0x28b6: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 77 0x28c2: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 78 0x28c6: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 79 0x28ca: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 00 00 00 } + 80 0x3031: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 00 05 00 00 00 } + 81 0x28ce: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 82 0x3055: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 83 0x3059: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 84 0x3061: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 85 0x3065: (StorageRaw) { + Size: 4 + String: .... + Hex: cd cc cc bd } + 86 0x3069: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 87 0x4081: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 88 0x4001: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 } + 89 0x4041: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 90 0x4101: (StorageRaw) { + Size: 40 + String: ........................................ + Hex: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 91 0x3005: (StorageRaw) { + Size: 12 + String: ............ + Hex: 00 00 80 7f 00 00 80 ff 00 00 00 00 } + 92 0x3009: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 93 0x4111: (StorageRaw) { + Size: 4 + String: .q.? + Hex: 02 71 c2 3f } + 94 0x2820: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 95 0x2821: (StorageRaw) { + Size: 0 + String: + Hex: } + 96 0x2826: (StorageRaw) { + Size: 4 + String: F.L. + Hex: 46 00 4c 00 } + 97 0x2825: (StorageRaw) { + Size: 28 + String: ......................%D.... + Hex: 00 00 00 00 02 00 00 00 05 00 00 00 03 00 00 00 00 00 00 00 00 00 25 44 01 00 00 00 } + 98 0x3038: (StorageRaw) { + Size: 56 + String: ........ ...........d...>............................... + Hex: 00 00 00 00 00 00 00 00 20 00 00 00 01 00 00 00 1e 00 00 00 64 00 00 00 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 } + 99 0x4114: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } } +7 0x20d0: (StorageContainer) [9] { + 0 0x0005: (StorageRaw) { + Size: 20 + String: .................... + Hex: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 1 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 2 0x0002: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 12 00 00 } + 3 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } + 4 0x0004: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 12 00 00 } + 5 0x0010: (StorageRaw) { + Size: 4 + String: .... + Hex: 80 02 00 00 } + 6 0x0020: (StorageRaw) { + Size: 4 + String: .... + Hex: e0 01 00 00 } + 7 0x0030: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f } + 8 0x0031: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 } } +8 0x2160: (StorageContainer) [5] { + 0 0x0100: (StorageRaw) { + Size: 12 + String: .......?...? + Hex: 00 00 00 00 00 00 80 3f 00 00 80 3f } + 1 0x0200: (StorageRaw) { + Size: 8 + String: ........ + Hex: 01 00 00 00 01 00 00 00 } + 2 0x0300: (StorageRaw) { + Size: 28 + String: ............................ + Hex: 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 } + 3 0x0400: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 00 00 00 } + 4 0x0500: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 } } +9 0x21a0: (StorageRaw) { + Size: 0 + String: + Hex: } +10 0x2180: (ConfigScript) [2] { + 0 0x0040: (ConfigScriptEntry) [2] { + 0 0x0050: (ConfigScriptHeader) { + SuperClassID: 3072 + ClassID: (0x222b9eb9, 0x64c75fec) } + 1 0x0007: (ConfigScriptMetaContainer) [9] { + 0 0x0060: (CStorageValue) { 8 } + 1 0x0007: (ConfigScriptMetaContainer) [39] { + 0 0x0060: (CStorageValue) { 38 } + 1 0x0006: (ConfigScriptMetaString) { main } + 2 0x0003: (CStorageValue) { 0 } + 3 0x0003: (CStorageValue) { 1 } + 4 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { rollout } + 2 0x0006: (ConfigScriptMetaString) { NelParams } } + 5 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bLightMap } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } } } + 6 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bUnlighted } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbUnlighted } } } } + 7 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bStainedGlassWindow } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbStainedGlassWindow } } } } + 8 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bAlphaTest } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbAlphaTest } } } } + 9 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bForceZWrite } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbForceZWrite } } } } + 10 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bForceNoZWrite } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbForceNoZWrite } } } } + 11 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bWater } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } } } + 12 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { fBumpUScale } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { float } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0004: (CStorageValue) { 0.010000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cfBumpUScale } } } } + 13 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { fBumpVScale } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { float } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0004: (CStorageValue) { 0.010000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cfBumpVScale } } } } + 14 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { fBumpUSpeed } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { float } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0004: (CStorageValue) { 0.010000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cfBumpUSpeed } } } } + 15 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { fBumpVSpeed } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { float } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0004: (CStorageValue) { 0.010000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cfBumpVSpeed } } } } + 16 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { fDisplaceMapUScale } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { float } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0004: (CStorageValue) { 0.005000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cfDisplaceMapUScale } } } } + 17 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { fDisplaceMapVScale } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { float } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0004: (CStorageValue) { 0.005000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cfDisplaceMapVScale } } } } + 18 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { fDisplaceMapUSpeed } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { float } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0004: (CStorageValue) { 0.005000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cfDisplaceMapUSpeed } } } } + 19 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { fDisplaceMapVSpeed } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { float } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0004: (CStorageValue) { 0.005000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cfDisplaceMapVSpeed } } } } + 20 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { fWaterHeightFactor } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { float } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0004: (CStorageValue) { 1.000000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cfWaterHeightFactor } } } } + 21 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iWaterPoolID } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { ciWaterPoolID } } } } + 22 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bCalcWaterLightmap } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbCalcWaterLightmap } } } } + 23 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bColorVertex } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbColorVertex } } } } + 24 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bAlphaVertex } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbAlphaVertex } } } } + 25 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaVertexChannel } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { ciAlphaVertexChannel } } } } + 26 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bAlphaBlend } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbAlphaBlend } } } } + 27 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iBlendSrcFunc } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 28 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iBlendDestFunc } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 29 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iShader } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 30 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { fZBias } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { float } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cfZBias } } } } + 31 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iLightMapChannel } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 2 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { ciLightMapChannel } } } } + 32 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iShaderType } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 33 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bUserColor } + 2 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } } } + 34 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bSpecular } + 2 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } } } + 35 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bNormalShader } + 2 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } } } + 36 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bPerPixelLightingShader } + 2 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } } } + 37 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { cUserColor } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { color } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0008: (CStorageValue) { 255.000000 0.000000 255.000000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cpUserColor } } } } + 38 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bExportTextureMatrix } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbExportTextureMatrix } } } } } + 2 0x0007: (ConfigScriptMetaContainer) [29] { + 0 0x0060: (CStorageValue) { 28 } + 1 0x0006: (ConfigScriptMetaString) { textures } + 2 0x0003: (CStorageValue) { 1 } + 3 0x0003: (CStorageValue) { 2 } + 4 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { rollout } + 2 0x0006: (ConfigScriptMetaString) { NelTexture } } + 5 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bEnableSlot_1 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbEnableSlot_1 } } } } + 6 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bEnableSlot_2 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbEnableSlot_2 } } } } + 7 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bEnableSlot_3 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbEnableSlot_3 } } } } + 8 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bEnableSlot_4 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbEnableSlot_4 } } } } + 9 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bEnableSlot_5 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbEnableSlot_5 } } } } + 10 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bEnableSlot_6 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbEnableSlot_6 } } } } + 11 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bEnableSlot_7 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbEnableSlot_7 } } } } + 12 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bEnableSlot_8 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbEnableSlot_8 } } } } + 13 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bTexGen_1 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbTexGen_1 } } } } + 14 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bTexGen_2 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbTexGen_2 } } } } + 15 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bTexGen_3 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbTexGen_3 } } } } + 16 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bTexGen_4 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbTexGen_4 } } } } + 17 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bTexGen_5 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbTexGen_5 } } } } + 18 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bTexGen_6 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbTexGen_6 } } } } + 19 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bTexGen_7 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbTexGen_7 } } } } + 20 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bTexGen_8 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { Boolean } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0001: (CStorageValue) { 0 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cbTexGen_8 } } } } + 21 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { tTexture_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { textureMap } + 3 0x0006: (ConfigScriptMetaString) { ui } + 4 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { mbTexture_1 } } } } + 22 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { tTexture_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { textureMap } + 3 0x0006: (ConfigScriptMetaString) { ui } + 4 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { mbTexture_2 } } } } + 23 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { tTexture_3 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { textureMap } + 3 0x0006: (ConfigScriptMetaString) { ui } + 4 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { mbTexture_3 } } } } + 24 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { tTexture_4 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { textureMap } + 3 0x0006: (ConfigScriptMetaString) { ui } + 4 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { mbTexture_4 } } } } + 25 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { tTexture_5 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { textureMap } + 3 0x0006: (ConfigScriptMetaString) { ui } + 4 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { mbTexture_5 } } } } + 26 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { tTexture_6 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { textureMap } + 3 0x0006: (ConfigScriptMetaString) { ui } + 4 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { mbTexture_6 } } } } + 27 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { tTexture_7 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { textureMap } + 3 0x0006: (ConfigScriptMetaString) { ui } + 4 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { mbTexture_7 } } } } + 28 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { tTexture_8 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { textureMap } + 3 0x0006: (ConfigScriptMetaString) { ui } + 4 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { mbTexture_8 } } } } } + 3 0x0007: (ConfigScriptMetaContainer) [20] { + 0 0x0060: (CStorageValue) { 19 } + 1 0x0006: (ConfigScriptMetaString) { slot1 } + 2 0x0003: (CStorageValue) { 2 } + 3 0x0003: (CStorageValue) { 3 } + 4 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { rollout } + 2 0x0006: (ConfigScriptMetaString) { NelMultitextureSlot1 } } + 5 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { cConstant_1 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { color } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0008: (CStorageValue) { 255.000000 255.000000 255.000000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cpConstant } } } } + 6 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbOperation_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 7 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbBlendSource_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 8 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbArg0_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 9 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbArg1_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 10 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbArg0Operand_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 11 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbArg1Operand_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 12 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaOperation_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 13 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaBlendSource_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 14 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaArg0_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 15 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaArg1_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 16 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaArg0Operand_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 3 } } } + 17 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaArg1Operand_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 3 } } } + 18 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iTextureShader_1 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 19 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iConstantAlpha_1 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 255 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { sdConstantAlpha } } } } } + 4 0x0007: (ConfigScriptMetaContainer) [20] { + 0 0x0060: (CStorageValue) { 19 } + 1 0x0006: (ConfigScriptMetaString) { slot2 } + 2 0x0003: (CStorageValue) { 3 } + 3 0x0003: (CStorageValue) { 4 } + 4 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { rollout } + 2 0x0006: (ConfigScriptMetaString) { NelMultitextureSlot2 } } + 5 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { cConstant_2 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { color } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0008: (CStorageValue) { 255.000000 255.000000 255.000000 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cpConstant } } } } + 6 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbOperation_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 7 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbBlendSource_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 8 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbArg0_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 9 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbArg1_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 10 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbArg0Operand_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 11 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iRgbArg1Operand_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 12 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaOperation_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 13 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaBlendSource_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 14 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaArg0_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 15 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaArg1_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 16 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaArg0Operand_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 3 } } } + 17 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iAlphaArg1Operand_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 3 } } } + 18 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iTextureShader_2 } + 2 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 1 } } } + 19 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { iConstantAlpha_2 } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { integer } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0003: (CStorageValue) { 255 } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { sdConstantAlpha } } } } } + 5 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { slot3 } + 2 0x0003: (CStorageValue) { 4 } + 3 0x0003: (CStorageValue) { 5 } + 4 0x0007: (ConfigScriptMetaContainer) [1] { + 0 0x0060: (CStorageValue) { 0 } } } + 6 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { slot4 } + 2 0x0003: (CStorageValue) { 5 } + 3 0x0003: (CStorageValue) { 6 } + 4 0x0007: (ConfigScriptMetaContainer) [1] { + 0 0x0060: (CStorageValue) { 0 } } } + 7 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { slot5 } + 2 0x0003: (CStorageValue) { 6 } + 3 0x0003: (CStorageValue) { 7 } + 4 0x0007: (ConfigScriptMetaContainer) [1] { + 0 0x0060: (CStorageValue) { 0 } } } + 8 0x0007: (ConfigScriptMetaContainer) [5] { + 0 0x0060: (CStorageValue) { 4 } + 1 0x0006: (ConfigScriptMetaString) { slot6 } + 2 0x0003: (CStorageValue) { 7 } + 3 0x0003: (CStorageValue) { 8 } + 4 0x0007: (ConfigScriptMetaContainer) [1] { + 0 0x0060: (CStorageValue) { 0 } } } } } + 1 0x0040: (ConfigScriptEntry) [2] { + 0 0x0050: (ConfigScriptHeader) { + SuperClassID: 3088 + ClassID: (0x043e0955, 0x5a8003f9) } + 1 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0007: (ConfigScriptMetaContainer) [13] { + 0 0x0060: (CStorageValue) { 12 } + 1 0x0006: (ConfigScriptMetaString) { pblock } + 2 0x0003: (CStorageValue) { 0 } + 3 0x0003: (CStorageValue) { 1 } + 4 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { rollout } + 2 0x0006: (ConfigScriptMetaString) { AdditionnalBitmaps } } + 5 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bitmap1FileName } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { String } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0005: (ConfigScriptMetaString) { } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cBitmap1FileName } } } } + 6 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bitmap2FileName } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { String } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0005: (ConfigScriptMetaString) { } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cBitmap2FileName } } } } + 7 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bitmap3FileName } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { String } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0005: (ConfigScriptMetaString) { } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cBitmap3FileName } } } } + 8 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bitmap4FileName } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { String } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0005: (ConfigScriptMetaString) { } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cBitmap4FileName } } } } + 9 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bitmap5FileName } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { String } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0005: (ConfigScriptMetaString) { } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cBitmap5FileName } } } } + 10 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bitmap6FileName } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { String } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0005: (ConfigScriptMetaString) { } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cBitmap6FileName } } } } + 11 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bitmap7FileName } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { String } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0005: (ConfigScriptMetaString) { } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cBitmap7FileName } } } } + 12 0x0007: (ConfigScriptMetaContainer) [3] { + 0 0x0060: (CStorageValue) { 2 } + 1 0x0006: (ConfigScriptMetaString) { bitmap8FileName } + 2 0x0007: (ConfigScriptMetaContainer) [7] { + 0 0x0060: (CStorageValue) { 6 } + 1 0x0006: (ConfigScriptMetaString) { type } + 2 0x0006: (ConfigScriptMetaString) { String } + 3 0x0006: (ConfigScriptMetaString) { default } + 4 0x0005: (ConfigScriptMetaString) { } + 5 0x0006: (ConfigScriptMetaString) { ui } + 6 0x0007: (ConfigScriptMetaContainer) [2] { + 0 0x0060: (CStorageValue) { 1 } + 1 0x0006: (ConfigScriptMetaString) { cBitmap8FileName } } } } } } } } } + + +------------------ +(program exited with code: 0) +Press return to continue + diff --git a/code/nel/tools/3d/pipeline_max_dump/info.txt b/code/nel/tools/3d/pipeline_max_dump/info.txt new file mode 100644 index 000000000..db3130509 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_dump/info.txt @@ -0,0 +1,1184 @@ + + + +see: +http://area.autodesk.com/blogs/chris/reading_and_modifying_asset_file_paths_in_the_3ds_max_file +file:///usr/share/doc/libgsf-1-dev/html/gsf/api.html + + + +(max 3.x) +/srv/work/database/interfaces/anims_max/cp_fy_hof_species.max: +d 0 *root* +f 52 VideoPostQueue +f 2159653 Scene +f 1228 DllDirectory +f 18700 Config +f 3194 ClassDirectory3 +f 176 ClassData +f 34780 SummaryInformation +f 3352 DocumentSummaryInformation + +(max 2010) +/home/kaetemi/source/minimax/GE_Acc_MikotoBaniere.max: +d 0 *root* +f 52 VideoPostQueue <- not important +f 147230 Scene <- the main scene, todo +f 366 FileAssetMetaData2 <- this is new in max2010! (it is unfortunately in a different format ...) +f 2198 DllDirectory <- a listing of dlls used by this file +f 29605 Config <- contains stuff related to the paramblocks in max scripts, needed for handling nel material +f 3438 ClassDirectory3 <- a listing of used classes, the index in this list may be relevant to chunk ids +f 691 ClassData <- maybe contains global class data +f 29576 SummaryInformation <- standard windows stuff, different format +f 2320 DocumentSummaryInformation + + + +kaetemi@benzaiten ~/source/minimax/build $ gsf dump /home/kaetemi/source/minimax/GE_Acc_MikotoBaniere.max VideoPostQueue +VideoPostQueue +[ + 50 00 (id: 0x0050) + 0a 00 00 00 (size: 10 - 6 = 4) + [ + 01 00 00 00 (value: 1) + ] +] +[ + 60 00 (id: 0x0060) + 2a 00 00 80 (size: 42 - 6 = 36) (note: negative bit = container) + [ + 10 00 (id: 0x0010) + 1e 00 00 00 (size: 30 - 6 = 24) + [ + 07 00 00 00 (value: 7) + 01 00 00 00 (value: 1) + 00 00 00 00 + 00 00 00 00 + 20 12 00 00 (value: 4610) + 00 00 00 00 + ] + 20 00 (id: 0x0020) + 06 00 00 00 (size: 6 - 6 = 0) + ] +] + + + + +Pipeline Max Dump (Temporary Tool) +/srv/work/database/interfaces/anims_max/cp_fy_hof_species.max +DllDirectory +CHUNK ID: 8248, SIZE: 112, CONTAINER: 1 + CHUNK ID: 8249, SIZE: 80, CONTAINER: 0 + UTF16: Default materials and textures (Kinetix) + SKIPPED: 0 + CHUNK ID: 8247, SIZE: 20, CONTAINER: 0 + UTF16: mtlgen.dlt + SKIPPED: 0 +SKIPPED: 0 +CHUNK ID: 8248, SIZE: 108, CONTAINER: 1 + CHUNK ID: 8249, SIZE: 82, CONTAINER: 0 + UTF16: Standard materials and textures (Kinetix) + SKIPPED: 0 + CHUNK ID: 8247, SIZE: 14, CONTAINER: 0 + UTF16: mtl.dlt + SKIPPED: 0 +SKIPPED: 0 +CHUNK ID: 8248, SIZE: 90, CONTAINER: 1 + CHUNK ID: 8249, SIZE: 54, CONTAINER: 0 + UTF16: Standard samplers (Kinetix) + SKIPPED: 0 + CHUNK ID: 8247, SIZE: 24, CONTAINER: 0 + UTF16: samplers.dlh + SKIPPED: 0 +SKIPPED: 0 +CHUNK ID: 8248, SIZE: 88, CONTAINER: 1 + CHUNK ID: 8249, SIZE: 60, CONTAINER: 0 + UTF16: Standard controllers (Kinetix) + SKIPPED: 0 + CHUNK ID: 8247, SIZE: 16, CONTAINER: 0 + UTF16: ctrl.dlc + SKIPPED: 0 +SKIPPED: 0 +CHUNK ID: 8248, SIZE: 128, CONTAINER: 1 + CHUNK ID: 8249, SIZE: 92, CONTAINER: 0 + UTF16: Physique Modifier: a skeletal deformation tool + SKIPPED: 0 + CHUNK ID: 8247, SIZE: 24, CONTAINER: 0 + UTF16: physique.dlm + SKIPPED: 0 +SKIPPED: 0 +CHUNK ID: 8248, SIZE: 94, CONTAINER: 1 + CHUNK ID: 8249, SIZE: 60, CONTAINER: 0 + UTF16: Editable mesh object (Kinetix) + SKIPPED: 0 + CHUNK ID: 8247, SIZE: 22, CONTAINER: 0 + UTF16: update1.dlo + SKIPPED: 0 +SKIPPED: 0 +CHUNK ID: 8248, SIZE: 84, CONTAINER: 1 + CHUNK ID: 8249, SIZE: 54, CONTAINER: 0 + UTF16: BIPED.DLC: Biped Controller + SKIPPED: 0 + CHUNK ID: 8247, SIZE: 18, CONTAINER: 0 + UTF16: biped.dlc + SKIPPED: 0 +SKIPPED: 0 +CHUNK ID: 8248, SIZE: 260, CONTAINER: 1 + CHUNK ID: 8249, SIZE: 218, CONTAINER: 0 + UTF16: Map extender plug-in --- made by 3DSMax Team - UBI Soft Romania & Daniel Raviart - Ubi Research & Development + SKIPPED: 0 + CHUNK ID: 8247, SIZE: 30, CONTAINER: 0 + UTF16: mapext198m3.dlm + SKIPPED: 0 +SKIPPED: 0 +CHUNK ID: 8248, SIZE: 106, CONTAINER: 1 + CHUNK ID: 8249, SIZE: 74, CONTAINER: 0 + UTF16: Standard pre-filter kernels (Kinetix) + SKIPPED: 0 + CHUNK ID: 8247, SIZE: 20, CONTAINER: 0 + UTF16: kernel.dlk + SKIPPED: 0 +SKIPPED: 0 +CHUNK ID: 8248, SIZE: 98, CONTAINER: 1 + CHUNK ID: 8249, SIZE: 70, CONTAINER: 0 + UTF16: Default scanline renderer (Kinetix) + SKIPPED: 0 + CHUNK ID: 8247, SIZE: 16, CONTAINER: 0 + UTF16: rend.dlr + SKIPPED: 0 +SKIPPED: 0 + + + +Chunk Header +As follows: +2 bytes ID, interpretation context (parent) dependent, often refers to a class or version configuration used to parse this chunk +4 bytes Size, most significant bit flags whether the chunk is a container +if Size is 0: 8 bytes Size64, idem meaning Size, support for large files + + +Scene + + +The Scene stream contains 1 root chunk, with as ID the version that the max file is stored in. +0x2004 3 +0x2006 4 +0x2008 5 +0x2009 6 +? 7 +? 8 +0x200E 9 +0x200F 2008 (10) +? 2009 (11) +0x2012 2010 (12) +? 2011 (13) +? 2012 (14) +? 2013 (15) +The size of this chunk, including the header size, is equal to the size of the Scene stream. + + + + + +max 3 + 0 | 04 20 (id version) + 25 f4 20 80 (size + containerflag) + 00 00 (id) + 40 00 00 80 (size + containerflag) + 35 20 + 0a 00 | ..%.....@...5... + 10 | 00 00 02 00 00 00 01 25 0a 00 00 00 00 00 80 3f | .......%.......? + 20 | 00 25 0e 00 00 00 00 00 00 80 00 00 00 80 02 30 | .%.............0 + 30 | 0a 00 00 00 00 00 00 00 03 30 0e 00 00 00 00 00 | .........0...... + 40 | 00 80 00 00 00 80 01 00 b8 01 00 80 01 00 0a 00 | ................ + 50 | 00 00 0d 00 00 00 05 00 08 00 00 00 06 00 02 00 | ................ + 60 | 20 00 00 80 03 00 0a 00 00 00 00 00 00 00 04 00 | ................ + 70 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................ + 80 | 20 00 00 80 03 00 0a 00 00 00 01 00 00 00 04 00 | ................ + 90 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................ + a0 | 20 00 00 80 03 00 0a 00 00 00 02 00 00 00 04 00 | ................ + b0 | 06 00 00 00 00 01 0a 00 00 00 00 00 80 3f 02 00 | .............?.. + c0 | 20 00 00 80 03 00 0a 00 00 00 03 00 00 00 04 00 | ................ + d0 | 06 00 00 00 00 01 0a 00 00 00 00 00 80 3f 02 00 | .............?.. + e0 | 20 00 00 80 03 00 0a 00 00 00 04 00 00 00 04 00 | ................ + f0 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................ + 100 | 20 00 00 80 03 00 0a 00 00 00 05 00 00 00 04 00 | ................ + 110 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................ + 120 | 20 00 00 80 03 00 0a 00 00 00 06 00 00 00 04 00 | ................ + 130 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................ + 140 | 20 00 00 80 03 00 0a 00 00 00 07 00 00 00 04 00 | ................ + 150 | 06 00 00 00 00 01 0a 00 00 00 00 00 80 3f 02 00 | .............?.. + 160 | 20 00 00 80 03 00 0a 00 00 00 08 00 00 00 04 00 | ................ + + + + + +max 9 (stored under wine) +Scene: + 0 | 0e 20 (id version) + 00 00 00 00 (missing size) + 01 49 + 40 00 00 00 00 80 00 00 | .......I@....... + 10 | 00 00 00 00 d0 00 00 00 00 00 00 80 0b 00 00 00 | ................ + 20 | 00 00 26 00 00 00 00 00 00 00 3c 29 06 5a 1e 0c | ..&.......<).Z.. + 30 | 42 30 60 11 00 00 00 00 00 15 28 23 04 00 01 00 | B0`.......(#.... + 40 | 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 00 00 | ........!....... + 50 | 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 | ..............@. + 60 | 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 00 | .........!...... + 70 | 00 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 | ...............@ + 80 | 00 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 | ..........!..... + 90 | 00 00 02 00 04 00 00 00 00 00 82 00 00 00 00 00 | ................ + a0 | 40 00 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 | @..........!.... + b0 | 00 00 00 04 00 09 00 00 00 00 00 + 80 06 00 00 00 | ................ + c0 | 00 40 ff ff ff ff + 0c 00 00 00 00 00 18 00 00 00 | .@.............. + d0 | 00 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 | ................ + e0 | 00 00 00 00 ac 00 00 00 00 00 00 80 34 20 00 00 | ............4... + f0 | 00 00 16 00 00 00 00 00 00 00 00 00 00 00 ff ff | ................ + 100 | ff ff 45 20 00 00 00 00 12 00 00 00 00 00 00 00 | ..E............. + 110 | 00 00 00 00 47 20 00 00 00 00 64 00 00 00 00 00 | ....G.....d..... + 120 | 00 80 48 20 00 00 00 00 24 00 00 00 00 00 00 80 | ..H.....$....... + 130 | 00 27 00 00 00 00 16 00 00 00 00 00 00 00 02 00 | .'.............. + 140 | 00 00 00 00 00 00 49 20 00 00 00 00 24 00 00 00 | ......I.....$... + 150 | 00 00 00 80 00 27 00 00 00 00 16 00 00 00 00 00 | .....'.......... + 160 | 00 00 02 00 00 00 01 00 00 00 4a 20 00 00 00 00 | ..........J..... + 170 | 0e 00 00 00 00 00 00 00 00 10 00 00 00 00 12 00 | ................ + 180 | 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 | ................ + + + +max 2008 (stored under wine) +Scene: + 0 | 0f 20 (id version) + 00 00 00 00 (missing size) + 17 fe 01 00 00 00 00 80 (unknown 64 bits) + 00 00 | ................ + 10 | 00 00 00 00 d0 00 00 00 00 00 00 80 + 0b 00 (id) + 00 00 | ................ + 20 | 00 00 (missing size) + 26 00 00 00 00 00 00 00 (unknown 64 bits) + 3c 29 06 5a 1e 0c | ..&.......<).Z.. + 30 | 42 30 60 11 00 00 00 00 00 17 10 27 04 00 01 00 | B0`........'.... + 40 | 00 00 + 0e 00 00 00 00 00 + 21 00 00 00 00 00 00 00 | ........!....... + 50 | 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 | ..............@. + 60 | 00 00 00 + 0e 00 00 00 00 00 + 21 00 00 00 00 00 00 | .........!...... + 70 | 00 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 | ...............@ + 80 | 00 00 00 00 + 0e 00 00 00 00 00 + 21 00 00 00 00 00 | ..........!..... + 90 | 00 00 02 00 04 00 00 00 00 00 82 00 00 00 00 00 | ................ + a0 | 40 00 00 00 00 + 0e 00 00 00 00 00 + 21 00 00 00 00 | @..........!.... + b0 | 00 00 00 04 00 09 00 00 00 00 00 + 80 06 00 00 00 | ................ + c0 | 00 40 ff ff ff ff + 0c 00 00 00 00 00 18 00 00 00 | .@.............. + d0 | 00 00 00 00 01 00 00 00 01 00 00 00 11 00 01 00 | ................ + e0 | 00 00 00 00 45 00 00 00 00 00 00 80 34 20 00 00 | ....E.......4... + f0 | 00 00 16 00 00 00 00 00 00 00 00 00 00 00 ff ff | ................ + 100 | ff ff 4b 20 00 00 00 00 0f 00 00 00 00 00 00 00 | ..K............. + 110 | 2e 00 10 00 00 00 00 12 00 00 00 00 00 00 00 00 | ................ + +max 2010 +Scene: + 0 | 12 20 (id version) + 1e 3f 02 80 (size+containerflag) + 00 00 (id) + 98 00 00 80 (size+containerflag) + 0b 00 (id) + 1e 00 | ...?............ + 10 | 00 00 (size 30-6=24) + 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 | ..<).Z..B0`..... + 20 | 00 21 e0 2e 04 00 01 00 00 00 + 0e 00 (id) + 19 00 00 00 (size 25-6=19) + | .!.............. + 30 | 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 | ..............@. + 40 | 00 00 00 + 0e 00 19 00 00 00 + 01 00 01 00 00 00 00 | ................ + 50 | 00 82 00 00 00 00 00 40 00 00 00 00 0e 00 19 00 | .......@........ + 60 | 00 00 02 00 04 00 00 00 00 00 82 00 00 00 00 00 | ................ + 70 | 40 00 00 00 00 + 0e 00 19 00 00 00 + 04 00 09 00 00 | @............... + 80 | 00 00 00 + 80 06 00 00 00 00 40 ff ff ff ff + 0c 00 | .........@...... + 90 | 10 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 | ................ + a0 | 25 00 00 80 34 20 0e 00 00 00 00 00 00 00 ff ff | %...4........... + b0 | ff ff 4b 20 07 00 00 00 2e 00 10 0a 00 00 00 00 | ..K............. + c0 | 00 00 00 00 00 be 03 00 80 35 20 0a 00 00 00 09 | .........5...... + d0 | 00 00 00 4b 20 07 00 00 00 2e 0b 00 1e 00 00 00 | ...K............ + e0 | 59 b4 8a 21 80 89 dc 25 60 11 00 00 00 00 00 21 | Y..!...%`......! + f0 | e0 2e 25 00 03 00 00 00 0e 00 19 00 00 00 00 00 | ..%............. + 100 | 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 | ................ + 110 | 00 0e 00 15 00 00 00 01 00 0f 00 00 00 40 20 81 | .............@.. + 120 | 10 00 00 00 00 40 0e 00 15 00 00 00 02 00 0f 00 | .....@.......... + 130 | 00 00 40 20 81 10 00 00 00 00 40 0e 00 15 00 00 | ..@.......@..... + 140 | 00 03 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 | .......@.......@ + 150 | 0e 00 15 00 00 00 04 00 0f 00 00 00 40 00 81 10 | ............@... + 160 | 00 00 00 00 40 0e 00 15 00 00 00 05 00 0f 00 00 | ....@........... + 170 | 00 40 00 81 10 00 00 00 00 40 0e 00 15 00 00 00 | .@.......@...... + 180 | 06 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 0e | ......@.......@. + 190 | 00 15 00 00 00 07 00 0f 00 00 00 40 20 81 10 00 | ...........@.... + 1a0 | 00 00 00 40 0e 00 15 00 00 00 08 00 0f 00 00 00 | ...@............ + 1b0 | 40 00 81 10 00 00 00 00 40 0e 00 15 00 00 00 09 | @.......@....... + + + + +max 2010 +(DllDirectory) { +0x21c0: (CStorageValue) { 786432216 } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Viewport Manager for DirectX (Autodesk) } + 0x2037: (CStorageValue) { ViewportManager.gup } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { mental ray: Material Custom Attributes (Autodesk) } + 0x2037: (CStorageValue) { mrMaterialAttribs.gup } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Custom Attribute Container (Autodesk) } + 0x2037: (CStorageValue) { CustAttribContainer.dlo } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Standard Materials and Textures (Autodesk) } + 0x2037: (CStorageValue) { mtl.dlt } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Standard Samplers (Autodesk) } + 0x2037: (CStorageValue) { samplers.dlh } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Default Materials and Textures (Autodesk) } + 0x2037: (CStorageValue) { mtlgen.dlt } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { ProSound - Multitrack Audio } + 0x2037: (CStorageValue) { ProSound.dlc } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Editable Poly Object (Autodesk) } + 0x2037: (CStorageValue) { EPoly.dlo } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Standard Pre-Filter Kernels (Autodesk) } + 0x2037: (CStorageValue) { kernel.dlk } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Default Scanline Renderer (Autodesk) } + 0x2037: (CStorageValue) { rend.dlr } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Standard Controllers (Autodesk) } + 0x2037: (CStorageValue) { ctrl.dlc } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Block Manager Utility (Autodesk) } + 0x2037: (CStorageValue) { AcadBlocks.dlu } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Propagation Manager Utility (Autodesk) } + 0x2037: (CStorageValue) { InstanceMgr.dlu } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Scene Effect Manager (Autodesk) } + 0x2037: (CStorageValue) { SceneEffectLoader.dlu } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Change Reaction Controller (Autodesk) } + 0x2037: (CStorageValue) { reactor.dlc } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { ParameterEditor (Autodesk) } + 0x2037: (CStorageValue) { ParamEditor.gup } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Bitmap Proxies (Autodesk) } + 0x2037: (CStorageValue) { BitmapProxies.dlu } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Standard Bitmap Storages and Filters (Autodesk) } + 0x2037: (CStorageValue) { StorageAndFilter.bms } } +0x2038: (DllEntry) { + 0x2039: (CStorageValue) { Biped Controller (Autodesk) } + 0x2037: (CStorageValue) { biped.dlc } } } + +max 2010 +(ClassDirectory3) { +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000082) + SuperClassID: 130} + 0x2042: (CStorageValue) { ParamBlock2 } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 0 + ClassID: (0x30420c1e, 0x5a06293c) + SuperClassID: 4448} + 0x2042: (CStorageValue) { ViewportManager } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 1 + ClassID: (0x25dc8980, 0x218ab459) + SuperClassID: 4448} + 0x2042: (CStorageValue) { mental ray: material custom attribute } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 2 + ClassID: (0x23b708db, 0x5ddb3626) + SuperClassID: 256} + 0x2042: (CStorageValue) { CustAttribContainer } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00001200) + SuperClassID: 4224} + 0x2042: (CStorageValue) { Texmaps } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00000038) + SuperClassID: 4272} + 0x2042: (CStorageValue) { Blinn } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000008) + SuperClassID: 8} + 0x2042: (CStorageValue) { ParamBlock } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 4 + ClassID: (0x00000000, 0x25773211) + SuperClassID: 4368} + 0x2042: (CStorageValue) { Max 2.5 Star } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00000002) + SuperClassID: 3072} + 0x2042: (CStorageValue) { Standard } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002007) + SuperClassID: 36867} + 0x2042: (CStorageValue) { Bezier Float } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 5 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 3104} + 0x2042: (CStorageValue) { Placement } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 5 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 3136} + 0x2042: (CStorageValue) { Output } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 3 + ClassID: (0x00000000, 0x00000240) + SuperClassID: 3088} + 0x2042: (CStorageValue) { Bitmap } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -2 + ClassID: (0x222b9eb9, 0x64c75fec) + SuperClassID: 3072} + 0x2042: (CStorageValue) { NeL Material } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000c80) + SuperClassID: 256} + 0x2042: (CStorageValue) { Material Editor } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00003333) + SuperClassID: 256} + 0x2042: (CStorageValue) { MtlBaseLib } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 6 + ClassID: (0x5b918e4e, 0x476fa9de) + SuperClassID: 3328} + 0x2042: (CStorageValue) { WaveMaster } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 6 + ClassID: (0x5b918e4a, 0x476fa9de) + SuperClassID: 3328} + 0x2042: (CStorageValue) { ProSound } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000002) + SuperClassID: 1} + 0x2042: (CStorageValue) { RootNode } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002008) + SuperClassID: 36875} + 0x2042: (CStorageValue) { Bezier Position } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00442313) + SuperClassID: 36876} + 0x2042: (CStorageValue) { TCB Rotation } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002010) + SuperClassID: 36877} + 0x2042: (CStorageValue) { Bezier Scale } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002005) + SuperClassID: 36872} + 0x2042: (CStorageValue) { Position/Rotation/Scale } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x0d9c20ff) + SuperClassID: 36880} + 0x2042: (CStorageValue) { Master Point Controller } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 7 + ClassID: (0x192f6098, 0x1bf8338d) + SuperClassID: 16} + 0x2042: (CStorageValue) { Editable Poly } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x1dba1df0, 0x7e9858fe) + SuperClassID: 4336} + 0x2042: (CStorageValue) { Base Layer } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 1} + 0x2042: (CStorageValue) { Node } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 8 + ClassID: (0x00000000, 0x77912301) + SuperClassID: 4256} + 0x2042: (CStorageValue) { Area } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 9 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 3840} + 0x2042: (CStorageValue) { Default Scanline Renderer } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x06546546, 0x46576167) + SuperClassID: 512} + 0x2042: (CStorageValue) { RenderElementMgr } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002011) + SuperClassID: 36869} + 0x2042: (CStorageValue) { Bezier Color } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0xee448b23) + SuperClassID: 4112} + 0x2042: (CStorageValue) { RenderEnvironment } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00008d52) + SuperClassID: 256} + 0x2042: (CStorageValue) { NamedSelSetList } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x90f2ee71, 0x8d73b8aa) + SuperClassID: 512} + 0x2042: (CStorageValue) { TVNode } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1000) + SuperClassID: 36867} + 0x2042: (CStorageValue) { Float List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1001) + SuperClassID: 36869} + 0x2042: (CStorageValue) { Point3 List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1005) + SuperClassID: 36882} + 0x2042: (CStorageValue) { Point4 List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1002) + SuperClassID: 36875} + 0x2042: (CStorageValue) { Position List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1003) + SuperClassID: 36876} + 0x2042: (CStorageValue) { Rotation List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1004) + SuperClassID: 36877} + 0x2042: (CStorageValue) { Scale List } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x00000000, 0x4b4b1015) + SuperClassID: 36881} + 0x2042: (CStorageValue) { Block Control } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 11 + ClassID: (0x11793bed, 0x1f8c3646) + SuperClassID: 36867} + 0x2042: (CStorageValue) { Block Manager Wrapper } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 12 + ClassID: (0x7620792b, 0x5a1b661e) + SuperClassID: 36867} + 0x2042: (CStorageValue) { Propagation Manager Wrapper } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 13 + ClassID: (0xf4044794, 0x368d1139) + SuperClassID: 36867} + 0x2042: (CStorageValue) { Scene Effect Loader } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 14 + ClassID: (0x087906d7, 0x294a389c) + SuperClassID: 256} + 0x2042: (CStorageValue) { Reaction Manager } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 15 + ClassID: (0x265a2326, 0x28250b30) + SuperClassID: 4448} + 0x2042: (CStorageValue) { ParameterCollectorCA } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 16 + ClassID: (0x01513165, 0x4a0c66e1) + SuperClassID: 2912} + 0x2042: (CStorageValue) { } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x2c1a0a7b, 0x0c6f6387) + SuperClassID: 36879} + 0x2042: (CStorageValue) { SceneAppData Latch } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 17 + ClassID: (0x68c22d6f, 0x5bf94f11) + SuperClassID: 2912} + 0x2042: (CStorageValue) { BitmapPagerData } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 10 + ClassID: (0x781f1430, 0x0f4871a5) + SuperClassID: 36879} + 0x2042: (CStorageValue) { MasterLayerControlManager } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 18 + ClassID: (0x30935afc, 0x57a52b8c) + SuperClassID: 36879} + 0x2042: (CStorageValue) { Max Mixer Clip } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00000001) + SuperClassID: 4294966784} + 0x2042: (CStorageValue) { Grid Reference } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x17356912) + SuperClassID: 4240} + 0x2042: (CStorageValue) { RenderEffects } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: 9 + ClassID: (0x00000000, 0x00000100) + SuperClassID: 4304} + 0x2042: (CStorageValue) { Shadow Map } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x51ff028e, 0x0d7374fc) + SuperClassID: 512} + 0x2042: (CStorageValue) { Layer Manager } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x2cf03595) + SuperClassID: 256} + 0x2042: (CStorageValue) { TrackSetList } } +0x2040: (ClassEntry) { + 0x2060: (ClassDirectoryHeader) { + DllIndex: -1 + ClassID: (0x00000000, 0x00002222) + SuperClassID: 256} + 0x2042: (CStorageValue) { Scene } } } + + + + +Config + +nel script material id: +0x64c75fec, 0x222b9eb9 +ec 5f c7 64 b9 9e 2b 22 + +0x2180: (StorageContainer) { + 0x0040: (StorageContainer) { + 0x0050: (StorageRaw) { + Size: 12 + String: ....._.d..+" + Hex: 00 0c 00 00 ec 5f c7 64 b9 9e 2b 22 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 09 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 0e 00 00 00 } + 0x0006: (StorageRaw) { + Size: 9 + String: ....nlbp. + Hex: 05 00 00 00 6e 6c 62 70 00 } + 0x0003: (StorageRaw) { + Size: 4 + String: .... } + 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + 0x0007: (StorageContainer) { + 0x0060: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 } + + + +max3 +(Config) { +0x20e0: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 12 + String: ...=........ + Hex: cd cc cc 3d 0a 00 00 00 01 00 00 00 } + 0x0200: (StorageRaw) { + Size: 48 + String: ...@.. A........................................ + Hex: 00 00 a0 40 00 00 20 41 01 00 00 00 03 00 00 00 08 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + 0x0300: (StorageRaw) { + Size: 0 + String: + Hex: } } +0x20a0: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 4 + String: .... + + +max2010 +(Config) { +0x20e0: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 12 + String: .. A........ + Hex: 00 00 20 41 0a 00 00 00 01 00 00 00 } + 0x0400: (StorageRaw) { + Size: 8 + String: ........ + Hex: 07 00 00 00 01 00 00 00 } + 0x0200: (StorageRaw) { + Size: 40 + String: ...@.. A................................ + Hex: 00 00 a0 40 00 00 20 41 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 } + 0x0300: (StorageRaw) { + Size: 0 + String: + Hex: } } +0x20a0: (StorageContainer) { + 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 } + + + + + +max2010 scene, near no fx +2f 27 02 05 +std::string CExportNel::getScriptAppData (Animatable *node, uint32 id, const std::string& def) +AppDataChunk *ap=node->GetAppDataChunk (MAXSCRIPT_UTILITY_CLASS_ID, UTILITY_CLASS_ID, id); +MAXSCRIPT_UTILITY_CLASS_ID Class_ID(0x4d64858, 0x16d1751d) +UTILITY_CLASS_ID 0x001020 +#define NEL3D_APPDATA_ENV_FX (84682543) +0x50C272F + +0x0110: (StorageContainer) [2] { + 0x0120: (StorageRaw) { + Size: 20 + String: XH...u.. .../'...... + Hex: 58 48 d6 04 1d 75 d1 16 // MAXSCRIPT_UTILITY_CLASS_ID + 20 10 00 00 // UTILITY_CLASS_ID + 2f 27 0c 05 // NEL3D_APPDATA_ENV_FX + 06 00 00 00 } // size??? + 0x0130: (StorageRaw) { + Size: 6 + String: no fx. } } + + + + + + +Scene class references + +ver3 + References 0x2034: PARSED { + 0: (Material Editor, (0x00000c80, 0x00000000)) + 1: (MtlBaseLib, (0x00003333, 0x00000000)) + 2: (Default Sound, (0x00000001, 0x00000000)) + 3: (RootNode, (0x00000002, 0x00000000)) + 4: (RenderEnvironment, (0xee448b23, 0x00000000)) + 5: (NamedSelSetList, (0x00008d52, 0x00000000)) + 6: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 7: (Grid Reference, (0x00000001, 0x00000000)) + 8: (RenderEffects, (0x17356912, 0x00000000)) + 9: (Shadow Map, (0x00000100, 0x00000000)) + 10: (Layer Manager, (0x0d7374fc, 0x51ff028e)) } + +ver9 + References 0x2034: PARSED { + 0: (Material Editor, (0x00000c80, 0x00000000)) + 1: (MtlBaseLib, (0x00003333, 0x00000000)) + 2: (Default Sound, (0x00000001, 0x00000000)) + 3: (RootNode, (0x00000002, 0x00000000)) + 4: (RenderEnvironment, (0xee448b23, 0x00000000)) + 5: (NamedSelSetList, (0x00008d52, 0x00000000)) + 6: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 7: (Grid Reference, (0x00000001, 0x00000000)) + 8: (RenderEffects, (0x17356912, 0x00000000)) + 9: (Shadow Map, (0x00000100, 0x00000000)) + 10: (Layer Manager, (0x0d7374fc, 0x51ff028e)) + 11: (TrackSetList, (0x2cf03595, 0x00000000)) } + +ver2008 + References 0x2034: PARSED { + 0: (Material Editor, (0x00000c80, 0x00000000)) + 1: (MtlBaseLib, (0x00003333, 0x00000000)) + 2: (Default Sound, (0x00000001, 0x00000000)) + 3: (RootNode, (0x00000002, 0x00000000)) + 4: (RenderEnvironment, (0xee448b23, 0x00000000)) + 5: (NamedSelSetList, (0x00008d52, 0x00000000)) + 6: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 7: (Grid Reference, (0x00000001, 0x00000000)) + 8: (RenderEffects, (0x17356912, 0x00000000)) + 9: (Shadow Map, (0x00000100, 0x00000000)) + 10: (Layer Manager, (0x0d7374fc, 0x51ff028e)) + 11: (TrackSetList, (0x2cf03595, 0x00000000)) } + +ver2010 + References 0x2034: PARSED { + 0: (Material Editor, (0x00000c80, 0x00000000)) + 1: (MtlBaseLib, (0x00003333, 0x00000000)) + 2: (ProSound, (0x476fa9de, 0x5b918e4a)) + 3: (RootNode, (0x00000002, 0x00000000)) + 4: (RenderEnvironment, (0xee448b23, 0x00000000)) + 5: (NamedSelSetList, (0x00008d52, 0x00000000)) + 6: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 7: (Grid Reference, (0x00000001, 0x00000000)) + 8: (RenderEffects, (0x17356912, 0x00000000)) + 9: (Shadow Map, (0x00000100, 0x00000000)) + 10: (Layer Manager, (0x0d7374fc, 0x51ff028e)) + 11: (TrackSetList, (0x2cf03595, 0x00000000)) } + + + +01 00 00 00 // one face + 04 00 00 00 // four edges/vertices + 02 00 00 00 // 2 + 00 00 00 00 // 0 + 01 00 00 00 // 1 + 03 00 00 00 // 3 + 30 00 // nomnom + 01 00 00 00 // nomnom + 01 00 00 00 // nomnom + 03 00 00 00 // nomnom + +////// banner + +c2 00 00 00 // 194 faces + 04 00 00 00 // four vertices + 00 00 00 00 + 01 00 00 00 + 2e 00 00 00 + 2d 00 00 00 + 31 00 // magic + 0c 00 00 00 // magic + 08 00 00 00 // more magic?! + 01 00 00 00 // cut from local 1 + 03 00 00 00 // to local 3 + 04 00 00 00 // four vertices + 01 00 00 00 + 02 00 00 00 + 2f 00 00 00 + 2e 00 00 00 + 31 00 // magic + 04 00 00 00 // magic + 08 00 00 00 // more magic?! + 01 00 00 00 // cut from local 1 + 03 00 00 00 // to local 3 + 04 00 00 00 + 02 00 00 00 + 03 00 00 00 + 30 00 00 00 + 2f 00 00 00 + 31 00 + 04 00 00 00 + 08 00 00 00 + 01 00 00 00 + 03 00 00 00 + 04 00 00 00 + 03 00 00 00 + 04 00 00 00 + 31 00 00 00 + 30 00 00 00 + 31 00 + 0c 00 00 00 + 08 00 00 00 + 01 00 00 00 + 03 00 00 00 + 04 00 00 00 + 04 00 00 00 00 00 00 00 2d 00 00 00 31 00 00 00 + 31 00 + 0c 00 00 00 08 00 00 00 + 01 00 00 00 03 00 00 00 + 04 00 00 00 + 14 00 00 00 13 00 00 00 19 00 00 00 18 00 00 00 + 39 00 + 0c 00 00 00 + 09 00 + 08 00 00 00 + 02 00 00 00 + 00 00 00 00 + 04 00 00 00 13 00 00 00 15 00 00 00 1a 00 00 00 19 00 00 00 + 39 00 04 00 00 00 + 09 00 08 00 00 00 + 02 00 00 00 00 00 00 00 04 00 00 00 15 00 00 00 16 00 00 00 1b 00 00 00 1a 00 00 00 39 00 04 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 16 00 00 00 17 00 00 00 1c 00 00 00 1b 00 00 00 39 00 0c 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 17 00 00 00 14 00 00 00 18 00 00 00 1c 00 00 00 39 00 0c 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 0b 00 00 00 0a 00 00 00 1f 00 00 00 20 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 0a 00 00 00 09 00 00 00 1e 00 00 00 1f 00 00 00 31 00 0c 00 00 01 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 0c 00 00 00 0b 00 00 00 20 00 00 00 21 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 0 + +////// banner + + 3 0x0100: (StorageArraySizePre) [6] { { 0x0, -5.000000 -5.000000 0.000000 } { 0x1000000, 5.000000 -5.000000 0.000000 } { 0x0, -5.000000 5.000000 0.000000 } { 0x1000000, 5.000000 5.000000 0.000000 } { 0x0, 5.000000 -5.000000 10.000000 } { 0x0, 5.000000 5.000000 10.000000 } } + 4 0x010a: (StorageArraySizePre) [7] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 3 } { 0x0, 0 1 } { 0x0, 1 4 } { 0x0, 5 3 } { 0x1, 4 5 } } + 5 0x011a: (StorageRaw) { + Size: 68 + String: ........................0................................. ......... + Hex: + +02 00 00 00 // 2 faces! + 04 00 00 00 // 4 vertices + 02 00 00 00 + 00 00 00 00 + 01 00 00 00 // shared + 03 00 00 00 // shared + 30 00 + 01 00 00 00 + 01 00 00 00 + 03 00 00 00 + 04 00 00 00 // 4 vertices + 03 00 00 00 // shared + 01 00 00 00 // shared + 04 00 00 00 + 05 00 00 00 + 20 00 + 00 00 00 00 + 02 00 00 00 } + + + + 3 0x0100: (StorageArraySizePre) [8] { { 0x0, -5.000000 -5.000000 0.000000 } { 0x0, 5.000000 -5.000000 0.000000 } { 0x0, -5.000000 5.000000 0.000000 } { 0x0, 5.000000 5.000000 0.000000 } { 0x1000000, 5.000000 -5.000000 10.000000 } { 0x1000000, 5.000000 5.000000 10.000000 } { 0x0, -5.000000 -5.000000 10.000000 } { 0x0, -5.000000 5.000000 10.000000 } } + 4 0x010a: (StorageArraySizePre) [10] { { 0x8, 2 0 } { 0x8, 3 2 } { 0x8, 1 3 } { 0x8, 0 1 } { 0x8, 1 4 } { 0x8, 5 3 } { 0x0, 4 5 } { 0x0, 4 6 } { 0x0, 7 5 } { 0x0, 6 7 } } + 5 0x011a: (StorageRaw) { + Size: 106 + String: ........................1.....................................!................................. ......... + Hex: + +03 00 00 00 // 3 faces + 04 00 00 00 // 4 vertices + 02 00 00 00 + 00 00 00 00 + 01 00 00 00 + 03 00 00 00 + 31 00 // 0011 0001 + 08 00 00 00 + 01 00 00 00 + 01 00 00 00 + 03 00 00 00 + 04 00 00 00 // 4 vertices + 03 00 00 00 + 01 00 00 00 + 04 00 00 00 // shared vertex + 05 00 00 00 // shared vertex + 21 00 // 0010 0001 + 08 00 00 00 + 00 00 00 00 + 02 00 00 00 + 04 00 00 00 // 4 vertices + 05 00 00 00 // shared vertex + 04 00 00 00 // shared vertex + 06 00 00 00 + 07 00 00 00 + 20 00 // 0010 0000 + 00 00 00 00 + 02 00 00 00 } + +** triangulation is stored inside the polyobject somewhere with the faces! + + 3 0x0100: (StorageArraySizePre) [5] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, -3.931087 3.378710 0.000000 } { 0x0, 3.007738 4.420538 0.000000 } { 0x0, 5.070167 -1.944196 0.000000 } } + 4 0x010a: (StorageArraySizePre) [5] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 4 } { 0x0, 0 1 } { 0x0, 4 3 } } + 5 0x011a: (StorageRaw) { + Size: 50 + String: ............................0..................... + Hex: + +01 00 00 00 // 1 face + 05 00 00 00 + 02 00 00 00 + 00 00 00 00 // v0 at idx 1 + 01 00 00 00 + 04 00 00 00 + 03 00 00 00 + 30 00 // triangulation egdes should both touch vertex 0... locally 1? + 01 00 00 00 + 01 00 00 00 + 03 00 00 00 + 01 00 00 00 + oops deleted + + + Float: 4.2039e-45 } + 3 0x0100: (StorageArraySizePre) [5] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, -3.931087 3.378710 0.000000 } { 0x0, 3.007738 4.420538 0.000000 } { 0x0, 5.070167 -1.944196 0.000000 } } + 4 0x010a: (StorageArraySizePre) [5] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 4 } { 0x0, 0 1 } { 0x0, 4 3 } } + 5 0x011a: (StorageRaw) { + Size: 50 + String: ............................0..................... + Hex: +01 00 00 00 + 05 00 00 00 + 02 00 00 00 + 00 00 00 00 + 01 00 00 00 // v1 at idx 2 + 04 00 00 00 + 03 00 00 00 + 30 00 30 00 // triangle edges should both touch vertex 1... locally 2? + 01 00 00 00 01 00 00 00 + 00 00 00 00 01 00 00 00 + 02 00 00 00 03 00 00 00 + 02 00 00 00 01 00 00 00 // hm! + 04 00 00 00 oops deleted } + + + 3 0x0100: (StorageArraySizePre) [5] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, -3.931087 3.378710 0.000000 } { 0x0, 3.007738 4.420538 0.000000 } { 0x1, 5.070167 -1.944196 0.000000 } } + 4 0x010a: (StorageArraySizePre) [5] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 4 } { 0x0, 0 1 } { 0x0, 4 3 } } + 5 0x011a: (StorageRaw) { + Size: 50 + String: ............................0..................... + Hex: + +01 00 00 00 + 05 00 00 00 + 02 00 00 00 + 00 00 00 00 + 01 00 00 00 + 04 00 00 00 + 03 00 00 00 + 30 00 // magic // triangle edges should touch vertex 4 .. locally 3? + 01 00 00 00 // magic + 01 00 00 00 // triangulate from local 1 + 03 00 00 00 // to local 3 + 00 00 00 00 // triangulate from local 0 + 03 00 00 00 // to local 3 } + + + 3 0x0100: (StorageArraySizePre) [3] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, 5.070167 -1.944196 0.000000 } } + 4 0x010a: (StorageArraySizePre) [3] { { 0x0, 1 2 } { 0x0, 0 1 } { 0x1, 2 0 } } + 5 0x011a: (StorageRaw) { + Size: 26 + String: .......................... + Hex: + +01 00 00 00 + 03 00 00 00 + 00 00 00 00 + 01 00 00 00 + 02 00 00 00 + 10 00 + 01 00 00 00 } + + +01 00 00 00 + 05 00 00 00 + 02 00 00 00 + 00 00 00 00 + 01 00 00 00 + 04 00 00 00 + 03 00 00 00 + 31 00 /// 20 00 = info, last; 10 00 = smoothing groups; 01 00 = ?? + 01 00 01 00 + ff ff ff ff // smoothing group + 01 00 00 00 03 00 00 00 // cut 1 + 00 00 00 00 03 00 00 00 // cut 1 } + + +bitfield + 01 00 = unknown, uint32 or pair '01 00 01 00' + 02 00 + 04 00 + 08 00 = material id, uint16 (max shows index + 1, so starts at 1, binary starts at 0) + 10 00 = smoothing groups, uint32 + 20 00 = triangulation, pair per cut + 40 00 ? + + +01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 21 00 01 00 01 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // selected +01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 21 00 00 00 01 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // unselected - no difference *** byte changed from 1 to 0 ??? +01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // material id changed to '5', 08 00 +01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // clear selection unselected -- no diff +01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // use subdiv -- no diff +01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // vertex colors -- no diff + + + + diff --git a/code/nel/tools/3d/pipeline_max_dump/main.cpp b/code/nel/tools/3d/pipeline_max_dump/main.cpp new file mode 100644 index 000000000..58c366831 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_dump/main.cpp @@ -0,0 +1,374 @@ +/* + * Copyright (C) 2012 by Jan Boon (Kaetemi) + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include "../max/storage_stream.h" +#include "../max/storage_object.h" +#include "../max/dll_directory.h" +#include "../max/class_directory_3.h" +#include "../max/class_data.h" +#include "../max/config.h" +#include "../max/scene.h" +#include "../max/scene_class_registry.h" + +// Testing +#include "../max/builtin/builtin.h" +#include "../max/update1/update1.h" +#include "../max/epoly/epoly.h" + +#include "../max/builtin/storage/app_data.h" +#include "../max/builtin/storage/geom_buffers.h" +#include "../max/builtin/scene_impl.h" +#include "../max/builtin/i_node.h" +#include "../max/update1/editable_mesh.h" +#include "../max/epoly/editable_poly.h" + +using namespace PIPELINE::MAX; +using namespace PIPELINE::MAX::BUILTIN; +using namespace PIPELINE::MAX::BUILTIN::STORAGE; +using namespace PIPELINE::MAX::UPDATE1; +using namespace PIPELINE::MAX::EPOLY; + +//static const char *filename = "/srv/work/database/interfaces/anims_max/cp_fy_hof_species.max"; +//static const char *filename = "/home/kaetemi/source/minimax/GE_Acc_MikotoBaniere.max"; +//static const char *filename = "/home/kaetemi/3dsMax/scenes/test2008.max"; +//static const char *filename = "/home/kaetemi/3dsMax/scenes/teapot_test_scene.max"; +//static const char *filename = "/home/kaetemi/3dsMax/scenes/testplane.max"; +//static const char *filename = "/home/kaetemi/3dsMax/scenes/geomobjects.max"; +static const char *filename = "/mnt/tsurugi/ryzom-assets/database/landscape/ligo/desert/max/zonematerial-converted-165_eg.max"; +static const char *streamname = "Scene"; + +#define PBMS_GEOM_BUFFERS_POLY_A_VERTEX_CHUNK_ID 0x0100 +#define PBMS_GEOM_BUFFERS_POLY_A_EDGE_CHUNK_ID 0x010a +#define PBMS_GEOM_BUFFERS_POLY_A_FACE_CHUNK_ID 0x011a +// CStorageArraySizePre +// CStorageArraySizePre +// CStorageArrayDynSize + +void exportObj(const std::string &fileName, const CReferenceMaker *geomObject) +{ + nlassert(dynamic_cast(geomObject)); + const CEditableMesh *mesh = dynamic_cast(geomObject); + if (mesh) + { + nlerror("Not implemented!"); + /* + IStorageObject *bufferBlock = triObject->findStorageObject(0x08fe); + nlassert(bufferBlock->isContainer()); + CStorageContainer *buffers = static_cast(bufferBlock); + CStorageArraySizePre *vertexBuffer = static_cast *>(buffers->findStorageObject(0x0914)); + CStorageArraySizePre *indexBuffer = static_cast *>(buffers->findStorageObject(0x0912)); + + std::ofstream ofs(fileName.c_str()); + for (uint i = 0; i < vertexBuffer->Value.size(); ++i) + ofs << "v " << vertexBuffer->Value[i].x << " " << vertexBuffer->Value[i].y << " " << vertexBuffer->Value[i].z << "\n"; + for (uint i = 0; i < indexBuffer->Value.size(); ++i) + ofs << "f " << (indexBuffer->Value[i].a + 1) << " " << (indexBuffer->Value[i].b + 1) << " " << (indexBuffer->Value[i].c + 1) << "\n"; // + 1 as .obj indexes at 1... + */ + return; + } + const CEditablePoly *poly = dynamic_cast(geomObject); + if (poly) + { + CGeomBuffers *geomBuffers = poly->geomBuffers(); + CStorageArraySizePre *vertexBuffer = static_cast *>(geomBuffers->findStorageObject(PBMS_GEOM_BUFFERS_POLY_A_VERTEX_CHUNK_ID)); + CStorageArraySizePre *edgeBuffer = static_cast *>(geomBuffers->findStorageObject(PBMS_GEOM_BUFFERS_POLY_A_EDGE_CHUNK_ID)); + CStorageArrayDynSize *faceBuffer = static_cast *>(geomBuffers->findStorageObject(PBMS_GEOM_BUFFERS_POLY_A_FACE_CHUNK_ID)); + nlassert(vertexBuffer); + nlassert(edgeBuffer); + nlassert(faceBuffer); + std::ofstream ofs(fileName.c_str()); + for (uint i = 0; i < vertexBuffer->Value.size(); ++i) + ofs << "v " << vertexBuffer->Value[i].v.x << " " << vertexBuffer->Value[i].v.y << " " << vertexBuffer->Value[i].v.z << "\n"; + std::vector triangles; + for (uint i = 0; i < faceBuffer->Value.size(); ++i) + { + CGeomObject::triangulatePolyFace(triangles, faceBuffer->Value[i]); + for (uint j = 0; j < triangles.size(); ++j) + { + ofs << "f " << (triangles[j].a + 1) << " " << (triangles[j].b + 1) << " " << (triangles[j].c + 1) << "\n"; // + 1 as .obj indexes at 1... + } + triangles.clear(); + } + return; + } + nlerror("Not handled!"); +} + +// int __stdcall WinMain(void *, void *, void *, int) +int main(int argc, char **argv) +{ + //printf("Pipeline Max Dump (Temporary Tool)\n"); + + char const *me = (argv[0] ? argv[0] : "pipeline_max_dump"); + g_set_prgname(me); + gsf_init(); + + // Register all plugin classes + CSceneClassRegistry sceneClassRegistry; + CBuiltin::registerClasses(&sceneClassRegistry); + CUpdate1::registerClasses(&sceneClassRegistry); + CEPoly::registerClasses(&sceneClassRegistry); + + GsfInfile *infile; + GError *error = NULL; + GsfInput *src; + char *display_name; + + src = gsf_input_stdio_new(filename, &error); + + if (error) + { + display_name = g_filename_display_name(filename); + g_printerr (_("%s: Failed to open %s: %s\n"), + g_get_prgname (), + display_name, + error->message); + g_free(display_name); + return 1; + } + + infile = gsf_infile_msole_new(src, NULL); + + if (!infile) + { + display_name = g_filename_display_name(filename); + g_printerr (_("%s: Failed to recognize %s as an archive\n"), + g_get_prgname (), + display_name); + g_free (display_name); + return 1; + } + + display_name = g_filename_display_name(filename); + //g_print("%s\n", display_name); + g_free(display_name); + // g_print("%s\n", streamname); + std::cout << "\n"; + + GsfInput *input = NULL; + + + PIPELINE::MAX::CDllDirectory dllDirectory; + input = gsf_infile_child_by_name(infile, "DllDirectory"); + { + PIPELINE::MAX::CStorageStream instream(input); + PIPELINE::MAX::CStorageContainer ctr; + ctr.serial(instream); + { + NLMISC::COFile of("temp.bin"); + ctr.serial(of); // out + // nldebug("Written %i bytes", of.getPos()); + } + { + NLMISC::CIFile inf("temp.bin"); + dllDirectory.serial(inf); // in + } + //dllDirectory.serial(instream); + } + g_object_unref(input); + //dllDirectory.toString(std::cout); + //std::cout << "\n"; + dllDirectory.parse(PIPELINE::MAX::VersionUnknown); // parse the structure to readable data + dllDirectory.clean(); // cleanup unused file structure + dllDirectory.toString(std::cout); + std::cout << "\n"; + //dllDirectory.build(PIPELINE::MAX::VersionUnknown); + //dllDirectory.disown(); + //dllDirectory.toString(std::cout); + //std::cout << "\n"; + + + std::cout << "\n"; + + + PIPELINE::MAX::CClassDirectory3 classDirectory3(&dllDirectory); + input = gsf_infile_child_by_name(infile, "ClassDirectory3"); + { + PIPELINE::MAX::CStorageStream instream(input); + classDirectory3.serial(instream); + } + g_object_unref(input); + //classDirectory3.toString(std::cout); + //std::cout << "\n"; + classDirectory3.parse(PIPELINE::MAX::VersionUnknown); // parse the structure to readable data + classDirectory3.clean(); // cleanup unused file structure + classDirectory3.toString(std::cout); + std::cout << "\n"; + //classDirectory3.build(PIPELINE::MAX::VersionUnknown); + //classDirectory3.disown(); + //classDirectory3.toString(std::cout); + //std::cout << "\n"; + + + std::cout << "\n"; + + + PIPELINE::MAX::CScene scene(&sceneClassRegistry, &dllDirectory, &classDirectory3); + //PIPELINE::MAX::CStorageContainer scene; + input = gsf_infile_child_by_name(infile, "Scene"); + { + PIPELINE::MAX::CStorageStream instream(input); + scene.serial(instream); + } + g_object_unref(input); + //classDirectory3.toString(std::cout); + //std::cout << "\n"; + scene.parse(PIPELINE::MAX::VersionUnknown); // parse the structure to readable data + scene.clean(); // cleanup unused file structure + // TEST -> + nldebug("BUILD"); + scene.build(PIPELINE::MAX::VersionUnknown); + nldebug("DISOWN"); + scene.disown(); + nldebug("PARSE"); + scene.parse(PIPELINE::MAX::VersionUnknown); // parse the structure to readable data + nldebug("CLEAN"); + //scene.clean(); // cleanup unused file structure, don't clean up if we want direct access to chunks as well + // <- TEST + scene.toString(std::cout);//## + std::cout << "\n"; + //classDirectory3.build(PIPELINE::MAX::VersionUnknown); + //classDirectory3.disown(); + //classDirectory3.toString(std::cout); + //std::cout << "\n"; + + std::cout << "\n"; + scene.container()->scene()->rootNode()->dumpNodes(std::cout); + std::cout << "\n"; + + //PIPELINE::MAX::BUILTIN::INode *node = scene.container()->scene()->rootNode()->find(ucstring("TR_HOF_civil01_gilet")); nlassert(node); + //node->toString(std::cout); + //exportObj("tr_hof_civil01_gilet.obj", node->getReference(1)->getReference(1)); // => CDerivedObject::getBase(node->object()) + + /*INode *node = scene.container()->scene()->rootNode()->find(ucstring("GE_Acc_MikotoBaniere")); nlassert(node); + //INode *node = scene.container()->scene()->rootNode()->find(ucstring("testplane")); nlassert(node); + CReferenceMaker *object = node->getReference(1); + object->toString(std::cout); + exportObj("ge_acc_mikotobaniere.obj", object);*/ + + + //GE_Acc_MikotoBaniere + + // TEST APP DATA -> +/* +#define MAXSCRIPT_UTILITY_CLASS_ID (NLMISC::CClassId(0x04d64858, 0x16d1751d)) +#define UTILITY_CLASS_ID (4128) +#define NEL3D_APPDATA_ENV_FX (84682543) + + PIPELINE::MAX::CSceneClassContainer *ssc = scene.container(); + for (PIPELINE::MAX::CStorageContainer::TStorageObjectConstIt it = ssc->chunks().begin(), end = ssc->chunks().end(); it != end; ++it) + { + PIPELINE::MAX::CStorageContainer *subc = static_cast(it->second); + for (PIPELINE::MAX::CStorageContainer::TStorageObjectConstIt subit = subc->chunks().begin(), subend = subc->chunks().end(); subit != subend; ++subit) + { + PIPELINE::MAX::IStorageObject *storageChunk = subit->second; + PIPELINE::MAX::BUILTIN::STORAGE::CAppData *appData = dynamic_cast(storageChunk); + if (appData) + { + + nlinfo("Found AppData"); + CStorageRaw *raw = appData->get(MAXSCRIPT_UTILITY_CLASS_ID, UTILITY_CLASS_ID, NEL3D_APPDATA_ENV_FX); + if (raw) + { + nlinfo("Found NEL3D_APPDATA_ENV_FX, size %i", raw->Value.size()); + //raw->Value.resize(200); + } + + } + } + }*/ + // <- TEST APP DATA + + +/* + scene.clean(); + scene.build(PIPELINE::MAX::VersionUnknown); + scene.disown(); + scene.parse(PIPELINE::MAX::VersionUnknown); + + ssc = scene.container(); + for (PIPELINE::MAX::CStorageContainer::TStorageObjectConstIt it = ssc->chunks().begin(), end = ssc->chunks().end(); it != end; ++it) + { + PIPELINE::MAX::CStorageContainer *subc = static_cast(it->second); + for (PIPELINE::MAX::CStorageContainer::TStorageObjectConstIt subit = subc->chunks().begin(), subend = subc->chunks().end(); subit != subend; ++subit) + { + PIPELINE::MAX::IStorageObject *storageChunk = subit->second; + PIPELINE::MAX::BUILTIN::STORAGE::CAppData *appData = dynamic_cast(storageChunk); + if (appData) + { + + nlinfo("Found AppData"); + const CStorageRaw *raw = appData->get(MAXSCRIPT_UTILITY_CLASS_ID, UTILITY_CLASS_ID, NEL3D_APPDATA_ENV_FX); + if (raw) + { + nlinfo("Found NEL3D_APPDATA_ENV_FX, size %i", raw->Value.size()); + } + + } + } + } + */ + +/* + GsfInput *input = gsf_infile_child_by_name(infile, streamname); + + { + //gsf_input_dump(input, 1); // just a regular hex dump of this input stream + PIPELINE::MAX::CStorageStream instream(input); + //dumpContainer(instream, ""); + PIPELINE::MAX::CScene ctr; + ctr.serial(instream); + ctr.toString(std::cout); + std::cout << "\n"; + //ctr.dump(""); + } + + g_object_unref(input); + */ + + + g_object_unref(infile); + g_object_unref(src); + + gsf_shutdown(); + + return 0; +} + diff --git a/code/nel/tools/3d/pipeline_max_dump/scene_2010.c b/code/nel/tools/3d/pipeline_max_dump/scene_2010.c new file mode 100644 index 000000000..651b01d64 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_dump/scene_2010.c @@ -0,0 +1,19166 @@ + +(DllDirectory) [0] PARSED { +0x21c0: (CStorageValue) { 786432216 } +Entries[0]: (DllEntry) [2] PARSED { + DllDescription: Viewport Manager for DirectX (Autodesk) + DllFilename: ViewportManager.gup } +Entries[1]: (DllEntry) [2] PARSED { + DllDescription: mental ray: Material Custom Attributes (Autodesk) + DllFilename: mrMaterialAttribs.gup } +Entries[2]: (DllEntry) [2] PARSED { + DllDescription: Custom Attribute Container (Autodesk) + DllFilename: CustAttribContainer.dlo } +Entries[3]: (DllEntry) [2] PARSED { + DllDescription: Standard Materials and Textures (Autodesk) + DllFilename: mtl.dlt } +Entries[4]: (DllEntry) [2] PARSED { + DllDescription: Standard Samplers (Autodesk) + DllFilename: samplers.dlh } +Entries[5]: (DllEntry) [2] PARSED { + DllDescription: Default Materials and Textures (Autodesk) + DllFilename: mtlgen.dlt } +Entries[6]: (DllEntry) [2] PARSED { + DllDescription: ProSound - Multitrack Audio + DllFilename: ProSound.dlc } +Entries[7]: (DllEntry) [2] PARSED { + DllDescription: Editable Poly Object (Autodesk) + DllFilename: EPoly.dlo } +Entries[8]: (DllEntry) [2] PARSED { + DllDescription: Standard Pre-Filter Kernels (Autodesk) + DllFilename: kernel.dlk } +Entries[9]: (DllEntry) [2] PARSED { + DllDescription: Default Scanline Renderer (Autodesk) + DllFilename: rend.dlr } +Entries[10]: (DllEntry) [2] PARSED { + DllDescription: Standard Controllers (Autodesk) + DllFilename: ctrl.dlc } +Entries[11]: (DllEntry) [2] PARSED { + DllDescription: Block Manager Utility (Autodesk) + DllFilename: AcadBlocks.dlu } +Entries[12]: (DllEntry) [2] PARSED { + DllDescription: Propagation Manager Utility (Autodesk) + DllFilename: InstanceMgr.dlu } +Entries[13]: (DllEntry) [2] PARSED { + DllDescription: Scene Effect Manager (Autodesk) + DllFilename: SceneEffectLoader.dlu } +Entries[14]: (DllEntry) [2] PARSED { + DllDescription: Change Reaction Controller (Autodesk) + DllFilename: reactor.dlc } +Entries[15]: (DllEntry) [2] PARSED { + DllDescription: ParameterEditor (Autodesk) + DllFilename: ParamEditor.gup } +Entries[16]: (DllEntry) [2] PARSED { + DllDescription: Bitmap Proxies (Autodesk) + DllFilename: BitmapProxies.dlu } +Entries[17]: (DllEntry) [2] PARSED { + DllDescription: Standard Bitmap Storages and Filters (Autodesk) + DllFilename: StorageAndFilter.bms } +Entries[18]: (DllEntry) [2] PARSED { + DllDescription: Biped Controller (Autodesk) + DllFilename: biped.dlc } } + +(ClassDirectory3) [0] PARSED { +Entries[0]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00000082, 0x00000000) + SuperClassId: 130 } + Name: ParamBlock2 } +Entries[1]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 0 + ClassId: (0x5a06293c, 0x30420c1e) + SuperClassId: 4448 } + Name: ViewportManager } +Entries[2]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 1 + ClassId: (0x218ab459, 0x25dc8980) + SuperClassId: 4448 } + Name: mental ray: material custom attribute } +Entries[3]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 2 + ClassId: (0x5ddb3626, 0x23b708db) + SuperClassId: 256 } + Name: CustAttribContainer } +Entries[4]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 3 + ClassId: (0x00001200, 0x00000000) + SuperClassId: 4224 } + Name: Texmaps } +Entries[5]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 3 + ClassId: (0x00000038, 0x00000000) + SuperClassId: 4272 } + Name: Blinn } +Entries[6]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00000008, 0x00000000) + SuperClassId: 8 } + Name: ParamBlock } +Entries[7]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 4 + ClassId: (0x25773211, 0x00000000) + SuperClassId: 4368 } + Name: Max 2.5 Star } +Entries[8]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 3 + ClassId: (0x00000002, 0x00000000) + SuperClassId: 3072 } + Name: Standard } +Entries[9]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00002007, 0x00000000) + SuperClassId: 36867 } + Name: Bezier Float } +Entries[10]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 5 + ClassId: (0x00000100, 0x00000000) + SuperClassId: 3104 } + Name: Placement } +Entries[11]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 5 + ClassId: (0x00000100, 0x00000000) + SuperClassId: 3136 } + Name: Output } +Entries[12]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 3 + ClassId: (0x00000240, 0x00000000) + SuperClassId: 3088 } + Name: Bitmap } +Entries[13]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -2 + ClassId: (0x64c75fec, 0x222b9eb9) + SuperClassId: 3072 } + Name: NeL Material } +Entries[14]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00000c80, 0x00000000) + SuperClassId: 256 } + Name: Material Editor } +Entries[15]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00003333, 0x00000000) + SuperClassId: 256 } + Name: MtlBaseLib } +Entries[16]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 6 + ClassId: (0x476fa9de, 0x5b918e4e) + SuperClassId: 3328 } + Name: WaveMaster } +Entries[17]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 6 + ClassId: (0x476fa9de, 0x5b918e4a) + SuperClassId: 3328 } + Name: ProSound } +Entries[18]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00000002, 0x00000000) + SuperClassId: 1 } + Name: RootNode } +Entries[19]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00002008, 0x00000000) + SuperClassId: 36875 } + Name: Bezier Position } +Entries[20]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00442313, 0x00000000) + SuperClassId: 36876 } + Name: TCB Rotation } +Entries[21]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00002010, 0x00000000) + SuperClassId: 36877 } + Name: Bezier Scale } +Entries[22]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00002005, 0x00000000) + SuperClassId: 36872 } + Name: Position/Rotation/Scale } +Entries[23]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x0d9c20ff, 0x00000000) + SuperClassId: 36880 } + Name: Master Point Controller } +Entries[24]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 7 + ClassId: (0x1bf8338d, 0x192f6098) + SuperClassId: 16 } + Name: Editable Poly } +Entries[25]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x7e9858fe, 0x1dba1df0) + SuperClassId: 4336 } + Name: Base Layer } +Entries[26]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00000001, 0x00000000) + SuperClassId: 1 } + Name: Node } +Entries[27]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 8 + ClassId: (0x77912301, 0x00000000) + SuperClassId: 4256 } + Name: Area } +Entries[28]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 9 + ClassId: (0x00000001, 0x00000000) + SuperClassId: 3840 } + Name: Default Scanline Renderer } +Entries[29]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x46576167, 0x06546546) + SuperClassId: 512 } + Name: RenderElementMgr } +Entries[30]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00002011, 0x00000000) + SuperClassId: 36869 } + Name: Bezier Color } +Entries[31]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0xee448b23, 0x00000000) + SuperClassId: 4112 } + Name: RenderEnvironment } +Entries[32]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00008d52, 0x00000000) + SuperClassId: 256 } + Name: NamedSelSetList } +Entries[33]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x8d73b8aa, 0x90f2ee71) + SuperClassId: 512 } + Name: TVNode } +Entries[34]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 10 + ClassId: (0x4b4b1000, 0x00000000) + SuperClassId: 36867 } + Name: Float List } +Entries[35]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 10 + ClassId: (0x4b4b1001, 0x00000000) + SuperClassId: 36869 } + Name: Point3 List } +Entries[36]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 10 + ClassId: (0x4b4b1005, 0x00000000) + SuperClassId: 36882 } + Name: Point4 List } +Entries[37]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 10 + ClassId: (0x4b4b1002, 0x00000000) + SuperClassId: 36875 } + Name: Position List } +Entries[38]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 10 + ClassId: (0x4b4b1003, 0x00000000) + SuperClassId: 36876 } + Name: Rotation List } +Entries[39]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 10 + ClassId: (0x4b4b1004, 0x00000000) + SuperClassId: 36877 } + Name: Scale List } +Entries[40]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 10 + ClassId: (0x4b4b1015, 0x00000000) + SuperClassId: 36881 } + Name: Block Control } +Entries[41]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 11 + ClassId: (0x1f8c3646, 0x11793bed) + SuperClassId: 36867 } + Name: Block Manager Wrapper } +Entries[42]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 12 + ClassId: (0x5a1b661e, 0x7620792b) + SuperClassId: 36867 } + Name: Propagation Manager Wrapper } +Entries[43]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 13 + ClassId: (0x368d1139, 0xf4044794) + SuperClassId: 36867 } + Name: Scene Effect Loader } +Entries[44]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 14 + ClassId: (0x294a389c, 0x087906d7) + SuperClassId: 256 } + Name: Reaction Manager } +Entries[45]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 15 + ClassId: (0x28250b30, 0x265a2326) + SuperClassId: 4448 } + Name: ParameterCollectorCA } +Entries[46]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 16 + ClassId: (0x4a0c66e1, 0x01513165) + SuperClassId: 2912 } + Name: } +Entries[47]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x0c6f6387, 0x2c1a0a7b) + SuperClassId: 36879 } + Name: SceneAppData Latch } +Entries[48]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 17 + ClassId: (0x5bf94f11, 0x68c22d6f) + SuperClassId: 2912 } + Name: BitmapPagerData } +Entries[49]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 10 + ClassId: (0x0f4871a5, 0x781f1430) + SuperClassId: 36879 } + Name: MasterLayerControlManager } +Entries[50]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 18 + ClassId: (0x57a52b8c, 0x30935afc) + SuperClassId: 36879 } + Name: Max Mixer Clip } +Entries[51]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00000001, 0x00000000) + SuperClassId: 4294966784 } + Name: Grid Reference } +Entries[52]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x17356912, 0x00000000) + SuperClassId: 4240 } + Name: RenderEffects } +Entries[53]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: 9 + ClassId: (0x00000100, 0x00000000) + SuperClassId: 4304 } + Name: Shadow Map } +Entries[54]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x0d7374fc, 0x51ff028e) + SuperClassId: 512 } + Name: Layer Manager } +Entries[55]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x2cf03595, 0x00000000) + SuperClassId: 256 } + Name: TrackSetList } +Entries[56]: (ClassEntry) [2] PARSED { + Header: (ClassEntryHeader) { + DllIndex: -1 + ClassId: (0x00002222, 0x00000000) + SuperClassId: 256 } + Name: Scene } } + +DBG 1f2ee940 main.cpp 161 main : BUILD +DBG 1f2ee940 main.cpp 163 main : DISOWN +DBG 1f2ee940 main.cpp 165 main : PARSE +DBG 1f2ee940 main.cpp 167 main : CLEAN +(Scene) [1] { +0 0x2012: (SceneClassContainer) [452] { + 0 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 01 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 1 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 2 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [39] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: Y..!...%`......!..%..... + Hex: 59 b4 8a 21 80 89 dc 25 60 11 00 00 00 00 00 21 e0 2e 25 00 03 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 01 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 02 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 03 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 04 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 05 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 06 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 07 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 08 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 09 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: d.............@.... + Hex: 64 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: e.............@.... + Hex: 65 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: f.............@.... + Hex: 66 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: g.............@.... + Hex: 67 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: h.............@.... + Hex: 68 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: i.............@.... + Hex: 69 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: j.............@.... + Hex: 6a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: k.............@.... + Hex: 6b 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[19] 0x000e: (StorageRaw) { + Size: 19 + String: l.............@.... + Hex: 6c 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[20] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: c8 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[21] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: c9 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[22] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: ca 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[23] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cb 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[24] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cc 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[25] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cd 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[26] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: ce 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[27] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cf 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[28] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: d0 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[29] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: dc 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[30] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: dd 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[31] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: de 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[32] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: df 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[33] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e0 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[34] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e1 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[35] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e2 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[36] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e3 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[37] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e4 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[38] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 3 0x0002: (CustAttribSuperClassUnknown: mental ray: material custom attribute, (0x218ab459, 0x25dc8980), 0x00001160, mental ray: Material Custom Attributes (Autodesk)) [0] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } } + 4 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) + 1: (mental ray: material custom attribute, (0x218ab459, 0x25dc8980)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: 0f 00 00 00 + Int: 15 + Float: 2.10195e-44 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } } + 5 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 6 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 07 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 7 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 8 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 0f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 9 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 0f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 10 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 0f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 11 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 0f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 12 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 0f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 13 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 14 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 0 + String: + Hex: } } } + 15 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 04 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 0.9. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 10 + Int: 268435968 + Float: 2.52451e-29 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 16 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 11 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 17 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 18 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [39] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: Y..!...%`......!..%..... + Hex: 59 b4 8a 21 80 89 dc 25 60 11 00 00 00 00 00 21 e0 2e 25 00 13 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 01 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 02 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 03 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 04 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 05 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 06 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 07 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 08 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 09 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: d.............@.... + Hex: 64 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: e.............@.... + Hex: 65 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: f.............@.... + Hex: 66 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: g.............@.... + Hex: 67 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: h.............@.... + Hex: 68 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: i.............@.... + Hex: 69 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: j.............@.... + Hex: 6a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: k.............@.... + Hex: 6b 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[19] 0x000e: (StorageRaw) { + Size: 19 + String: l.............@.... + Hex: 6c 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[20] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: c8 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[21] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: c9 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[22] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: ca 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[23] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cb 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[24] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cc 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[25] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cd 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[26] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: ce 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[27] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cf 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[28] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: d0 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[29] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: dc 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[30] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: dd 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[31] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: de 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[32] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: df 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[33] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e0 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[34] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e1 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[35] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e2 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[36] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e3 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[37] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e4 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[38] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 19 0x0002: (CustAttribSuperClassUnknown: mental ray: material custom attribute, (0x218ab459, 0x25dc8980), 0x00001160, mental ray: Material Custom Attributes (Autodesk)) [0] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } } + 20 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) + 1: (mental ray: material custom attribute, (0x218ab459, 0x25dc8980)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: 1f 00 00 00 + Int: 31 + Float: 4.34403e-44 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } } + 21 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 22 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 17 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 23 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 24 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 1f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 25 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 1f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 26 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 1f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 27 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 1f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 28 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 1f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 29 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 30 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 0 + String: + Hex: } } } + 31 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 14 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 0.9. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 10 + Int: 268435968 + Float: 2.52451e-29 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 32 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!....!... + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 21 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 33 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 34 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [39] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: Y..!...%`......!..%.#... + Hex: 59 b4 8a 21 80 89 dc 25 60 11 00 00 00 00 00 21 e0 2e 25 00 23 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 01 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 02 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 03 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 04 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 05 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 06 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 07 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 08 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 09 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: d.............@.... + Hex: 64 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: e.............@.... + Hex: 65 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: f.............@.... + Hex: 66 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: g.............@.... + Hex: 67 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: h.............@.... + Hex: 68 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: i.............@.... + Hex: 69 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: j.............@.... + Hex: 6a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: k.............@.... + Hex: 6b 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[19] 0x000e: (StorageRaw) { + Size: 19 + String: l.............@.... + Hex: 6c 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[20] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: c8 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[21] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: c9 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[22] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: ca 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[23] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cb 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[24] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cc 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[25] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cd 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[26] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: ce 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[27] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cf 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[28] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: d0 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[29] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: dc 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[30] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: dd 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[31] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: de 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[32] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: df 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[33] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e0 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[34] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e1 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[35] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e2 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[36] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e3 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[37] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e4 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[38] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 35 0x0002: (CustAttribSuperClassUnknown: mental ray: material custom attribute, (0x218ab459, 0x25dc8980), 0x00001160, mental ray: Material Custom Attributes (Autodesk)) [0] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } } + 36 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) + 1: (mental ray: material custom attribute, (0x218ab459, 0x25dc8980)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: /... + Hex: 2f 00 00 00 + Int: 47 + Float: 6.5861e-44 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } } + 37 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 38 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....'... + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 27 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 39 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 40 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!..../... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 2f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 41 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!..../... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 2f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 42 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!..../... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 2f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 43 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!..../... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 2f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 44 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!..../... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 2f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 45 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 46 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 0 + String: + Hex: } } } + 47 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....$... + Hex: 20 10 0a 00 00 00 24 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 0.9. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 10 + Int: 268435968 + Float: 2.52451e-29 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 48 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!....1... + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 31 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 49 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 50 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: =... + Hex: 3d 00 00 00 + Int: 61 + Float: 8.54792e-44 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 51 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 52 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....5... + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 35 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 53 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 54 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....=... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 3d 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 55 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....=... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 3d 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 56 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....=... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 3d 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 57 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....=... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 3d 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 58 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....=... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 3d 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 59 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 60 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 61 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....2... + Hex: 20 10 0a 00 00 00 32 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 0.4. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 62 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!....?... + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 3f 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 63 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 64 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: K... + Hex: 4b 00 00 00 + Int: 75 + Float: 1.05097e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 65 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 66 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....C... + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 43 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 67 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 68 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....K... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 4b 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 69 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....K... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 4b 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 70 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....K... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 4b 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 71 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....K... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 4b 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 72 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....K... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 4b 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 73 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 74 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 75 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....@... + Hex: 20 10 0a 00 00 00 40 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 0.5. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 76 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!....M... + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 4d 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 77 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 78 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: Y... + Hex: 59 00 00 00 + Int: 89 + Float: 1.24716e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 79 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 80 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....Q... + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 51 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 81 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 82 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....Y... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 59 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 83 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....Y... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 59 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 84 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....Y... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 59 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 85 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....Y... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 59 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 86 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....Y... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 59 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 87 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 88 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 89 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....N... + Hex: 20 10 0a 00 00 00 4e 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 0.6. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 90 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!....[... + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 5b 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: ........&. + Hex: 01 00 00 00 01 00 00 00 26 03 } } + 91 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 92 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [39] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: Y..!...%`......!..%.]... + Hex: 59 b4 8a 21 80 89 dc 25 60 11 00 00 00 00 00 21 e0 2e 25 00 5d 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 01 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 02 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 03 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 04 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 05 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 06 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 07 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 08 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 09 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: d.............@.... + Hex: 64 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: e.............@.... + Hex: 65 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: f.............@.... + Hex: 66 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: g.............@.... + Hex: 67 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: h.............@.... + Hex: 68 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: i.............@.... + Hex: 69 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: j.............@.... + Hex: 6a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: k.............@.... + Hex: 6b 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[19] 0x000e: (StorageRaw) { + Size: 19 + String: l.............@.... + Hex: 6c 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[20] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: c8 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[21] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: c9 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[22] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: ca 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[23] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cb 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[24] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cc 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[25] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cd 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[26] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: ce 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[27] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cf 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[28] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: d0 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[29] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: dc 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[30] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: dd 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[31] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: de 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[32] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: df 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[33] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e0 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[34] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e1 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[35] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e2 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[36] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e3 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[37] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e4 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[38] 0x000c: (StorageRaw) { + Size: 10 + String: ........&. + Hex: 01 00 00 00 00 00 00 00 26 03 } } + 93 0x0002: (CustAttribSuperClassUnknown: mental ray: material custom attribute, (0x218ab459, 0x25dc8980), 0x00001160, mental ray: Material Custom Attributes (Autodesk)) [0] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } } + 94 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) + 1: (mental ray: material custom attribute, (0x218ab459, 0x25dc8980)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: 86 00 00 00 + Int: 134 + Float: 1.87774e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } } + 95 0x0009: (ControlFloatSuperClassUnknown: Bezier Float, (0x00002007, 0x00000000), 0x00009003, Builtin) [9] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x2501: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[1] 0x2500: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 ff ff ff 7f } + Orphan[2] 0x3002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x3003: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 00 00 00 80 } + Orphan[4] 0x2532: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[5] 0x2533: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[6] 0x2534: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[7] 0x3005: (StorageRaw) { + Size: 4 + String: .... + Hex: 86 01 00 00 + Int: 390 + Float: 5.46506e-43 } + Orphan[8] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 96 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: g... + Hex: 67 00 00 00 + Int: 103 + Float: 1.44334e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 97 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [15] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 06 00 } + Orphan[2] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[3] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[5] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[6] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 + Int: 4 + Float: 5.60519e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[7] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 05 00 00 00 + Int: 5 + Float: 7.00649e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[8] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 + Int: 6 + Float: 8.40779e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[9] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 07 00 00 00 + Int: 7 + Float: 9.80909e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[10] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 00 00 00 + Int: 8 + Float: 1.12104e-44 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[11] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 09 00 00 00 + Int: 9 + Float: 1.26117e-44 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[12] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 + Int: 10 + Float: 1.4013e-44 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0101: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + Orphan[13] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 0b 00 00 00 + Int: 11 + Float: 1.54143e-44 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[14] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 0c 00 00 00 + Int: 12 + Float: 1.68156e-44 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 98 0x000a: (UVGenSuperClassUnknown: Placement, (0x00000100, 0x00000000), 0x00000c20, Default Materials and Textures (Autodesk)) [6] { + AppData: (AppData) [1] PARSED { + Entries[0]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x00000100, 0x00000000) + SuperClassId: 3104 + SubId: 0 + Size: 4 } + Value: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x9002: (StorageRaw) { + Size: 4 + String: ...P + Hex: 03 00 00 50 + Int: 1342177283 + Float: 8.58994e+09 } + Orphan[1] 0x9003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x9009: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 + Int: 4 + Float: 5.60519e-45 } + Orphan[3] 0x9005: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x9006: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x900b: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 99 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [21] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....g... + Hex: 0c 00 00 00 00 00 00 21 e0 2e 11 00 67 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 03 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 04 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 01 00 00 00 00 00 92 00 00 00 00 00 40 01 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0b 00 01 00 00 00 00 00 92 00 00 00 00 00 40 02 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0c 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 16 + String: ..............@. + Hex: 0d 00 10 00 00 00 00 00 80 00 00 00 00 00 40 01 } + Orphan[15] 0x0003: (StorageContainer) [3] { + 0 0x1201: (StorageRaw) { + Size: 70 + String: .......?...>................@..............................?.......... + Hex: 00 02 00 02 00 00 80 3f c7 ba e8 3e 00 00 00 00 00 00 00 00 02 00 00 00 06 00 00 00 40 01 c8 00 00 00 00 00 00 00 00 00 00 00 ff 7f 00 00 ff 7f 01 00 00 00 00 00 00 00 00 00 80 3f 04 00 00 00 00 00 00 00 00 00 } + 1 0x1260: (StorageContainer) [1] { + 0 0x0002: (StorageRaw) { + Size: 16 + String: .R3....K...[..R9 + Hex: 1d 52 33 cb ba d8 80 4b 96 bb 05 5b e6 e7 52 39 } } + 2 0x1240: (StorageRaw) { + Size: 28 + String: P.N.G. .I.m.a.g.e. .F.i.l.e. } } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0e 00 12 00 00 00 00 03 81 08 00 00 00 00 40 ff ff ff ff } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0f 00 12 00 00 00 00 03 81 08 00 00 00 00 40 ff ff ff ff } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 10 00 09 00 00 00 02 00 80 00 00 00 02 00 40 fe ff ff ff } + Orphan[19] 0x000f: (StorageContainer) [1] { + 0 0x0002: (StorageRaw) { + Size: 16 + String: .R3....K...[..R9 + Hex: 1d 52 33 cb ba d8 80 4b 96 bb 05 5b e6 e7 52 39 } } + Orphan[20] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 100 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [6] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 + Int: 4 + Float: 5.60519e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 03 00 } + Orphan[2] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[3] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[5] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } } + 101 0x000b: (TextureOutputSuperClassUnknown: Output, (0x00000100, 0x00000000), 0x00000c40, Default Materials and Textures (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 102 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....g... + Hex: 0c 00 00 00 01 00 00 21 e0 2e 04 00 67 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 0c 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...? + Hex: 01 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 103 0x000c: (TexmapSuperClassUnknown: Bitmap, (0x00000240, 0x00000000), 0x00000c10, Standard Materials and Textures (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (Placement, (0x00000100, 0x00000000)) + 1: (ParamBlock2, (0x00000082, 0x00000000)) + 2: (Output, (0x00000100, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....`... + Hex: 20 10 0a 00 00 00 60 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 12 + String: M.a.p. .#.0. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 02 00 00 + Int: 520 + Float: 7.28675e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } } + 104 0x0009: (ControlFloatSuperClassUnknown: Bezier Float, (0x00002007, 0x00000000), 0x00009003, Builtin) [9] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x2501: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[1] 0x2500: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 ff ff ff 7f } + Orphan[2] 0x3002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x3003: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 00 00 00 80 } + Orphan[4] 0x2532: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[5] 0x2533: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[6] 0x2534: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[7] 0x3005: (StorageRaw) { + Size: 4 + String: .... + Hex: 86 01 00 00 + Int: 390 + Float: 5.46506e-43 } + Orphan[8] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 105 0x0009: (ControlFloatSuperClassUnknown: Bezier Float, (0x00002007, 0x00000000), 0x00009003, Builtin) [9] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x2501: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[1] 0x2500: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 ff ff ff 7f } + Orphan[2] 0x3002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x3003: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 00 00 00 80 } + Orphan[4] 0x2532: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[5] 0x2533: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[6] 0x2534: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[7] 0x3005: (StorageRaw) { + Size: 4 + String: .... + Hex: 86 01 00 00 + Int: 390 + Float: 5.46506e-43 } + Orphan[8] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 106 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: q... + Hex: 71 00 00 00 + Int: 113 + Float: 1.58347e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 107 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [15] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 06 00 } + Orphan[2] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[3] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[5] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[6] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 + Int: 4 + Float: 5.60519e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[7] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 05 00 00 00 + Int: 5 + Float: 7.00649e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[8] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 + Int: 6 + Float: 8.40779e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[9] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 07 00 00 00 + Int: 7 + Float: 9.80909e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[10] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 00 00 00 + Int: 8 + Float: 1.12104e-44 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[11] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 09 00 00 00 + Int: 9 + Float: 1.26117e-44 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[12] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 + Int: 10 + Float: 1.4013e-44 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0101: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + Orphan[13] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 0b 00 00 00 + Int: 11 + Float: 1.54143e-44 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[14] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 0c 00 00 00 + Int: 12 + Float: 1.68156e-44 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 108 0x000a: (UVGenSuperClassUnknown: Placement, (0x00000100, 0x00000000), 0x00000c20, Default Materials and Textures (Autodesk)) [6] { + AppData: (AppData) [1] PARSED { + Entries[0]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x00000100, 0x00000000) + SuperClassId: 3104 + SubId: 0 + Size: 4 } + Value: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x9002: (StorageRaw) { + Size: 4 + String: ...P + Hex: 03 00 00 50 + Int: 1342177283 + Float: 8.58994e+09 } + Orphan[1] 0x9003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x9009: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 + Int: 4 + Float: 5.60519e-45 } + Orphan[3] 0x9005: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x9006: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x900b: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 109 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [21] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....q... + Hex: 0c 00 00 00 00 00 00 21 e0 2e 11 00 71 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 03 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 04 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 01 00 00 00 00 00 92 00 00 00 00 00 40 01 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0b 00 01 00 00 00 00 00 92 00 00 00 00 00 40 02 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0c 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 16 + String: ..............@. + Hex: 0d 00 10 00 00 00 00 00 80 00 00 00 00 00 40 01 } + Orphan[15] 0x0003: (StorageContainer) [3] { + 0 0x1201: (StorageRaw) { + Size: 70 + String: @.@....?...@................@..............................?.......... + Hex: 40 00 40 00 00 00 80 3f cd cc 0c 40 00 00 00 00 00 00 00 00 02 00 00 00 06 00 00 00 40 01 c8 00 00 00 00 00 00 00 00 00 00 00 ff 7f 00 00 ff 7f 01 00 00 00 00 00 00 00 00 00 80 3f 04 00 00 00 00 00 00 00 00 00 } + 1 0x1260: (StorageContainer) [1] { + 0 0x0002: (StorageRaw) { + Size: 16 + String: ..]..".K..SLh4.. + Hex: e1 e4 5d 11 c6 22 7d 4b be e1 53 4c 68 34 97 1f } } + 2 0x1240: (StorageRaw) { + Size: 28 + String: P.N.G. .I.m.a.g.e. .F.i.l.e. } } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0e 00 12 00 00 00 00 03 81 08 00 00 00 00 40 ff ff ff ff } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0f 00 12 00 00 00 00 03 81 08 00 00 00 00 40 ff ff ff ff } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 10 00 09 00 00 00 02 00 80 00 00 00 02 00 40 fe ff ff ff } + Orphan[19] 0x000f: (StorageContainer) [1] { + 0 0x0002: (StorageRaw) { + Size: 16 + String: ..]..".K..SLh4.. + Hex: e1 e4 5d 11 c6 22 7d 4b be e1 53 4c 68 34 97 1f } } + Orphan[20] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 110 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [6] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 + Int: 4 + Float: 5.60519e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 03 00 } + Orphan[2] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[3] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[5] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } } + 111 0x000b: (TextureOutputSuperClassUnknown: Output, (0x00000100, 0x00000000), 0x00000c40, Default Materials and Textures (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 112 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....q... + Hex: 0c 00 00 00 01 00 00 21 e0 2e 04 00 71 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 0c 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...? + Hex: 01 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 113 0x000c: (TexmapSuperClassUnknown: Bitmap, (0x00000240, 0x00000000), 0x00000c10, Standard Materials and Textures (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (Placement, (0x00000100, 0x00000000)) + 1: (ParamBlock2, (0x00000082, 0x00000000)) + 2: (Output, (0x00000100, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....j... + Hex: 20 10 0a 00 00 00 6a 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 12 + String: M.a.p. .#.1. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } } + 114 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + References 0x2035: PARSED { + 0: (Bezier Float, (0x00002007, 0x00000000)) + 1: (Bitmap, (0x00000240, 0x00000000)) + 2: (Bezier Float, (0x00002007, 0x00000000)) + 3: (Bitmap, (0x00000240, 0x00000000)) + 4: (Bezier Float, (0x00002007, 0x00000000)) + 5: (Bitmap, (0x00000240, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 07 00 00 00 + Int: 7 + Float: 9.80909e-45 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 115 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....t... + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 74 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 116 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 117 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....|... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 7c 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 118 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....|... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 7c 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 119 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....|... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 7c 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 120 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....|... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 7c 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 01 00 00 00 40 01 00 00 00 40 01 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@g...@g...@q...@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 67 00 00 00 40 67 00 00 00 40 71 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 121 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....|... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 7c 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 122 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 123 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 124 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 0 + String: + Hex: } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 08 02 00 00 + Int: 520 + Float: 7.28675e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 125 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0007: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 0d 00 00 00 00 00 00 21 e0 2e 0a 00 86 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 04 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 03 00 06 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 80 3f } + Orphan[6] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 04 00 02 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 06 00 06 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 07 00 02 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 08 00 06 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 04 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 126 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [40] { + Orphan[0] 0x0007: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0009: (StorageRaw) { + Size: 16 + String: .......!..%..... + Hex: 0d 00 00 00 01 00 00 21 e0 2e 25 00 86 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 03 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 04 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 06 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 08 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: .................#< + Hex: 09 00 00 00 00 00 01 00 82 00 00 00 00 00 c0 0a d7 23 3c } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................#< + Hex: 0a 00 00 00 00 00 01 00 82 00 00 00 00 00 c0 0a d7 23 3c } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: .................#< + Hex: 0b 00 00 00 00 00 01 00 82 00 00 00 00 00 c0 0a d7 23 3c } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: .................#< + Hex: 0c 00 00 00 00 00 01 00 82 00 00 00 00 00 c0 0a d7 23 3c } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: ..................; + Hex: 0d 00 00 00 00 00 01 00 82 00 00 00 00 00 c0 0a d7 a3 3b } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: ..................; + Hex: 0e 00 00 00 00 00 01 00 82 00 00 00 00 00 c0 0a d7 a3 3b } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: ..................; + Hex: 0f 00 00 00 00 00 01 00 82 00 00 00 00 00 c0 0a d7 a3 3b } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: ..................; + Hex: 10 00 00 00 00 00 01 00 82 00 00 00 00 00 c0 0a d7 a3 3b } + Orphan[19] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 11 00 00 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 80 3f } + Orphan[20] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 12 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[21] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 13 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[22] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 14 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[23] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 15 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[24] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 16 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[25] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 17 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[26] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 18 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[27] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 19 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[28] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 1a 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[29] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 1b 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[30] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 1c 00 00 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[31] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 1d 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 02 00 00 00 } + Orphan[32] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 1e 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 05 00 00 00 } + Orphan[33] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 1f 00 04 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 00 00 } + Orphan[34] 0x000e: (StorageRaw) { + Size: 19 + String: .................. + Hex: 20 00 04 00 00 00 01 00 80 00 00 00 00 00 c0 01 00 00 00 } + Orphan[35] 0x000e: (StorageRaw) { + Size: 19 + String: !.................. + Hex: 21 00 04 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 00 00 } + Orphan[36] 0x000e: (StorageRaw) { + Size: 19 + String: ".................. + Hex: 22 00 04 00 00 00 01 00 80 00 00 00 00 00 c0 00 00 00 00 } + Orphan[37] 0x000e: (StorageRaw) { + Size: 27 + String: #.................?.......? + Hex: 23 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 80 3f 00 00 00 00 00 00 80 3f } + Orphan[38] 0x000e: (StorageRaw) { + Size: 19 + String: $.................. + Hex: 24 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[39] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 127 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [27] { + References 0x2035: PARSED { + 0: (Bitmap, (0x00000240, 0x00000000)) + 1: (Bitmap, (0x00000240, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0007: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 0d 00 00 00 02 00 00 21 e0 2e 18 00 86 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 03 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 04 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 06 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 08 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0b 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0c 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0d 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0e 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0f 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[18] 0x000e: (StorageRaw) { + Size: 15 + String: ..............@ + Hex: 10 00 0f 00 00 00 00 00 81 00 00 00 00 00 40 } + Orphan[19] 0x000e: (StorageRaw) { + Size: 15 + String: ..............@ + Hex: 11 00 0f 00 00 00 00 00 81 00 00 00 00 00 40 } + Orphan[20] 0x000e: (StorageRaw) { + Size: 15 + String: ..............@ + Hex: 12 00 0f 00 00 00 00 00 81 00 00 00 00 00 40 } + Orphan[21] 0x000e: (StorageRaw) { + Size: 15 + String: ..............@ + Hex: 13 00 0f 00 00 00 00 00 81 00 00 00 00 00 40 } + Orphan[22] 0x000e: (StorageRaw) { + Size: 15 + String: ..............@ + Hex: 14 00 0f 00 00 00 00 00 81 00 00 00 00 00 40 } + Orphan[23] 0x000e: (StorageRaw) { + Size: 15 + String: ..............@ + Hex: 15 00 0f 00 00 00 00 00 81 00 00 00 00 00 40 } + Orphan[24] 0x000e: (StorageRaw) { + Size: 15 + String: ..............@ + Hex: 16 00 0f 00 00 00 00 00 81 00 00 00 00 00 40 } + Orphan[25] 0x000e: (StorageRaw) { + Size: 15 + String: ..............@ + Hex: 17 00 0f 00 00 00 00 00 81 00 00 00 00 00 40 } + Orphan[26] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 128 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [22] { + Orphan[0] 0x0007: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 0d 00 00 00 03 00 00 21 e0 2e 13 00 86 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 02 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 03 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 04 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 02 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 06 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 08 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 02 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0b 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0c 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 02 00 00 00 } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0d 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0e 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0f 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 10 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[19] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 11 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[20] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 12 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 ff 00 00 00 } + Orphan[21] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 129 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [22] { + Orphan[0] 0x0007: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 0d 00 00 00 04 00 00 21 e0 2e 13 00 86 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 03 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 04 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 06 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 08 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0b 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0c 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0d 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0e 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0f 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 10 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[19] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 11 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[20] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 12 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 ff 00 00 00 } + Orphan[21] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 130 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [22] { + Orphan[0] 0x0007: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 0d 00 00 00 05 00 00 21 e0 2e 13 00 86 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 03 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 04 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 06 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 08 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0b 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0c 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0d 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0e 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0f 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 10 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[19] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 11 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[20] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 12 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 ff 00 00 00 } + Orphan[21] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 131 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [22] { + Orphan[0] 0x0007: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 0d 00 00 00 06 00 00 21 e0 2e 13 00 86 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 03 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 04 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 06 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 08 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0b 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0c 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0d 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0e 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0f 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 10 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 03 00 00 00 } + Orphan[19] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 11 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 01 00 00 00 } + Orphan[20] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 12 00 01 00 00 00 01 00 82 00 00 00 00 00 c0 ff 00 00 00 } + Orphan[21] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 132 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [3] { + Orphan[0] 0x0007: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 0d 00 00 00 07 00 00 21 e0 2e 00 00 86 00 00 00 } + Orphan[2] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 133 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [3] { + Orphan[0] 0x0007: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 0d 00 00 00 08 00 00 21 e0 2e 00 00 86 00 00 00 } + Orphan[2] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 134 0x000d: (MtlSuperClassUnknown: NeL Material, (0x64c75fec, 0x222b9eb9), 0x00000c00, Script) [5] { + References 0x2034: PARSED { + 0: (Standard, (0x00000002, 0x00000000)) + 1: (ParamBlock2, (0x00000082, 0x00000000)) + 2: (ParamBlock2, (0x00000082, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (ParamBlock2, (0x00000082, 0x00000000)) + 9: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....^... + Hex: 20 10 0a 00 00 00 5e 00 00 00 } + Orphan[0] 0x0010: (StorageRaw) { + Size: 8 + String: ........ + Hex: 0e 00 00 00 09 00 00 00 } + Orphan[1] 0x4001: (StorageRaw) { + Size: 50 + String: M.T.R.L._.G.E._.A.c.c._.M.i.k.o.t.o.B.a.n.i.e.r.e. } + Orphan[2] 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 02 00 00 + Int: 522 + Float: 7.31478e-43 } + Orphan[3] 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + 135 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 88 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 136 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 137 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [39] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: Y..!...%`......!..%..... + Hex: 59 b4 8a 21 80 89 dc 25 60 11 00 00 00 00 00 21 e0 2e 25 00 8a 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 01 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 02 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 03 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 04 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 05 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 06 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 15 + String: ......@ ......@ + Hex: 07 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 08 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 15 + String: ......@.......@ + Hex: 09 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: d.............@.... + Hex: 64 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: e.............@.... + Hex: 65 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: f.............@.... + Hex: 66 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: g.............@.... + Hex: 67 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: h.............@.... + Hex: 68 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: i.............@.... + Hex: 69 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: j.............@.... + Hex: 6a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: k.............@.... + Hex: 6b 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[19] 0x000e: (StorageRaw) { + Size: 19 + String: l.............@.... + Hex: 6c 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[20] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: c8 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[21] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: c9 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[22] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: ca 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[23] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cb 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[24] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cc 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[25] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cd 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[26] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: ce 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[27] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: cf 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[28] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: d0 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[29] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: dc 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[30] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: dd 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[31] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: de 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[32] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: df 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[33] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e0 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[34] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e1 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[35] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e2 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[36] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e3 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[37] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: e4 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[38] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 138 0x0002: (CustAttribSuperClassUnknown: mental ray: material custom attribute, (0x218ab459, 0x25dc8980), 0x00001160, mental ray: Material Custom Attributes (Autodesk)) [0] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } } + 139 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) + 1: (mental ray: material custom attribute, (0x218ab459, 0x25dc8980)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: 96 00 00 00 + Int: 150 + Float: 2.10195e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } } + 140 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 141 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 8e 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 142 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 143 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 96 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 144 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 96 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 145 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 96 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 146 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 96 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 147 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 96 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 148 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 149 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 0 + String: + Hex: } } } + 150 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 8b 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 0.9. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 10 + Int: 268435968 + Float: 2.52451e-29 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 151 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 98 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 152 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 153 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: a4 00 00 00 + Int: 164 + Float: 2.29813e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 154 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 155 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 9c 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 156 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 157 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 a4 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 158 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 a4 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 159 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 a4 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 160 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 a4 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 161 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 a4 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 162 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 163 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 164 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 99 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 0.9. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 165 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 a6 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 166 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 167 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: b2 00 00 00 + Int: 178 + Float: 2.49431e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 168 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 169 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 aa 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 170 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 171 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 b2 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 172 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 b2 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 173 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 b2 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 174 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 b2 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 175 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 b2 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 176 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 177 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 178 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 a7 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 1.0. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 179 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 b4 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 180 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 181 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: c0 00 00 00 + Int: 192 + Float: 2.69049e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 182 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 183 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 b8 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 184 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 185 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 c0 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 186 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 c0 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 187 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 c0 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 188 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 c0 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 189 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 c0 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 190 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 191 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 192 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 b5 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 1.1. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 193 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 c2 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 194 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 195 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: ce 00 00 00 + Int: 206 + Float: 2.88667e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 196 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 197 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 c6 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 198 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 199 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 ce 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 200 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 ce 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 201 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 ce 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 202 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 ce 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 203 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 ce 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 204 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 205 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 206 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 c3 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 1.2. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 207 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 d0 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 208 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 209 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: dc 00 00 00 + Int: 220 + Float: 3.08286e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 210 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 211 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 d4 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 212 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 213 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 dc 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 214 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 dc 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 215 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 dc 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 216 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 dc 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 217 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 dc 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 218 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 219 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 220 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 d1 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 1.3. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 221 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 de 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 222 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 223 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: ea 00 00 00 + Int: 234 + Float: 3.27904e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 224 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 225 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 e2 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 226 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 227 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 ea 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 228 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 ea 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 229 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 ea 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 230 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 ea 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 231 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 ea 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 232 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 233 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 234 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 df 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 1.4. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 235 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 ec 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 236 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 237 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: f8 00 00 00 + Int: 248 + Float: 3.47522e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 238 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 239 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 f0 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 240 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 241 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 f8 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 242 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 f8 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 243 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 f8 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 244 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 f8 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 245 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 f8 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 246 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 247 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 248 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 ed 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 1.5. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 249 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 fa 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 250 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 251 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 01 00 00 + Int: 262 + Float: 3.6714e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 252 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 253 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 fe 00 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 254 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 255 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 06 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 256 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 06 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 257 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 06 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 258 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 06 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 259 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 06 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 260 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 261 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 262 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 fb 00 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 1.6. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 263 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 08 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 264 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 265 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: 14 01 00 00 + Int: 276 + Float: 3.86758e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 266 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 267 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 0c 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 268 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 269 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 14 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 270 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 14 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 271 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 14 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 272 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 14 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 273 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 14 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 274 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 275 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 276 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 09 01 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 1.7. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 277 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!........ + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 16 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 278 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 279 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: "... + Hex: 22 01 00 00 + Int: 290 + Float: 4.06377e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 280 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 281 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!........ + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 1a 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 282 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 283 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!...."... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 22 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 284 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!...."... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 22 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 285 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!...."... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 22 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 286 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!...."... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 22 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 287 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!...."... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 22 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 288 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 289 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 290 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 17 01 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 1.8. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 291 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!....$... + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 24 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 292 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 293 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: 0... + Hex: 30 01 00 00 + Int: 304 + Float: 4.25995e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 294 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 295 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....(... + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 28 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 296 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 297 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....0... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 30 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 298 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....0... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 30 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 299 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....0... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 30 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 300 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....0... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 30 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 301 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....0... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 30 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 302 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 303 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 304 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....%... + Hex: 20 10 0a 00 00 00 25 01 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 1.9. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 305 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!....2... + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 32 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 306 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 307 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: >... + Hex: 3e 01 00 00 + Int: 318 + Float: 4.45613e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 308 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 309 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....6... + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 36 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 310 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 311 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....>... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 3e 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 312 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....>... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 3e 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 313 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....>... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 3e 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 314 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....>... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 3e 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 315 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....>... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 3e 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 316 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 317 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 318 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....3... + Hex: 20 10 0a 00 00 00 33 01 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 2.0. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 319 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!....@... + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 40 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 320 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 321 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: L... + Hex: 4c 01 00 00 + Int: 332 + Float: 4.65231e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 322 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 323 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....D... + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 44 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 324 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 325 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....L... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 4c 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 326 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....L... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 4c 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 327 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....L... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 4c 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 328 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....L... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 4c 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 329 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....L... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 4c 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 330 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 331 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 332 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....A... + Hex: 20 10 0a 00 00 00 41 01 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 2.1. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 333 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!....N... + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 4e 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 334 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 335 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: Z... + Hex: 5a 01 00 00 + Int: 346 + Float: 4.84849e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 336 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 337 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....R... + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 52 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 338 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 339 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....Z... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 5a 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 340 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....Z... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 5a 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 341 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....Z... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 5a 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 342 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....Z... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 5a 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 343 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....Z... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 5a 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 344 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 345 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 346 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....O... + Hex: 20 10 0a 00 00 00 4f 01 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 2.2. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 347 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!....\... + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 5c 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 348 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 349 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: h... + Hex: 68 01 00 00 + Int: 360 + Float: 5.04467e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 350 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 351 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....`... + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 60 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 352 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 353 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....h... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 68 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 354 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....h... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 68 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 355 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....h... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 68 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 356 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....h... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 68 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 357 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....h... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 68 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 358 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 359 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 360 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....]... + Hex: 20 10 0a 00 00 00 5d 01 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 2.3. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 361 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [6] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: <).Z..B0`......!....j... + Hex: 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 00 21 e0 2e 04 00 6a 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 09 00 00 00 00 00 80 06 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 362 0x0001: (CustAttribSuperClassUnknown: ViewportManager, (0x5a06293c, 0x30420c1e), 0x00001160, Viewport Manager for DirectX (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 363 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ViewportManager, (0x5a06293c, 0x30420c1e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: v... + Hex: 76 01 00 00 + Int: 374 + Float: 5.24086e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 364 0x0004: (TexmapContainerSuperClassUnknown: Texmaps, (0x00001200, 0x00000000), 0x00001080, Standard Materials and Textures (Autodesk)) [6] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x5108: (StorageRaw) { + Size: 4 + String: ...> + Hex: 9a 99 99 3e + Int: 1050253722 + Float: 0.3 } + Orphan[2] 0x510c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x510d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x510e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x510f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 365 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....n... + Hex: 05 00 00 00 00 00 00 21 e0 2e 0c 00 6e 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 00 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 01 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 97 96 16 3f 97 96 16 3f 97 96 16 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ...............fff?fff?fff? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 66 66 66 3f 66 66 66 3f 66 66 66 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 27 + String: ........................... + Hex: 08 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0a 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 cc cc cc 3d } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ..................= + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 cd cc cc 3d } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 366 0x0005: (ShaderSuperClassUnknown: Blinn, (0x00000038, 0x00000000), 0x000010b0, Standard Materials and Textures (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x5020: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 367 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [8] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....v... + Hex: 08 00 00 00 00 00 00 21 e0 2e 06 00 76 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 02 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[7] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 368 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [14] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....v... + Hex: 08 00 00 00 01 00 00 21 e0 2e 0c 00 76 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 27 + String: ..................?...?...? + Hex: 02 00 02 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 3f 00 00 00 3f 00 00 00 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: .......)......@.... + Hex: 03 00 0f 00 00 00 00 29 81 10 00 00 00 00 40 ff ff ff ff } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 06 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 06 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 c0 3f } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 07 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: .................@@ + Hex: 0b 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 40 40 } + Orphan[13] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 369 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [13] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....v... + Hex: 08 00 00 00 02 00 00 21 e0 2e 0b 00 76 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 3f } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 04 00 00 00 00 00 00 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 05 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 08 00 00 00 00 00 80 00 00 00 00 00 40 ff ff ff ff } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 09 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[12] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 370 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [7] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....v... + Hex: 08 00 00 00 03 00 00 21 e0 2e 04 00 76 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 00 00 04 08 00 00 00 00 82 00 00 00 00 00 00 18 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@....@.... + Hex: 01 00 0f 08 00 00 00 01 81 00 00 00 00 00 00 18 00 00 00 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff 40 ff ff ff ff } + Orphan[3] 0x000e: (StorageRaw) { + Size: 139 + String: ...................@...?@...?@...?@...?@...?@...?@...?@...?@...>@...?@...?@...?@....@....@....@....@...?@...?@...?@...?@...?@...?@...?@...? + Hex: 02 00 06 08 00 00 00 00 92 00 00 00 00 00 00 18 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 9a 99 99 3e 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 00 00 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f 40 00 00 80 3f } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 03 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[5] 0x0005: (StorageRaw) { + Size: 961 + String: $.......ambientMap...........ambientMapAmount...........ambientMapEnable...........bumpMap...........bumpMapAmount...........bumpMapEnable...........diffuseMap...........diffuseMapAmount...........diffuseMapEnable...........displacementMap...........displacementMapAmount...........displacementMapEnable...........filterMap...........filterMapAmount...........filterMapEnable...........glossinessMap...........glossinessMapAmount...........glossinessMapEnable...........opacityMap...........opacityMapAmount...........opacityMapEnable...........reflectionMap...........reflectionMapAmount...........reflectionMapEnable...........refractionMap...........refractionMapAmount...........refractionMapEnable...........selfIllumMap...........selfIllumMapAmount...........selfIllumMapEnable...........specularLevelMap...........specularLevelMapAmount...........specularLevelMapEnable...........specularMap...........specularMapAmount...........specularMapEnable....... + Hex: 24 00 00 00 0b 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 00 01 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 00 00 00 00 11 00 00 00 61 6d 62 69 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 00 00 00 00 08 00 00 00 62 75 6d 70 4d 61 70 00 01 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 41 6d 6f 75 6e 74 00 02 00 08 00 00 00 0e 00 00 00 62 75 6d 70 4d 61 70 45 6e 61 62 6c 65 00 00 00 08 00 00 00 0b 00 00 00 64 69 66 66 75 73 65 4d 61 70 00 01 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 41 6d 6f 75 6e 74 00 02 00 01 00 00 00 11 00 00 00 64 69 66 66 75 73 65 4d 61 70 45 6e 61 62 6c 65 00 00 00 01 00 00 00 10 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 00 01 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0b 00 00 00 16 00 00 00 64 69 73 70 6c 61 63 65 6d 65 6e 74 4d 61 70 45 6e 61 62 6c 65 00 00 00 0b 00 00 00 0a 00 00 00 66 69 6c 74 65 72 4d 61 70 00 01 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 07 00 00 00 10 00 00 00 66 69 6c 74 65 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 07 00 00 00 0e 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 00 01 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 41 6d 6f 75 6e 74 00 02 00 04 00 00 00 14 00 00 00 67 6c 6f 73 73 69 6e 65 73 73 4d 61 70 45 6e 61 62 6c 65 00 00 00 04 00 00 00 0b 00 00 00 6f 70 61 63 69 74 79 4d 61 70 00 01 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 41 6d 6f 75 6e 74 00 02 00 06 00 00 00 11 00 00 00 6f 70 61 63 69 74 79 4d 61 70 45 6e 61 62 6c 65 00 00 00 06 00 00 00 0e 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 00 01 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 09 00 00 00 14 00 00 00 72 65 66 6c 65 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 09 00 00 00 0e 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 00 01 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 41 6d 6f 75 6e 74 00 02 00 0a 00 00 00 14 00 00 00 72 65 66 72 61 63 74 69 6f 6e 4d 61 70 45 6e 61 62 6c 65 00 00 00 0a 00 00 00 0d 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 00 01 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 41 6d 6f 75 6e 74 00 02 00 05 00 00 00 13 00 00 00 73 65 6c 66 49 6c 6c 75 6d 4d 61 70 45 6e 61 62 6c 65 00 00 00 05 00 00 00 11 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 00 01 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 41 6d 6f 75 6e 74 00 02 00 03 00 00 00 17 00 00 00 73 70 65 63 75 6c 61 72 4c 65 76 65 6c 4d 61 70 45 6e 61 62 6c 65 00 00 00 03 00 00 00 0c 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 00 01 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 41 6d 6f 75 6e 74 00 02 00 02 00 00 00 12 00 00 00 73 70 65 63 75 6c 61 72 4d 61 70 45 6e 61 62 6c 65 00 00 00 02 00 00 00 } + Orphan[6] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 371 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!....v... + Hex: 08 00 00 00 04 00 00 21 e0 2e 03 00 76 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 00 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 00 00 00 00 00 00 } } + 372 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [5] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } } + Orphan[3] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[4] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 373 0x0007: (SamplerSuperClassUnknown: Max 2.5 Star, (0x25773211, 0x00000000), 0x00001110, Standard Samplers (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 24 + String: M.a.x. .2...5. .S.t.a.r. } } } + 374 0x0008: (MtlSuperClassUnknown: Standard, (0x00000002, 0x00000000), 0x00000c00, Standard Materials and Textures (Autodesk)) [3] { + References 0x2034: PARSED { + 1: (Texmaps, (0x00001200, 0x00000000)) + 2: (Blinn, (0x00000038, 0x00000000)) + 3: (ParamBlock2, (0x00000082, 0x00000000)) + 4: (ParamBlock2, (0x00000082, 0x00000000)) + 5: (ParamBlock2, (0x00000082, 0x00000000)) + 6: (ParamBlock2, (0x00000082, 0x00000000)) + 7: (ParamBlock2, (0x00000082, 0x00000000)) + 8: (Max 2.5 Star, (0x25773211, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: .....k... + Hex: 20 10 0a 00 00 00 6b 01 00 00 } + Orphan[0] 0x4000: (StorageContainer) [4] { + 0 0x4001: (StorageRaw) { + Size: 24 + String: 2.4. .-. .D.e.f.a.u.l.t. } + 1 0x4003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + 2 0x4020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x4030: (StorageRaw) { + Size: 16 + String: ...............? + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } } + Orphan[1] 0x5300: (StorageRaw) { + Size: 4 + String: .... + Hex: 0d 00 00 00 + Int: 13 + Float: 1.82169e-44 } + Orphan[2] 0x5600: (StorageContainer) [1] { + 0 0x0322: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 375 0x000e: (ReferenceMakerUnknown: Material Editor, (0x00000c80, 0x00000000), 0x00000100, Builtin) [5] { + References 0x2034: PARSED { + 1: (Standard, (0x00000002, 0x00000000)) + 2: (Standard, (0x00000002, 0x00000000)) + 3: (Standard, (0x00000002, 0x00000000)) + 4: (Standard, (0x00000002, 0x00000000)) + 5: (Standard, (0x00000002, 0x00000000)) + 6: (Standard, (0x00000002, 0x00000000)) + 7: (NeL Material, (0x64c75fec, 0x222b9eb9)) + 8: (Standard, (0x00000002, 0x00000000)) + 9: (Standard, (0x00000002, 0x00000000)) + 10: (Standard, (0x00000002, 0x00000000)) + 11: (Standard, (0x00000002, 0x00000000)) + 12: (Standard, (0x00000002, 0x00000000)) + 13: (Standard, (0x00000002, 0x00000000)) + 14: (Standard, (0x00000002, 0x00000000)) + 15: (Standard, (0x00000002, 0x00000000)) + 16: (Standard, (0x00000002, 0x00000000)) + 17: (Standard, (0x00000002, 0x00000000)) + 18: (Standard, (0x00000002, 0x00000000)) + 19: (Standard, (0x00000002, 0x00000000)) + 20: (Standard, (0x00000002, 0x00000000)) + 21: (Standard, (0x00000002, 0x00000000)) + 22: (Standard, (0x00000002, 0x00000000)) + 23: (Standard, (0x00000002, 0x00000000)) + 24: (Standard, (0x00000002, 0x00000000)) + 25: (NeL Material, (0x64c75fec, 0x222b9eb9)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x9010: (StorageRaw) { + Size: 8 + String: ........ + Hex: 06 00 00 00 04 00 00 00 } + Orphan[1] 0x9030: (StorageRaw) { + Size: 96 + String: ................................................................................................ + Hex: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[2] 0x09c0: (StorageRaw) { + Size: 4 + String: .... + Hex: 06 00 00 00 + Int: 6 + Float: 8.40779e-45 } + Orphan[3] 0x90b0: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[4] 0x09d0: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 376 0x000f: (ReferenceMakerUnknown: MtlBaseLib, (0x00003333, 0x00000000), 0x00000100, Builtin) [1] { + References 0x2034: PARSED { + 0: (NeL Material, (0x64c75fec, 0x222b9eb9)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x4110: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 377 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [3] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 00 00 } + Orphan[2] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } } + 378 0x0010: (SoundObjSuperClassUnknown: WaveMaster, (0x476fa9de, 0x5b918e4e), 0x00000d00, ProSound - Multitrack Audio) [0] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } } + 379 0x0011: (SoundObjSuperClassUnknown: ProSound, (0x476fa9de, 0x5b918e4a), 0x00000d00, ProSound - Multitrack Audio) [29] { + References 0x2034: PARSED { + 0: (WaveMaster, (0x476fa9de, 0x5b918e4e)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x4990: (StorageRaw) { + Size: 4 + String: .... + Hex: 8c 00 00 00 + Int: 140 + Float: 1.96182e-43 } + Orphan[1] 0x5000: (StorageRaw) { + Size: 4 + String: <... + Hex: 3c 00 00 00 + Int: 60 + Float: 8.40779e-44 } + Orphan[2] 0x5001: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 + Int: 4 + Float: 5.60519e-45 } + Orphan[3] 0x5002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[4] 0x5003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x5004: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[6] 0x5005: (StorageRaw) { + Size: 4 + String: .... + Hex: d0 07 00 00 + Int: 2000 + Float: 2.8026e-42 } + Orphan[7] 0x5006: (StorageRaw) { + Size: 4 + String: .... + Hex: e8 03 00 00 + Int: 1000 + Float: 1.4013e-42 } + Orphan[8] 0x5008: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[9] 0x5009: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[10] 0x500a: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[11] 0x500b: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[12] 0x500c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[13] 0x500d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[14] 0x500e: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[15] 0x500f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[16] 0x5010: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[17] 0x5011: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[18] 0x5012: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[19] 0x5013: (StorageRaw) { + Size: 4 + String: d... + Hex: 64 00 00 00 + Int: 100 + Float: 1.4013e-43 } + Orphan[20] 0x5014: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[21] 0x5015: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[22] 0x5016: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[23] 0x5100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[24] 0x5110: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[25] 0x5120: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[26] 0x5130: (StorageRaw) { + Size: 8 + String: .....>.. + Hex: 00 00 00 00 80 3e 00 00 } + Orphan[27] 0x5140: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[28] 0x5150: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 380 0x0012: (RootNode: RootNode, (0x00000002, 0x00000000), 0x00000001, Builtin) [1] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Children: IMPLICIT { + 0: (Node, (0x00000001, 0x00000000)) GE_Acc_MikotoBaniere } + Orphan[0] 0x0120: (StorageRaw) { + Size: 0 + String: + Hex: } } + 381 0x0013: (ControlPositionSuperClassUnknown: Bezier Position, (0x00002008, 0x00000000), 0x0000900b, Builtin) [9] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x2503: (StorageRaw) { + Size: 12 + String: .....%f..... + Hex: 00 00 00 00 9c 25 66 b2 00 00 80 b3 } + Orphan[1] 0x2500: (StorageRaw) { + Size: 8 + String: ........ } + Orphan[2] 0x3002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x3003: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 00 00 00 80 } + Orphan[4] 0x2532: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[5] 0x2533: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[6] 0x2534: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[7] 0x3005: (StorageRaw) { + Size: 4 + String: .... + Hex: 86 01 00 00 + Int: 390 + Float: 5.46506e-43 } + Orphan[8] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 382 0x0014: (ControlRotationSuperClassUnknown: TCB Rotation, (0x00442313, 0x00000000), 0x0000900c, Builtin) [9] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x2504: (StorageRaw) { + Size: 16 + String: ..5...5...52..5? + Hex: f2 04 35 bf f3 04 35 b2 f6 04 35 32 f4 04 35 3f } + Orphan[1] 0x2500: (StorageRaw) { + Size: 8 + String: ........ } + Orphan[2] 0x3002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x3003: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 00 00 00 80 } + Orphan[4] 0x2532: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[5] 0x2533: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[6] 0x2534: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[7] 0x3005: (StorageRaw) { + Size: 4 + String: .... + Hex: 86 01 00 00 + Int: 390 + Float: 5.46506e-43 } + Orphan[8] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 383 0x0015: (ControlScaleSuperClassUnknown: Bezier Scale, (0x00002010, 0x00000000), 0x0000900d, Builtin) [9] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x2505: (StorageRaw) { + Size: 28 + String: ...?...?...?...............? + Hex: 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 00 80 00 00 00 80 00 00 00 80 00 00 80 3f } + Orphan[1] 0x2500: (StorageRaw) { + Size: 8 + String: ........ } + Orphan[2] 0x3002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x3003: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 00 00 00 80 } + Orphan[4] 0x2532: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[5] 0x2533: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[6] 0x2534: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[7] 0x3005: (StorageRaw) { + Size: 4 + String: .... + Hex: 86 01 00 00 + Int: 390 + Float: 5.46506e-43 } + Orphan[8] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 384 0x0016: (ControlTransformSuperClassUnknown: Position/Rotation/Scale, (0x00002005, 0x00000000), 0x00009008, Builtin) [3] { + References 0x2034: PARSED { + 0: (Bezier Position, (0x00002008, 0x00000000)) + 1: (TCB Rotation, (0x00442313, 0x00000000)) + 2: (Bezier Scale, (0x00002010, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x7230: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x7231: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 385 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [121] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: .......!..w..... + Hex: 18 00 00 00 00 00 00 21 e0 2e 77 00 83 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 04 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: p..... .......@.... + Hex: 70 00 04 00 00 00 20 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: q..... .......@..I? + Hex: 71 00 05 00 00 00 20 00 92 00 00 00 00 00 40 db 0f 49 3f } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 04 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 06 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 07 00 01 00 00 00 00 00 92 00 00 00 00 00 40 01 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 08 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ..................A + Hex: 09 00 07 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 a0 41 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 07 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0b 00 07 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: [.............@.... + Hex: 5b 00 04 00 00 00 02 00 80 00 00 00 00 00 40 00 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 7f 00 01 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: \.............@...? + Hex: 5c 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 80 3f } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: ].............@.. A + Hex: 5d 00 07 00 00 00 02 00 90 00 00 00 00 00 40 00 00 20 41 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: ^.............@...? + Hex: 5e 00 00 00 00 00 02 00 90 00 00 00 00 00 40 00 00 80 3f } + Orphan[17] 0x000e: (StorageRaw) { + Size: 19 + String: M.............@.... + Hex: 4d 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[18] 0x000e: (StorageRaw) { + Size: 19 + String: Y.............@.... + Hex: 59 00 04 00 00 00 02 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[19] 0x000e: (StorageRaw) { + Size: 19 + String: =.............@.... + Hex: 3d 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[20] 0x000e: (StorageRaw) { + Size: 19 + String: O.............@.... + Hex: 4f 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[21] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0d 00 04 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[22] 0x000e: (StorageRaw) { + Size: 19 + String: Z.............@.... + Hex: 5a 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[23] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 17 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[24] 0x000e: (StorageRaw) { + Size: 19 + String: 4.............@.... + Hex: 34 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[25] 0x000e: (StorageRaw) { + Size: 19 + String: X.............@.... + Hex: 58 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[26] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 19 00 01 00 00 00 01 00 92 00 00 00 00 00 c0 01 00 00 00 } + Orphan[27] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 1a 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[28] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 1d 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[29] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 1b 00 01 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 00 00 } + Orphan[30] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 1e 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[31] 0x000e: (StorageRaw) { + Size: 19 + String: ..................? + Hex: 1c 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 80 3f } + Orphan[32] 0x000e: (StorageRaw) { + Size: 19 + String: .............@.... + Hex: 20 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[33] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 1f 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[34] 0x000e: (StorageRaw) { + Size: 19 + String: !.............@.... + Hex: 21 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[35] 0x000e: (StorageRaw) { + Size: 27 + String: ".............@...?...?...? + Hex: 22 00 02 00 00 00 02 00 82 00 00 00 00 00 40 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[36] 0x000e: (StorageRaw) { + Size: 19 + String: '.............@.... + Hex: 27 00 01 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[37] 0x000e: (StorageRaw) { + Size: 19 + String: #.............@.... + Hex: 23 00 01 00 00 00 02 00 92 00 00 00 00 00 40 0a 00 00 00 } + Orphan[38] 0x000e: (StorageRaw) { + Size: 19 + String: $.............@.... + Hex: 24 00 01 00 00 00 02 00 92 00 00 00 00 00 40 0a 00 00 00 } + Orphan[39] 0x000e: (StorageRaw) { + Size: 19 + String: %.............@.... + Hex: 25 00 01 00 00 00 02 00 92 00 00 00 00 00 40 0a 00 00 00 } + Orphan[40] 0x000e: (StorageRaw) { + Size: 19 + String: &.............@..I? + Hex: 26 00 05 00 00 00 02 00 92 00 00 00 00 00 40 db 0f 49 3f } + Orphan[41] 0x000e: (StorageRaw) { + Size: 19 + String: (.............@.... + Hex: 28 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[42] 0x000e: (StorageRaw) { + Size: 19 + String: ).............@.... + Hex: 29 00 04 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[43] 0x000e: (StorageRaw) { + Size: 19 + String: *.............@.... + Hex: 2a 00 01 00 00 00 00 00 82 00 00 00 00 00 40 03 00 00 00 } + Orphan[44] 0x000e: (StorageRaw) { + Size: 19 + String: +.................. + Hex: 2b 00 01 00 00 00 01 00 92 00 00 00 00 00 c0 02 00 00 00 } + Orphan[45] 0x000e: (StorageRaw) { + Size: 19 + String: ,.................A + Hex: 2c 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 a0 41 } + Orphan[46] 0x000e: (StorageRaw) { + Size: 19 + String: -.................A + Hex: 2d 00 00 00 00 00 01 00 92 00 00 00 00 00 c0 00 00 a0 41 } + Orphan[47] 0x000e: (StorageRaw) { + Size: 19 + String: .................2> + Hex: 2e 00 05 00 00 00 01 00 92 00 00 00 00 00 c0 c2 b8 32 3e } + Orphan[48] 0x000e: (StorageRaw) { + Size: 19 + String: /.............@.... + Hex: 2f 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[49] 0x000e: (StorageRaw) { + Size: 19 + String: 0.............@.... + Hex: 30 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[50] 0x000e: (StorageRaw) { + Size: 19 + String: 1.............@.... + Hex: 31 00 01 00 00 00 00 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[51] 0x000e: (StorageRaw) { + Size: 19 + String: 2.............@.... + Hex: 32 00 01 00 00 00 00 00 92 00 00 00 00 00 40 02 00 00 00 } + Orphan[52] 0x000e: (StorageRaw) { + Size: 19 + String: 3.............@ N.. + Hex: 33 00 01 00 00 00 00 00 92 00 00 00 00 00 40 20 4e 00 00 } + Orphan[53] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 0c 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[54] 0x000e: (StorageRaw) { + Size: 19 + String: V.............@.... + Hex: 56 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[55] 0x000e: (StorageRaw) { + Size: 19 + String: 5.............@.. A + Hex: 35 00 07 00 00 00 02 00 92 00 00 00 00 00 40 00 00 20 41 } + Orphan[56] 0x000e: (StorageRaw) { + Size: 19 + String: Q.............@.. A + Hex: 51 00 07 00 00 00 02 00 92 00 00 00 00 00 40 00 00 20 41 } + Orphan[57] 0x000e: (StorageRaw) { + Size: 19 + String: R.............@.. A + Hex: 52 00 07 00 00 00 02 00 92 00 00 00 00 00 40 00 00 20 41 } + Orphan[58] 0x000e: (StorageRaw) { + Size: 19 + String: >.............@..@@ + Hex: 3e 00 00 00 00 00 02 00 92 00 00 00 00 00 40 00 00 40 40 } + Orphan[59] 0x000e: (StorageRaw) { + Size: 19 + String: S.............@..@@ + Hex: 53 00 00 00 00 00 02 00 92 00 00 00 00 00 40 00 00 40 40 } + Orphan[60] 0x000e: (StorageRaw) { + Size: 19 + String: P.............@.. A + Hex: 50 00 07 00 00 00 02 00 92 00 00 00 00 00 40 00 00 20 41 } + Orphan[61] 0x000e: (StorageRaw) { + Size: 19 + String: 6.............@.... + Hex: 36 00 07 00 00 00 02 00 92 00 00 00 00 00 40 00 00 80 bf } + Orphan[62] 0x000e: (StorageRaw) { + Size: 19 + String: T.............@.... + Hex: 54 00 07 00 00 00 02 00 92 00 00 00 00 00 40 00 00 80 bf } + Orphan[63] 0x000e: (StorageRaw) { + Size: 19 + String: K.............@...? + Hex: 4b 00 07 00 00 00 02 00 92 00 00 00 00 00 40 00 00 80 3f } + Orphan[64] 0x000e: (StorageRaw) { + Size: 19 + String: L.............@.... + Hex: 4c 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[65] 0x000e: (StorageRaw) { + Size: 19 + String: 7.............@...? + Hex: 37 00 07 00 00 00 02 00 92 00 00 00 00 00 40 00 00 80 3f } + Orphan[66] 0x000e: (StorageRaw) { + Size: 19 + String: U.............@...? + Hex: 55 00 07 00 00 00 02 00 92 00 00 00 00 00 40 00 00 80 3f } + Orphan[67] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 81 00 01 00 00 00 02 00 92 00 00 00 00 00 40 01 00 00 00 } + Orphan[68] 0x000e: (StorageRaw) { + Size: 19 + String: z.............@.... + Hex: 7a 00 07 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[69] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...= + Hex: 0f 00 07 00 00 00 02 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[70] 0x000e: (StorageRaw) { + Size: 19 + String: W.............@...= + Hex: 57 00 07 00 00 00 02 00 92 00 00 00 00 00 40 cd cc cc 3d } + Orphan[71] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 10 00 01 00 00 00 02 00 82 00 00 00 00 00 40 04 00 00 00 } + Orphan[72] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@...? + Hex: 11 00 00 00 00 00 02 00 92 00 00 00 00 00 40 00 00 80 3f } + Orphan[73] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 13 00 04 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[74] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 14 00 04 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[75] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 15 00 01 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[76] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 16 00 00 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[77] 0x000e: (StorageRaw) { + Size: 19 + String: B.............@.... + Hex: 42 00 01 00 00 00 02 00 92 00 00 00 00 00 40 01 00 00 00 } + Orphan[78] 0x000e: (StorageRaw) { + Size: 15 + String: E.............@ + Hex: 45 00 11 00 00 00 02 00 81 00 00 00 00 00 40 } + Orphan[79] 0x000e: (StorageRaw) { + Size: 19 + String: F.............@.... + Hex: 46 00 01 00 00 00 02 00 92 00 00 00 00 00 40 06 00 00 00 } + Orphan[80] 0x000e: (StorageRaw) { + Size: 19 + String: G.............@.... + Hex: 47 00 00 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[81] 0x000e: (StorageRaw) { + Size: 19 + String: H.............@.... + Hex: 48 00 00 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[82] 0x000e: (StorageRaw) { + Size: 19 + String: I.............@.... + Hex: 49 00 05 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[83] 0x000e: (StorageRaw) { + Size: 19 + String: J.............@.... + Hex: 4a 00 05 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[84] 0x000e: (StorageRaw) { + Size: 19 + String: N.............@.... + Hex: 4e 00 04 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[85] 0x000e: (StorageRaw) { + Size: 19 + String: ?.............@...? + Hex: 3f 00 05 00 00 00 02 00 92 00 00 00 00 00 40 92 0a 06 3f } + Orphan[86] 0x000e: (StorageRaw) { + Size: 19 + String: @.............@.... + Hex: 40 00 13 00 00 00 02 00 82 00 00 00 00 00 40 ff ff ff ff } + Orphan[87] 0x000e: (StorageRaw) { + Size: 19 + String: A.............@.... + Hex: 41 00 01 00 00 00 02 00 92 00 00 00 00 00 40 01 00 00 00 } + Orphan[88] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 80 00 01 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[89] 0x000e: (StorageRaw) { + Size: 19 + String: _.............@.. A + Hex: 5f 00 00 00 00 00 00 00 92 00 00 00 00 00 40 00 00 20 41 } + Orphan[90] 0x000e: (StorageRaw) { + Size: 19 + String: `.............@.. A + Hex: 60 00 07 00 00 00 02 00 90 00 00 00 00 00 40 00 00 20 41 } + Orphan[91] 0x000e: (StorageRaw) { + Size: 19 + String: a.............@...? + Hex: 61 00 00 00 00 00 02 00 90 00 00 00 00 00 40 00 00 80 3f } + Orphan[92] 0x000e: (StorageRaw) { + Size: 19 + String: b.............@.... + Hex: 62 00 01 00 00 00 00 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[93] 0x000e: (StorageRaw) { + Size: 19 + String: 8.............@.... + Hex: 38 00 01 00 00 00 02 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[94] 0x000e: (StorageRaw) { + Size: 19 + String: 9.............@.... + Hex: 39 00 13 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[95] 0x000e: (StorageRaw) { + Size: 27 + String: :.............@............ + Hex: 3a 00 03 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[96] 0x000e: (StorageRaw) { + Size: 27 + String: ;.............@............ + Hex: 3b 00 03 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[97] 0x000e: (StorageRaw) { + Size: 27 + String: <.............@............ + Hex: 3c 00 03 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 } + Orphan[98] 0x000e: (StorageRaw) { + Size: 19 + String: e.............@.... + Hex: 65 00 01 00 00 00 02 00 92 00 00 00 00 00 40 01 00 00 00 } + Orphan[99] 0x000e: (StorageRaw) { + Size: 19 + String: c.............@.... + Hex: 63 00 00 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[100] 0x000e: (StorageRaw) { + Size: 19 + String: d.............@.... + Hex: 64 00 00 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[101] 0x000e: (StorageRaw) { + Size: 19 + String: f.............@..I? + Hex: 66 00 05 00 00 00 02 00 92 00 00 00 00 00 40 db 0f 49 3f } + Orphan[102] 0x000e: (StorageRaw) { + Size: 19 + String: k.............@.... + Hex: 6b 00 01 00 00 00 00 00 92 00 00 00 00 00 40 01 00 00 00 } + Orphan[103] 0x000e: (StorageRaw) { + Size: 19 + String: i.............@.... + Hex: 69 00 01 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[104] 0x000e: (StorageRaw) { + Size: 19 + String: j.............@.... + Hex: 6a 00 01 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[105] 0x000e: (StorageRaw) { + Size: 19 + String: g.............@.... + Hex: 67 00 01 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[106] 0x000e: (StorageRaw) { + Size: 19 + String: h.............@.... + Hex: 68 00 01 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[107] 0x000e: (StorageRaw) { + Size: 19 + String: l.............@...? + Hex: 6c 00 00 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 3f } + Orphan[108] 0x000e: (StorageRaw) { + Size: 19 + String: m.............@.... + Hex: 6d 00 01 00 00 00 02 00 92 00 00 00 00 00 40 01 00 00 00 } + Orphan[109] 0x000e: (StorageRaw) { + Size: 19 + String: n.............@.... + Hex: 6e 00 04 00 00 00 02 00 82 00 00 00 00 00 40 01 00 00 00 } + Orphan[110] 0x000e: (StorageRaw) { + Size: 19 + String: o.............@.... + Hex: 6f 00 04 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[111] 0x000e: (StorageRaw) { + Size: 19 + String: s.............@.... + Hex: 73 00 04 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[112] 0x000e: (StorageRaw) { + Size: 19 + String: t.............@.... + Hex: 74 00 04 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[113] 0x000e: (StorageRaw) { + Size: 19 + String: r..... .......@..I? + Hex: 72 00 05 00 00 00 20 00 92 00 00 00 00 00 40 db 0f 49 3f } + Orphan[114] 0x000e: (StorageRaw) { + Size: 19 + String: u.............@.... + Hex: 75 00 01 00 00 00 02 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[115] 0x000e: (StorageRaw) { + Size: 19 + String: v.............@.... + Hex: 76 00 01 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[116] 0x000e: (StorageRaw) { + Size: 19 + String: w.............@.... + Hex: 77 00 01 00 00 00 02 00 92 00 00 00 00 00 40 00 00 00 00 } + Orphan[117] 0x000e: (StorageRaw) { + Size: 27 + String: ..............@...?...?.... + Hex: 7b 00 03 00 00 00 02 00 82 00 00 00 00 00 40 00 00 80 3f 97 96 16 3f 00 00 00 00 } + Orphan[118] 0x000e: (StorageRaw) { + Size: 27 + String: |.............@..r?..Y?.... + Hex: 7c 00 03 00 00 00 02 00 82 00 00 00 00 00 40 f4 f2 72 3f db d9 59 3f 00 00 00 00 } + Orphan[119] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 82 00 01 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[120] 0x000c: (StorageRaw) { + Size: 94 + String: .............................................................................................. + Hex: 0f 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 } } + 386 0x0017: (MasterPointControllerSuperClassUnknown: Master Point Controller, (0x0d9c20ff, 0x00000000), 0x00009010, Builtin) [1] { + Orphan[0] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 387 0x0018: (GeomObjectSuperClassUnknown: Editable Poly, (0x1bf8338d, 0x192f6098), 0x00000010, Editable Poly Object (Autodesk)) [9] { + AppData: (AppData) [2] PARSED { + Entries[0]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x1cef158c, 0x1da8486f) + SuperClassId: 2912 + SubId: 0 + Size: 4 } + Value: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Entries[1]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x48a057d2, 0x44f70d8a) + SuperClassId: 2912 + SubId: 0 + Size: 1 } + Value: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } } + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) + 1: (Master Point Controller, (0x0d9c20ff, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x4039: (StorageContainer) [2] { + 0 0x0000: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[1] 0x403a: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[2] 0x4038: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x0900: (StorageRaw) { + Size: 44 + String: ............................................ + Hex: 00 00 00 80 ff ff ff 7f 00 00 00 80 ff ff ff 7f 00 00 00 80 ff ff ff 7f 00 00 00 80 ff ff ff 7f 00 00 00 80 ff ff ff 7f ff ff ff ff } + Orphan[4] 0x08fe: (StorageContainer) [13] { + 0 0x0150: (StorageRaw) { + Size: 4 + String: .... + Hex: 0f 00 00 00 + Int: 15 + Float: 2.10195e-44 } + 1 0x0140: (StorageRaw) { + Size: 4 + String: @... + Hex: 40 00 00 00 + Int: 64 + Float: 8.96831e-44 } + 2 0x0130: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x0100: (StorageRaw) { + Size: 3188 + String: .........m...5.<.].?.........'.;.].?........? ...].?......pz......X....>...9......O..<.u+..L........6=*l[<........Jm...5.<~.I>.........'.;~.I>........N ..~.I>......p.....<.<.'.;~.I>...........;.9Q>.....m.....<.9Q>....R9J.f....9Q>......9...."\.<...;.9Q>....wl......N.S.Gc......t.H.H............g..5..=........P....4 .?....?.x..l...N.?....?.x..m.<.N.?...........<(;.?............(;.?.... ......<.d.?.... ........d.?....&.-.`..<<=.?......C...B....?....M.?.W..;bn.?....`......<...?........A...x..?.....:./h...m.<.N.?....?.x>.l...N.?.......>...<(;.?.......>....(;.?.... ..>...<.d.?.... ..>.....d.?....&.->`..<<=.?.....:./`..<.[.?......C>..B;...?....O.?>....bn.?.......=...;x..?....`..=B......?.....:./.......?.....:./..#<...?....".)...#.y .?.....'B...4....?....M.?.....bn.?.....'B.$.4;...?......C...B;...?...........;x..?....`...B......?....&.->...;<=.?....&.->....<=.?.....'B>&.4;...?....O.?>W..;bn.?.....'B>..4....?......C>..B....?....`..=...<...?.......=A...x..?.....:./#.#....?.....:./y..;...?....&.-.w...<=.?....&.-.....<=.?....".)>..#w...<=.?....".)>..#.y .?....".)...#N(.4x..?....>..>*6u..".?.....Y.>W...N..?.....Y.>.....>M7u<.".?.....RC>U..4.6.?......5>.......?....>. >s.@....?....>. >..@<...?......5>...<...?.....RC.U..4.6.?......5........?....>. .s.@....?....>. ...@<...?......5....<...?.........v.4da.?........E...]@.?.....Q..A.7..l.?.....Q..l.7<.l.?...........<]@.?.........H.4Ae.?....2....D..q..?..........$....?..........$<...?....2....D....4.O.?.....?.>cz.4./.?.....c.>=.w4.(.?....(.;..xf4...?......./q.f4so.?....(.;>.xf4...?......./..w4-..? + Hex: c7 00 00 00 0c 00 00 00 0b 6d 09 ba db 35 c5 3c e4 5d 15 3f 04 00 00 00 8e d3 cd bc d2 27 cb 3b e4 5d 15 3f 04 00 00 00 1b d9 80 bc 3f 20 ba bc e4 5d 15 3f 04 00 00 00 94 84 70 3c 3f 20 ba bc e4 5d 15 3f 0c 00 00 00 bb 3c c5 3c da 27 cb 3b e4 5d 15 3f 0c 00 00 00 5d 8c fd b9 ac bd 30 3d c9 c1 da 3f 04 00 00 00 e7 19 43 bd 58 4d 54 3c 3d d5 db 3f 04 00 00 00 49 97 e9 bc 02 50 2a bd 9d ba db 3f 04 00 00 00 ec 2c e0 3c 6e d7 26 bd a1 b1 db 3f 0c 00 00 00 35 c7 eb b9 a0 6f 35 3d 13 6a c2 be 04 00 00 00 d2 58 36 bd a6 e1 5f 3c 3e 7a bf be 04 00 00 00 58 cf de bc 04 3e 1c bd c6 39 c3 be 04 00 00 00 4f 9a e4 3c 10 75 2b bd b3 4c c2 be 0c 00 00 00 86 da 36 3d 2a 6c 5b 3c 86 c6 bf be 0c 00 00 00 4a 6d 09 ba ce 35 c5 3c 7e 80 49 3e 04 00 00 00 91 d3 cd bc 92 27 cb 3b 7e 80 49 3e 04 00 00 00 1d d9 80 bc 4e 20 ba bc 7e 80 49 3e 04 00 00 00 92 84 70 3c 4c 20 ba bc 7e 80 49 3e 04 00 00 00 b7 3c c5 3c 9c 27 cb 3b 7e 80 49 3e 04 00 00 00 cb f2 a0 bc d9 d3 90 3b f0 39 51 3e 0c 00 00 00 1a 6d 09 ba c5 05 96 3c f0 39 51 3e 04 00 00 00 52 39 4a bc 66 f3 93 bc f0 39 51 3e 04 00 00 00 b6 0b 39 3c 65 f3 93 bc f0 39 51 3e 04 00 00 00 22 5c 98 3c e1 d3 90 3b f0 39 51 3e 0c 00 00 00 77 6c 09 ba d4 05 96 3c 6c 13 13 3f 04 00 00 00 c8 f2 a0 bc 07 d4 90 3b 6e 13 13 3f 04 00 00 00 48 39 4a bc 59 f3 93 bc 6e 13 13 3f 04 00 00 00 be 0b 39 3c 59 f3 93 bc 6e 13 13 3f 0c 00 00 00 fd 5b 98 3c 10 d4 90 3b 6c 13 13 3f 0c 00 00 00 2e 3d 2f 3d 17 24 56 3c 50 5a db 3f 0c 00 00 00 c8 d8 35 3a 64 47 fb 3c 6a 4d cd be 04 00 00 00 74 75 05 bd ba 87 33 3c c9 e3 c9 be 04 00 00 00 df 8d 8f bc df a9 e0 bc 61 ad cf be 04 00 00 00 f1 fa af 3c cb 73 e2 bc 18 e6 cd be 0c 00 00 00 96 19 fa 3c 5e de 1c 3c fd fb cc be 0c 00 00 00 5a 97 02 ba 4c b6 f9 3c 9c 0d bb bd 04 00 00 00 da 7d 00 bd 27 94 0d 3c 9c 0d bb bd 04 00 00 00 24 64 9e bc f8 c0 e1 bc 9c 0d bb bd 04 00 00 00 1e fa 9a 3c 52 98 ec bc 9c 0d bb bd 0c 00 00 00 ee b6 fb 3c be f0 0b 3c 9c 0d bb bd 04 00 00 00 d2 fe c2 39 cd 08 02 3d 4e 0d de 3f 04 00 00 00 bc 3c 05 bd cc 17 0b 3c 6a b1 dd 3f 04 00 00 00 86 91 a8 bc 88 ce f5 bc ec 46 dd 3f 04 00 00 00 5d ee 9c 3c 4c 1f e7 bc 4a 98 dd 3f 04 00 00 00 d4 18 02 3d 8d 1a 1a 3c de 53 de 3f 0c 00 00 00 8e d2 05 ba de 23 d6 3c 72 d1 99 3f 04 00 00 00 5a 34 03 bd fa 49 e7 3b 72 d1 99 3f 04 00 00 00 56 c1 a0 bc ef 56 d0 bc 72 d1 99 3f 04 00 00 00 d8 e5 97 3c 56 4a ce bc 72 d1 99 3f 0c 00 00 00 ea 8e f3 3c c8 9f e8 3b 72 d1 99 3f 0c 00 00 00 64 6e 22 ba 62 6e 0b 3d 5a 89 d6 3f 04 00 00 00 f0 f6 1e bd f8 01 22 3c dd 89 d6 3f 04 00 00 00 d2 62 be bc 2c 32 0a bd 27 8a d6 3f 04 00 00 00 53 e7 b2 3c 84 ba 07 bd d1 89 d6 3f 0c 00 00 00 6c 68 0c 3d 80 2f 23 3c f6 88 d6 3f 04 00 00 00 2d fa fb bc f8 27 e0 3b 3d 77 b4 3f 04 00 00 00 cd e8 98 bc 1e e2 cf bc 69 77 b4 3f 04 00 00 00 38 13 8e 3c ef 25 cd bc 10 77 b4 3f 0c 00 00 00 e5 35 e1 3c 36 d3 e0 3b 60 76 b4 3f 0c 00 00 00 24 35 1f ba 30 bf cd 3c 99 76 b4 3f 0c 00 00 00 99 31 fe b9 05 8d 2d 3d 9a c8 d7 3f 04 00 00 00 95 b9 1b bd aa bc 18 3c c3 26 b3 3f 04 00 00 00 13 c0 bc bc a4 97 01 bd cd 26 b3 3f 04 00 00 00 72 b1 b3 3c ea 47 ff bc ca 26 b3 3f 0c 00 00 00 d5 71 0e 3d 06 21 1a 3c be 26 b3 3f 0c 00 00 00 cf bf fe b9 2d ce 2a 3d 7e 39 d5 3f 0c 00 00 00 8b cb 02 ba b2 fe 08 3d e4 b5 b5 3f 04 00 00 00 8c 2e 3f bd 8c 5f 4e 3c 9f c8 d7 3f 04 00 00 00 25 3b e5 bc 6e 5a 26 bd 97 c8 d7 3f 04 00 00 00 9c e2 db 3c 85 0f 23 bd 9a c8 d7 3f 0c 00 00 00 da 53 2c 3d 2e d0 50 3c a4 c8 d7 3f 04 00 00 00 b7 33 1e bd ee 7b 1c 3c eb b5 b5 3f 04 00 00 00 6b b4 3c bd 4a a0 4a 3c 79 39 d5 3f 04 00 00 00 fb 93 bf bc 08 29 04 bd e1 b5 b5 3f 04 00 00 00 3b 67 e2 bc 0a c9 23 bd 81 39 d5 3f 04 00 00 00 36 80 b6 3c 63 1d 02 bd e4 b5 b5 3f 04 00 00 00 d6 13 d9 3c 16 96 20 bd 7e 39 d5 3f 0c 00 00 00 4f 88 10 3d 16 f3 1d 3c f0 b5 b5 3f 0c 00 00 00 62 3d 2a 3d 20 fe 4c 3c 74 39 d5 3f 0c 00 00 00 a5 12 03 ba dc 3f 06 3d ca 26 b3 3f 0c 00 00 00 40 40 f6 b9 0c c7 0e 3d 40 44 52 be 04 00 00 00 6b e7 11 bd 9a ec 28 3c 40 44 52 be 04 00 00 00 12 76 b2 bc ea c5 fc bc 40 44 52 be 04 00 00 00 9b c3 b2 3c aa 84 07 bd 3f 44 52 be 0c 00 00 00 4f 7e 10 3d 0a 2a 26 3c 40 44 52 be 04 00 00 00 3d a8 41 3d 31 97 8b bc 49 4b 8f be 04 00 00 00 18 f4 3e ba 4e a0 53 bd 47 63 90 be 04 00 00 00 74 02 48 bd 48 f9 85 bc cf db 8f be 04 00 00 00 ec 67 ec bc 35 9a 19 3d d8 d2 8f be 0c 00 00 00 50 95 e9 3c 71 25 1b 3d a7 ac 8f be 0c 00 00 00 82 ef 8e b9 73 5c 4d 3d de 15 c6 3f 04 00 00 00 b9 16 2e bd 29 84 34 3c be 1f c6 3f 0c 00 00 00 ee eb 1d 3d 76 73 36 3c be 1f c6 3f 0c 00 00 00 44 f7 b9 ba 42 44 07 3d b5 8b bb 3f 0c 00 00 00 bf f2 ca ba 30 db 20 3d e7 ff d0 3f 04 00 00 00 7c d0 e1 bc 2f 41 1b bd 8b b8 d0 3f 04 00 00 00 8b 31 cd bc 8e a1 0a bd c3 36 bc 3f 04 00 00 00 7b cb bd 3c f6 8a 08 bd c5 5b bc 3f 04 00 00 00 82 ef 8e b9 df 58 4e bd de 15 c6 3f 04 00 00 00 e2 cf d7 3c a0 3e 1c bd 34 20 d0 3f 00 00 00 02 3f c2 78 be 9a 6c 9e bc 96 4e ed 3f 08 00 00 02 3f c2 78 be a5 6d 9e 3c 96 4e ed 3f 08 00 00 00 d4 17 a4 be ab ef b1 3c 28 3b e0 3f 00 00 00 00 d4 17 a4 be a7 ee b1 bc 28 3b e0 3f 08 00 00 00 20 d1 9c be b3 c7 bf 3c b5 64 d1 3f 00 00 00 00 20 d1 9c be bb c6 bf bc b5 64 d1 3f 08 00 00 00 26 b2 2d be 60 e1 ca 3c 3c 3d c1 3f 00 00 00 00 9c e0 43 be c6 82 42 bb ed 9b bc 3f 08 00 00 00 4d f5 3f be 57 e4 e0 3b 62 6e bc 3f 08 00 00 00 60 a9 db bd 11 ff 07 3c 0f 88 b8 3f 00 00 00 00 c4 90 dc bd 41 eb 87 bb 78 01 b8 3f 00 02 00 00 dc 3a aa 2f 68 e1 ca 3c 46 5b ce 3f 00 02 00 00 e4 3a aa 2f 70 e0 ca bc 44 5b ce 3f 00 02 00 00 e1 3a aa 2f f7 d7 23 3c 00 5b bc 3f 00 02 00 00 e8 3a aa 2f 79 e0 ca bc 01 5b bc 3f 00 02 00 00 e6 3a aa 2f 22 d6 23 bc 00 5b bc 3f 00 00 00 04 3f c2 78 3e a5 6d 9e 3c 96 4e ed 3f 00 00 00 04 3f c2 78 3e 9a 6c 9e bc 96 4e ed 3f 08 00 00 00 d4 17 a4 3e ab ef b1 3c 28 3b e0 3f 00 00 00 00 d4 17 a4 3e a7 ee b1 bc 28 3b e0 3f 08 00 00 00 20 d1 9c 3e b3 c7 bf 3c b5 64 d1 3f 00 00 00 00 20 d1 9c 3e bb c6 bf bc b5 64 d1 3f 08 00 00 00 26 b2 2d 3e 60 e1 ca 3c 3c 3d c1 3f 08 02 00 00 e0 3a aa 2f 60 e1 ca 3c 01 5b bc 3f 08 00 00 00 9e e0 43 3e 06 8a 42 3b ed 9b bc 3f 00 00 00 00 4f f5 3f 3e b7 e0 e0 bb 62 6e bc 3f 00 00 00 00 c4 90 dc 3d dd ee 87 3b 78 01 b8 3f 00 00 00 00 60 a9 db 3d 42 fd 07 bc 0f 88 b8 3f 00 02 00 00 e8 3a aa 2f d7 99 c4 bb 92 0e ba 3f 08 02 00 00 e3 3a aa 2f f5 d7 23 3c a4 91 ba 3f 00 02 00 00 22 b3 29 be 1d d6 23 bc 79 20 c1 3f 00 00 00 00 17 27 42 be ea 87 34 bb ef fc bb 3f 00 00 00 00 4d f5 3f be b7 e0 e0 bb 62 6e bc 3f 00 00 00 00 17 27 42 be 24 8f 34 3b ef fc bb 3f 00 00 00 00 9c e0 43 be 06 8a 42 3b ed 9b bc 3f 00 00 00 00 c4 90 dc bd dd ee 87 3b 78 01 b8 3f 00 00 00 00 60 a9 db bd 42 fd 07 bc 0f 88 b8 3f 00 02 00 00 26 b2 2d 3e 85 9d c4 3b 3c 3d c1 3f 00 02 00 00 26 b2 2d 3e cb 99 c4 bb 3c 3d c1 3f 08 00 00 00 19 27 42 3e 26 8f 34 3b ef fc bb 3f 08 00 00 00 4f f5 3f 3e 57 e4 e0 3b 62 6e bc 3f 00 00 00 00 19 27 42 3e e8 87 34 bb ef fc bb 3f 00 00 00 00 9e e0 43 3e c3 82 42 bb ed 9b bc 3f 08 00 00 00 60 a9 db 3d 11 ff 07 3c 0f 88 b8 3f 00 00 00 00 c4 90 dc 3d 41 eb 87 bb 78 01 b8 3f 00 00 00 00 e8 3a aa 2f 23 d6 23 bc a4 91 ba 3f 00 00 00 00 e4 3a aa 2f 79 9d c4 3b 92 0e ba 3f 00 00 00 00 26 b2 2d be 77 e0 ca bc 3c 3d c1 3f 00 02 00 00 26 b2 2d be cb 99 c4 bb 3c 3d c1 3f 00 02 00 00 22 b3 29 3e fa d7 23 3c 79 20 c1 3f 00 00 00 00 26 b2 2d 3e 77 e0 ca bc 3c 3d c1 3f 00 02 00 00 22 b3 29 3e 1d d6 23 bc 79 20 c1 3f 00 02 00 00 22 b3 29 be fa d7 23 3c 79 20 c1 3f 00 02 00 00 26 b2 2d be 85 9d c4 3b 3c 3d c1 3f 00 00 00 00 3a 25 19 b2 87 1a 1a 34 a1 62 f4 3f 00 00 00 00 59 04 0d b2 46 1a b6 bc 68 51 f2 3f 00 00 00 00 1a c9 f2 b1 22 17 61 bc 1a f9 ee 3f 00 00 00 00 1a c9 f2 b1 53 18 61 3c 1a f9 ee 3f 08 00 00 00 59 04 0d b2 de 1a b6 3c 68 51 f2 3f 00 00 00 00 49 7f a6 3d 8e a0 18 34 77 a7 f1 3f 00 00 00 00 ef 60 9b 3d 61 40 7a bc e7 17 f0 3f 00 00 00 00 70 63 89 3d bd a9 1a bc 65 91 ed 3f 00 00 00 00 70 63 89 3d ec aa 1a 3c 65 91 ed 3f 08 00 00 00 ef 60 9b 3d 8d 41 7a 3c e7 17 f0 3f 00 00 00 00 57 97 14 3e 4e 28 14 34 78 01 eb 3f 00 00 00 00 3e dc 0c 3e 2a 36 75 bc b9 22 ea 3f 00 00 00 00 ff 59 00 3e 57 8c 17 bc 4e ba e8 3f 00 00 00 00 ff 59 00 3e 81 8d 17 3c 4e ba e8 3f 08 00 00 00 3e dc 0c 3e 4d 37 75 3c b9 22 ea 3f 00 00 00 00 7f 52 43 3e 55 9f 0e 34 f9 36 e2 3f 00 00 00 00 11 dd 35 3e ed d1 9b bc 09 ab e1 3f 00 00 00 00 3e 16 20 3e 73 9a 40 bc 9d c8 e0 3f 00 00 00 00 3e 16 20 3e 92 9b 40 3c 9d c8 e0 3f 00 00 00 00 11 dd 35 3e 7b d2 9b 3c 09 ab e1 3f 00 00 00 00 7f 52 43 be 55 9f 0e 34 f8 36 e2 3f 00 00 00 00 11 dd 35 be ed d1 9b bc 09 ab e1 3f 00 00 00 00 3e 16 20 be 73 9a 40 bc 9d c8 e0 3f 00 00 00 00 3e 16 20 be 92 9b 40 3c 9d c8 e0 3f 00 00 00 00 11 dd 35 be 7b d2 9b 3c 09 ab e1 3f 00 00 00 00 99 eb 17 be d2 76 14 34 64 61 eb 3f 00 00 00 00 9b e3 0d be 45 a1 94 bc 5d 40 ea 3f 00 00 00 00 02 51 fb bd 41 b7 37 bc b4 6c e8 3f 08 00 00 00 02 51 fb bd 6c b8 37 3c b4 6c e8 3f 08 00 00 00 9b e3 0d be d7 a1 94 3c 5d 40 ea 3f 00 00 00 00 a4 a7 a4 bd f4 48 18 34 41 65 f1 3f 00 00 00 00 32 cf 9a bd 1e 44 85 bc 71 03 f0 3f 00 00 00 00 05 e1 8a bd 9f b9 24 bc f6 c6 ed 3f 00 00 00 00 05 e1 8a bd cc ba 24 3c f6 c6 ed 3f 08 00 00 00 32 cf 9a bd b6 44 85 3c 71 03 f0 3f 00 00 00 00 f0 59 86 be 93 00 87 34 bb 4f ef 3f 00 00 00 00 be 3f b1 be 63 7a 82 34 ed 2f e1 3f 00 00 00 00 b3 63 a9 be 3d c4 77 34 f2 28 d1 3f 00 00 00 00 f0 59 86 3e 93 00 86 34 bb 4f ef 3f 00 00 00 00 be 3f b1 3e 63 7a 82 34 ed 2f e1 3f 00 00 00 00 b3 63 a9 3e 3d c4 77 34 f2 28 d1 3f 00 00 00 00 28 9f 3b be af 78 66 34 eb b5 bf 3f 00 00 00 00 c3 e0 b7 2f 71 14 66 34 73 6f ba 3f 00 00 00 00 28 9f 3b 3e af 78 66 34 eb b5 bf 3f 00 00 00 00 bf e0 b7 2f e8 85 77 34 2d e1 cd 3f } + 4 0x010a: (StorageRaw) { + Size: 4660 + String: ........................<.........................................................../...................................0...................................1...............................................#....................................................................................................................................................................................................................................................................... ...........!..........."........... ................... ...!......."...........!...".......#...P.......$...........%...........&...........'...........$...#.......%...$.......&...%.......'...&.......#...'...................................................................................................................................(...........)...........*...........+...........,.......)...(.......*...).......+...*.......,...+.......(...,.......-...............=......./...>.......0...?.......1...@...........-......./...........0.../.......1...0.......-...1.......A...^.......C...........D...........E...........F...........3...2.......4...3.......5...4.......6...5.......2...6.......G...[.......I...`.......K...a.......M...\.......O...-.......7...;.......8...7.......9...8.......:...9.......;...:.......<...2.......=...7.......>...8.......?...9.......@...:.......2...A.......B...;.......3...C.......4...D.......5...E.......6...F.......7...G.......H...3.......8...I.......J...4.......9...K.......L...5.......:...M.......N...6.......;...O.......=...O.......>...=.......?...>.......@...?.......O...@.......<...C.......C...D.......D...E.......E...F.......F...<.......H...A.......B...G.......J...H.......G...I.......L...J.......I...K.......N...L.......K...M.......A...N.......M...B...................................................................Q...$.......R...%.......S...&.......T...'.......R...S.......Q...R.......P...Q.......T...P.......S...T...........P...........S.......T...U.......U...............U.......U...S...........R.......S...V.......V...........R...V.......V...............Q.......R...W.......W...........Q...W.......W...........P...X.......X...........Q...X.......X...............Y.......Y...T.......P...Y...........T.......Y...........Z...].......[...H.......a...c.......\...N.......Z...\.......]...B.......\...].......]...[.......^...Z.......\...^.......[...Z.......^...[......._...J......._...[.......`..._.......[...`.......c...L.......\...c.......\...a......._...b.......b...a.......`...b.......b...c......._...c.......`...a.......p...d.......d...........e...o.......f...e.......g...d.......f...........h...f.......i...g.......h...............q...........j...........r.......s.......................................k.......m...l.......n...............n...................j...h...........m.......o...........r...p...........s.......q...........t...........u...p.......w...........u...w.......t...v.......y...........w...y.......v...x.......z...........q...............s.......r...........|...............|.......................~...............................x...z...............................o...t...........................................k...........................k.......l...........................l...........m...........n...............................|...........................|...............................................~...............................................................................n...............................................................~...................~...........i...............k.......................y.......................l...................j.......................z...........p...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................e...........g...........i...........u...........v...........x.......................r.......................o.......................................................................................................t...u.......e...d... + Hex: 84 01 00 00 0c 00 00 01 06 00 00 00 05 00 00 00 0c 00 00 01 05 00 00 00 3c 00 00 00 0c 00 00 01 00 00 00 00 01 00 00 00 04 00 00 01 01 00 00 00 2e 00 00 00 04 00 00 01 07 00 00 00 06 00 00 00 04 00 00 01 01 00 00 00 02 00 00 00 04 00 00 01 02 00 00 00 2f 00 00 00 04 00 00 01 08 00 00 00 07 00 00 00 04 00 00 01 02 00 00 00 03 00 00 00 04 00 00 01 03 00 00 00 30 00 00 00 0c 00 00 01 1d 00 00 00 08 00 00 00 0c 00 00 01 03 00 00 00 04 00 00 00 0c 00 00 01 04 00 00 00 31 00 00 00 0c 00 00 01 05 00 00 00 1d 00 00 00 0c 00 00 01 04 00 00 00 00 00 00 00 0c 00 00 01 0f 00 00 00 0e 00 00 00 0c 00 00 01 0e 00 00 00 23 00 00 00 04 00 00 01 10 00 00 00 0f 00 00 00 04 00 00 01 11 00 00 00 10 00 00 00 04 00 00 01 12 00 00 00 11 00 00 00 0c 00 00 01 0e 00 00 00 12 00 00 00 0c 00 00 01 14 00 00 00 13 00 00 00 04 00 00 01 13 00 00 00 15 00 00 00 04 00 00 01 15 00 00 00 16 00 00 00 04 00 00 01 16 00 00 00 17 00 00 00 0c 00 00 01 17 00 00 00 14 00 00 00 04 00 00 01 13 00 00 00 19 00 00 00 0c 00 00 01 19 00 00 00 18 00 00 00 0c 00 00 01 18 00 00 00 14 00 00 00 04 00 00 01 15 00 00 00 1a 00 00 00 04 00 00 01 1a 00 00 00 19 00 00 00 04 00 00 01 16 00 00 00 1b 00 00 00 04 00 00 01 1b 00 00 00 1a 00 00 00 0c 00 00 01 17 00 00 00 1c 00 00 00 0c 00 00 01 1c 00 00 00 1b 00 00 00 0c 00 00 01 18 00 00 00 1c 00 00 00 0c 00 00 01 09 00 00 00 1e 00 00 00 04 00 00 01 0a 00 00 00 1f 00 00 00 04 00 00 01 0b 00 00 00 20 00 00 00 04 00 00 01 0c 00 00 00 21 00 00 00 0c 00 00 01 0d 00 00 00 22 00 00 00 04 00 00 01 1f 00 00 00 20 00 00 00 0c 00 00 01 1e 00 00 00 1f 00 00 00 04 00 00 01 20 00 00 00 21 00 00 00 0c 00 00 01 22 00 00 00 1e 00 00 00 0c 00 00 01 21 00 00 00 22 00 00 00 0c 00 00 01 23 00 00 00 50 00 00 00 04 00 00 01 24 00 00 00 0f 00 00 00 04 00 00 01 25 00 00 00 10 00 00 00 04 00 00 01 26 00 00 00 11 00 00 00 0c 00 00 01 27 00 00 00 12 00 00 00 0c 00 00 01 24 00 00 00 23 00 00 00 04 00 00 01 25 00 00 00 24 00 00 00 04 00 00 01 26 00 00 00 25 00 00 00 0c 00 00 01 27 00 00 00 26 00 00 00 0c 00 00 01 23 00 00 00 27 00 00 00 0c 00 00 01 0e 00 00 00 14 00 00 00 04 00 00 01 0f 00 00 00 13 00 00 00 04 00 00 01 10 00 00 00 15 00 00 00 04 00 00 01 11 00 00 00 16 00 00 00 04 00 00 01 12 00 00 00 17 00 00 00 0c 00 00 01 00 00 00 00 18 00 00 00 0c 00 00 01 04 00 00 00 1c 00 00 00 04 00 00 01 03 00 00 00 1b 00 00 00 04 00 00 01 02 00 00 00 1a 00 00 00 04 00 00 01 01 00 00 00 19 00 00 00 0c 00 00 01 05 00 00 00 28 00 00 00 04 00 00 01 06 00 00 00 29 00 00 00 04 00 00 01 07 00 00 00 2a 00 00 00 04 00 00 01 08 00 00 00 2b 00 00 00 0c 00 00 01 1d 00 00 00 2c 00 00 00 04 00 00 01 29 00 00 00 28 00 00 00 04 00 00 01 2a 00 00 00 29 00 00 00 04 00 00 01 2b 00 00 00 2a 00 00 00 04 00 00 01 2c 00 00 00 2b 00 00 00 04 00 00 01 28 00 00 00 2c 00 00 00 0c 00 00 01 2d 00 00 00 00 00 00 00 04 00 00 01 2e 00 00 00 3d 00 00 00 04 00 00 01 2f 00 00 00 3e 00 00 00 04 00 00 01 30 00 00 00 3f 00 00 00 0c 00 00 01 31 00 00 00 40 00 00 00 0c 00 00 01 2e 00 00 00 2d 00 00 00 04 00 00 01 2f 00 00 00 2e 00 00 00 04 00 00 01 30 00 00 00 2f 00 00 00 0c 00 00 01 31 00 00 00 30 00 00 00 0c 00 00 01 2d 00 00 00 31 00 00 00 0c 00 00 01 41 00 00 00 5e 00 00 00 04 00 00 01 43 00 00 00 06 00 00 00 04 00 00 01 44 00 00 00 07 00 00 00 04 00 00 01 45 00 00 00 08 00 00 00 0c 00 00 01 46 00 00 00 1d 00 00 00 0c 00 00 01 33 00 00 00 32 00 00 00 04 00 00 01 34 00 00 00 33 00 00 00 04 00 00 01 35 00 00 00 34 00 00 00 0c 00 00 01 36 00 00 00 35 00 00 00 0c 00 00 01 32 00 00 00 36 00 00 00 04 00 00 01 47 00 00 00 5b 00 00 00 04 00 00 01 49 00 00 00 60 00 00 00 04 00 00 01 4b 00 00 00 61 00 00 00 0c 00 00 01 4d 00 00 00 5c 00 00 00 0c 00 00 01 4f 00 00 00 2d 00 00 00 0c 00 00 01 37 00 00 00 3b 00 00 00 04 00 00 01 38 00 00 00 37 00 00 00 04 00 00 01 39 00 00 00 38 00 00 00 0c 00 00 01 3a 00 00 00 39 00 00 00 0c 00 00 01 3b 00 00 00 3a 00 00 00 0c 00 00 01 3c 00 00 00 32 00 00 00 04 00 00 01 3d 00 00 00 37 00 00 00 04 00 00 01 3e 00 00 00 38 00 00 00 04 00 00 01 3f 00 00 00 39 00 00 00 0c 00 00 01 40 00 00 00 3a 00 00 00 0c 00 00 01 32 00 00 00 41 00 00 00 0c 00 00 01 42 00 00 00 3b 00 00 00 04 00 00 01 33 00 00 00 43 00 00 00 04 00 00 01 34 00 00 00 44 00 00 00 04 00 00 01 35 00 00 00 45 00 00 00 0c 00 00 01 36 00 00 00 46 00 00 00 04 00 00 01 37 00 00 00 47 00 00 00 04 00 00 01 48 00 00 00 33 00 00 00 04 00 00 01 38 00 00 00 49 00 00 00 04 00 00 01 4a 00 00 00 34 00 00 00 04 00 00 01 39 00 00 00 4b 00 00 00 04 00 00 01 4c 00 00 00 35 00 00 00 0c 00 00 01 3a 00 00 00 4d 00 00 00 0c 00 00 01 4e 00 00 00 36 00 00 00 0c 00 00 01 3b 00 00 00 4f 00 00 00 0c 00 00 01 3d 00 00 00 4f 00 00 00 04 00 00 01 3e 00 00 00 3d 00 00 00 04 00 00 01 3f 00 00 00 3e 00 00 00 0c 00 00 01 40 00 00 00 3f 00 00 00 0c 00 00 01 4f 00 00 00 40 00 00 00 0c 00 00 01 3c 00 00 00 43 00 00 00 04 00 00 01 43 00 00 00 44 00 00 00 04 00 00 01 44 00 00 00 45 00 00 00 0c 00 00 01 45 00 00 00 46 00 00 00 0c 00 00 01 46 00 00 00 3c 00 00 00 0c 00 00 01 48 00 00 00 41 00 00 00 0c 00 00 01 42 00 00 00 47 00 00 00 04 00 00 01 4a 00 00 00 48 00 00 00 04 00 00 01 47 00 00 00 49 00 00 00 04 00 00 01 4c 00 00 00 4a 00 00 00 04 00 00 01 49 00 00 00 4b 00 00 00 0c 00 00 01 4e 00 00 00 4c 00 00 00 0c 00 00 01 4b 00 00 00 4d 00 00 00 0c 00 00 01 41 00 00 00 4e 00 00 00 0c 00 00 01 4d 00 00 00 42 00 00 00 0c 00 00 01 09 00 00 00 0d 00 00 00 0c 00 00 01 0a 00 00 00 09 00 00 00 04 00 00 01 0b 00 00 00 0a 00 00 00 04 00 00 01 0c 00 00 00 0b 00 00 00 0c 00 00 01 0d 00 00 00 0c 00 00 00 04 00 00 01 51 00 00 00 24 00 00 00 04 00 00 01 52 00 00 00 25 00 00 00 04 00 00 01 53 00 00 00 26 00 00 00 0c 00 00 01 54 00 00 00 27 00 00 00 04 00 00 01 52 00 00 00 53 00 00 00 04 00 00 01 51 00 00 00 52 00 00 00 0c 00 00 01 50 00 00 00 51 00 00 00 0c 00 00 01 54 00 00 00 50 00 00 00 0c 00 00 01 53 00 00 00 54 00 00 00 0c 00 00 01 09 00 00 00 50 00 00 00 04 00 00 01 0c 00 00 00 53 00 00 00 0c 00 00 01 54 00 00 00 55 00 00 00 04 00 00 01 55 00 00 00 0c 00 00 00 0c 00 00 01 0d 00 00 00 55 00 00 00 04 00 00 01 55 00 00 00 53 00 00 00 04 00 00 01 0b 00 00 00 52 00 00 00 04 00 00 01 53 00 00 00 56 00 00 00 04 00 00 01 56 00 00 00 0b 00 00 00 04 00 00 01 52 00 00 00 56 00 00 00 04 00 00 01 56 00 00 00 0c 00 00 00 04 00 00 01 0a 00 00 00 51 00 00 00 04 00 00 01 52 00 00 00 57 00 00 00 04 00 00 01 57 00 00 00 0a 00 00 00 04 00 00 01 51 00 00 00 57 00 00 00 04 00 00 01 57 00 00 00 0b 00 00 00 0c 00 00 01 50 00 00 00 58 00 00 00 04 00 00 01 58 00 00 00 0a 00 00 00 04 00 00 01 51 00 00 00 58 00 00 00 0c 00 00 01 58 00 00 00 09 00 00 00 0c 00 00 01 09 00 00 00 59 00 00 00 0c 00 00 01 59 00 00 00 54 00 00 00 0c 00 00 01 50 00 00 00 59 00 00 00 0c 00 00 01 0d 00 00 00 54 00 00 00 0c 00 00 01 59 00 00 00 0d 00 00 00 0c 00 00 01 5a 00 00 00 5d 00 00 00 04 00 00 01 5b 00 00 00 48 00 00 00 04 00 00 01 61 00 00 00 63 00 00 00 0c 00 00 01 5c 00 00 00 4e 00 00 00 08 00 00 01 5a 00 00 00 5c 00 00 00 0c 00 00 01 5d 00 00 00 42 00 00 00 08 00 00 01 5c 00 00 00 5d 00 00 00 08 00 00 01 5d 00 00 00 5b 00 00 00 0c 00 00 01 5e 00 00 00 5a 00 00 00 08 00 00 01 5c 00 00 00 5e 00 00 00 08 00 00 01 5b 00 00 00 5a 00 00 00 08 00 00 01 5e 00 00 00 5b 00 00 00 04 00 00 01 5f 00 00 00 4a 00 00 00 00 00 00 01 5f 00 00 00 5b 00 00 00 04 00 00 01 60 00 00 00 5f 00 00 00 00 00 00 01 5b 00 00 00 60 00 00 00 04 00 00 01 63 00 00 00 4c 00 00 00 08 00 00 01 5c 00 00 00 63 00 00 00 08 00 00 01 5c 00 00 00 61 00 00 00 00 00 00 01 5f 00 00 00 62 00 00 00 00 00 00 01 62 00 00 00 61 00 00 00 00 00 00 01 60 00 00 00 62 00 00 00 00 00 00 01 62 00 00 00 63 00 00 00 00 00 00 01 5f 00 00 00 63 00 00 00 00 00 00 01 60 00 00 00 61 00 00 00 00 00 00 01 70 00 00 00 64 00 00 00 00 00 01 01 64 00 00 00 bd 00 00 00 08 00 00 01 65 00 00 00 6f 00 00 00 08 00 00 01 66 00 00 00 65 00 00 00 00 00 00 01 67 00 00 00 64 00 00 00 08 00 01 01 66 00 00 00 be 00 00 00 08 00 00 01 68 00 00 00 66 00 00 00 00 00 00 01 69 00 00 00 67 00 00 00 08 00 01 01 68 00 00 00 bf 00 00 00 08 00 00 01 98 00 00 00 71 00 00 00 08 00 00 01 7b 00 00 00 6a 00 00 00 00 00 00 01 93 00 00 00 72 00 00 00 00 00 00 01 73 00 00 00 82 00 00 00 00 00 00 01 94 00 00 00 99 00 00 00 00 00 00 01 82 00 00 00 84 00 00 00 00 00 00 01 86 00 00 00 6b 00 00 00 08 00 00 01 6d 00 00 00 6c 00 00 00 00 00 00 01 6e 00 00 00 83 00 00 00 00 00 00 01 87 00 00 00 6e 00 00 00 00 00 00 01 88 00 00 00 91 00 00 00 08 00 00 01 6a 00 00 00 68 00 00 00 08 00 00 01 81 00 00 00 6d 00 00 00 08 00 00 01 6f 00 00 00 7b 00 00 00 00 00 00 01 72 00 00 00 70 00 00 00 00 00 00 01 91 00 00 00 73 00 00 00 08 00 00 01 71 00 00 00 81 00 00 00 00 00 01 01 74 00 00 00 c0 00 00 00 00 00 00 01 75 00 00 00 70 00 00 00 00 00 01 01 77 00 00 00 c1 00 00 00 00 00 00 01 75 00 00 00 77 00 00 00 08 00 00 01 74 00 00 00 76 00 00 00 00 00 01 01 79 00 00 00 c2 00 00 00 00 00 00 01 77 00 00 00 79 00 00 00 08 00 00 01 76 00 00 00 78 00 00 00 08 00 00 01 7a 00 00 00 7b 00 00 00 08 00 00 01 71 00 00 00 95 00 00 00 00 00 00 01 97 00 00 00 73 00 00 00 00 00 00 01 72 00 00 00 96 00 00 00 08 00 00 01 7c 00 00 00 89 00 00 00 08 00 00 01 8e 00 00 00 7c 00 00 00 08 00 00 01 89 00 00 00 8a 00 00 00 00 00 00 01 90 00 00 00 7e 00 00 00 00 00 00 01 8d 00 00 00 90 00 00 00 08 00 00 01 8c 00 00 00 8f 00 00 00 08 00 00 01 78 00 00 00 7a 00 00 00 00 00 00 01 91 00 00 00 7f 00 00 00 08 00 00 01 8f 00 00 00 81 00 00 00 00 00 00 01 6f 00 00 00 74 00 00 00 00 00 00 01 80 00 00 00 92 00 00 00 08 00 00 01 99 00 00 00 98 00 00 00 00 00 00 01 82 00 00 00 94 00 00 00 00 00 00 01 6b 00 00 00 83 00 00 00 00 00 00 01 83 00 00 00 84 00 00 00 00 00 00 01 84 00 00 00 6b 00 00 00 08 00 00 01 6c 00 00 00 85 00 00 00 00 00 00 01 85 00 00 00 86 00 00 00 08 00 00 01 86 00 00 00 6c 00 00 00 08 00 00 01 87 00 00 00 6d 00 00 00 00 00 00 01 88 00 00 00 6e 00 00 00 08 00 00 01 95 00 00 00 89 00 00 00 00 00 00 01 8a 00 00 00 97 00 00 00 08 00 00 01 7c 00 00 00 8b 00 00 00 08 00 00 01 8b 00 00 00 8c 00 00 00 08 00 00 01 8c 00 00 00 7c 00 00 00 00 00 00 01 7d 00 00 00 8d 00 00 00 00 00 00 01 8d 00 00 00 8e 00 00 00 00 00 00 01 8e 00 00 00 7d 00 00 00 08 00 00 01 8f 00 00 00 7e 00 00 00 00 00 00 01 90 00 00 00 7f 00 00 00 00 00 00 01 91 00 00 00 80 00 00 00 08 00 00 01 92 00 00 00 81 00 00 00 00 00 00 01 85 00 00 00 83 00 00 00 00 00 00 01 87 00 00 00 85 00 00 00 00 00 00 01 88 00 00 00 84 00 00 00 00 00 00 01 6e 00 00 00 80 00 00 00 08 00 00 01 92 00 00 00 87 00 00 00 08 00 00 01 8d 00 00 00 8b 00 00 00 00 00 00 01 8a 00 00 00 8e 00 00 00 00 00 00 01 7d 00 00 00 7f 00 00 00 08 00 00 01 8b 00 00 00 7e 00 00 00 00 00 00 01 80 00 00 00 90 00 00 00 00 00 00 01 7e 00 00 00 92 00 00 00 00 00 00 01 69 00 00 00 93 00 00 00 00 00 00 01 94 00 00 00 6b 00 00 00 08 00 00 01 8c 00 00 00 95 00 00 00 00 00 00 01 96 00 00 00 79 00 00 00 00 00 00 01 97 00 00 00 7d 00 00 00 08 00 00 01 98 00 00 00 6c 00 00 00 00 00 00 01 86 00 00 00 99 00 00 00 08 00 01 01 6a 00 00 00 c3 00 00 00 08 00 01 01 7b 00 00 00 c4 00 00 00 08 00 01 01 7a 00 00 00 c5 00 00 00 00 00 01 01 70 00 00 00 c6 00 00 00 00 00 00 01 a0 00 00 00 9f 00 00 00 00 00 00 01 9f 00 00 00 9a 00 00 00 00 00 00 01 9a 00 00 00 9b 00 00 00 00 00 00 01 9b 00 00 00 a0 00 00 00 00 00 00 01 a1 00 00 00 a0 00 00 00 00 00 00 01 9b 00 00 00 9c 00 00 00 00 00 00 01 9c 00 00 00 a1 00 00 00 00 00 00 01 a2 00 00 00 a1 00 00 00 00 00 00 01 9c 00 00 00 9d 00 00 00 00 00 00 01 9d 00 00 00 a2 00 00 00 08 00 00 01 a3 00 00 00 a2 00 00 00 08 00 00 01 9d 00 00 00 9e 00 00 00 08 00 00 01 9e 00 00 00 a3 00 00 00 08 00 00 01 9f 00 00 00 a3 00 00 00 08 00 00 01 9e 00 00 00 9a 00 00 00 00 00 00 01 a5 00 00 00 a4 00 00 00 00 00 00 01 a4 00 00 00 9f 00 00 00 00 00 00 01 a0 00 00 00 a5 00 00 00 00 00 00 01 a6 00 00 00 a5 00 00 00 00 00 00 01 a1 00 00 00 a6 00 00 00 00 00 00 01 a7 00 00 00 a6 00 00 00 00 00 00 01 a2 00 00 00 a7 00 00 00 08 00 00 01 a8 00 00 00 a7 00 00 00 08 00 00 01 a3 00 00 00 a8 00 00 00 08 00 00 01 a4 00 00 00 a8 00 00 00 00 00 00 01 aa 00 00 00 a9 00 00 00 00 00 00 01 a9 00 00 00 a4 00 00 00 00 00 00 01 a5 00 00 00 aa 00 00 00 00 00 00 01 ab 00 00 00 aa 00 00 00 00 00 00 01 a6 00 00 00 ab 00 00 00 00 00 00 01 ac 00 00 00 ab 00 00 00 00 00 00 01 a7 00 00 00 ac 00 00 00 08 00 00 01 ad 00 00 00 ac 00 00 00 08 00 00 01 a8 00 00 00 ad 00 00 00 08 00 00 01 a9 00 00 00 ad 00 00 00 00 00 00 01 ae 00 00 00 af 00 00 00 00 00 00 01 af 00 00 00 b0 00 00 00 08 00 00 01 b0 00 00 00 b1 00 00 00 08 00 00 01 b1 00 00 00 b2 00 00 00 08 00 00 01 b2 00 00 00 ae 00 00 00 00 00 00 01 b4 00 00 00 b3 00 00 00 00 00 00 01 b3 00 00 00 ae 00 00 00 00 00 00 01 af 00 00 00 b4 00 00 00 00 00 00 01 b5 00 00 00 b4 00 00 00 00 00 00 01 b0 00 00 00 b5 00 00 00 08 00 00 01 b6 00 00 00 b5 00 00 00 08 00 00 01 b1 00 00 00 b6 00 00 00 08 00 00 01 b7 00 00 00 b6 00 00 00 08 00 00 01 b2 00 00 00 b7 00 00 00 08 00 00 01 b3 00 00 00 b7 00 00 00 00 00 00 01 b9 00 00 00 b8 00 00 00 00 00 00 01 b8 00 00 00 b3 00 00 00 00 00 00 01 b4 00 00 00 b9 00 00 00 00 00 00 01 ba 00 00 00 b9 00 00 00 00 00 00 01 b5 00 00 00 ba 00 00 00 00 00 00 01 bb 00 00 00 ba 00 00 00 08 00 00 01 b6 00 00 00 bb 00 00 00 08 00 00 01 bc 00 00 00 bb 00 00 00 08 00 00 01 b7 00 00 00 bc 00 00 00 08 00 00 01 b8 00 00 00 bc 00 00 00 00 00 00 01 9a 00 00 00 b8 00 00 00 00 00 00 01 b9 00 00 00 9b 00 00 00 00 00 00 01 ba 00 00 00 9c 00 00 00 00 00 00 01 bb 00 00 00 9d 00 00 00 08 00 00 01 bc 00 00 00 9e 00 00 00 08 00 01 01 bd 00 00 00 65 00 00 00 00 00 01 01 be 00 00 00 67 00 00 00 00 00 01 01 bf 00 00 00 69 00 00 00 00 00 01 01 c0 00 00 00 75 00 00 00 08 00 01 01 c1 00 00 00 76 00 00 00 08 00 01 01 c2 00 00 00 78 00 00 00 00 00 01 01 c3 00 00 00 93 00 00 00 00 00 01 01 c4 00 00 00 72 00 00 00 00 00 01 01 c5 00 00 00 96 00 00 00 00 00 01 01 c6 00 00 00 6f 00 00 00 00 00 00 01 be 00 00 00 bd 00 00 00 00 00 00 01 bf 00 00 00 be 00 00 00 00 00 00 01 c0 00 00 00 c1 00 00 00 00 00 00 01 c1 00 00 00 c2 00 00 00 00 00 00 01 bf 00 00 00 c3 00 00 00 00 00 00 01 c3 00 00 00 c4 00 00 00 00 00 00 01 c4 00 00 00 c5 00 00 00 00 00 00 01 c5 00 00 00 c2 00 00 00 00 00 00 01 74 00 00 00 75 00 00 00 08 00 00 01 65 00 00 00 64 00 00 00 } + 5 0x011a: (StorageRaw) { + Size: 7042 + String: ....................-...1............................./.......1.............................0.../...1.............................1...0...1.............................-...1...1.....................................9.......................................9.......................................9.......................................9.......................................9................................... ...1.....................................1............................. ...!...1.............................".......1.............................!..."...1............................."...!... ...1.............................$...........#...1.....................%...........$...1.....................&...........%...1.....................'...........&...1.....................#...........'...1.....................................9.......................................9.......................................9.......................................9.......................................9.......................................9.......................................9.......................................9.......................................9.......................................9...............................)...(...1.............................*...)...1.............................+...*...1.............................,...+...1.............................(...,...1.....................)...*...+...,...(...1.................................=...O...-...1...................../...>...=.......1.....................0...?...>.../...1.....................1...@...?...0...1.....................-...O...@...1...1.....................C...........<...1.....................D...........C...1.....................E...........D...1.....................F...........E...1.....................<...........F...1.....................[...Z...].................`..._...[.................c..._...b.................M...\...a...K...1.....................]...Z...\.................=...7...;...O...1.....................>...8...7...=...1.....................?...9...8...>...1.....................@...:...9...?...1.....................O...;...:...@...1.....................<...2...3...C...1.....................C...3...4...D...1.....................D...4...5...E...1.....................E...5...6...F...1.....................F...6...2...<...1.....................H...3...2...A...1.....................B...;...7...G...1.....................J...4...3...H...1.....................G...7...8...I...1.....................L...5...4...J...1.....................I...8...9...K...1.....................N...6...5...L...1.....................K...9...:...M...1.....................A...2...6...N...1.....................M...:...;...B...1.....................Q...$...#...P...1.....................R...%...$...Q...1.....................S...&...%...R...1.....................T...'...&...S...1.....................P...#...'...T...1.........................S...V.........................U.........................Y.....................Q...X.....................R...W.................S.......U.....................T...U.................U...T...S.................S...R...V.................R.......V.................V.........................R...Q...W.................Q.......W.................W.................................X.................Q...P...X.................X...P.........................P...Y.................P...T...Y.................Y...T.....................[...H...A...^...1.....................L...J..._...c...1.....................^...A...N...\...1.....................\...M...B...]...1.....................]...B...G...[...1.....................\...Z...^.................^...Z...[................._...J...H...[...1.....................[...G...I...`...1.....................\...N...L...c...1.....................\...c...a................._...`...b.................`...a...b.................b...a...c.................`...I...K...a...1.....................f...........e...1.....................h...........f...1.............................k....... .................n...........1..... ...............................s...0.........................l.......q.......m...1.................................n...........1..... ...................j...h...f...e...o...1.....................................p...d...g...i.......r...1.....................................v...t...........1.....................x...v...........1.................................|...!.................~...............1..... ...................s...............0.....................................q.......1.....................................~.......1..... ...................o...t...v...x...z...1.....................................p...r.......y...w...u...0.................................k.....................l.........................|.......................................................k.......0.............................k...0.........................l.......1.....................m...........l...1.....................n...............0.....................n...........0.............................m...1.....................|...............1.................................|...1.....................................0.................................0.........................~.......1.....................................0.....................~...........1.........................i...........1.....................r...............1.........................r...........1.....................y...............1.....................o...e...d...p.......1.............................t...u.....................................0.................................0.................................0.................................1.....................................1.....................................0.................................0.................................0.................................1.....................................1.....................................0.................................0.................................0.................................1.....................................1.....................................0.................................0.................................1.....................................1.....................................1.....................................0.................................0.................................1.....................................1.....................................1.....................................0.................................0.................................0.................................1.....................................1.........................g...d.......1.........................i...g.......1.........................u...w.......1.........................w...y.......1.........................h...j.......1.........................j...........1.............................z.......1.........................z...x.......1.....................t...o.......p...u...1.............................e.......d............. + Hex: c2 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 2e 00 00 00 2d 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 01 00 00 00 02 00 00 00 2f 00 00 00 2e 00 00 00 31 00 04 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 02 00 00 00 03 00 00 00 30 00 00 00 2f 00 00 00 31 00 04 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 31 00 00 00 30 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 00 00 00 00 2d 00 00 00 31 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 14 00 00 00 13 00 00 00 19 00 00 00 18 00 00 00 39 00 0c 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 13 00 00 00 15 00 00 00 1a 00 00 00 19 00 00 00 39 00 04 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 15 00 00 00 16 00 00 00 1b 00 00 00 1a 00 00 00 39 00 04 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 16 00 00 00 17 00 00 00 1c 00 00 00 1b 00 00 00 39 00 0c 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 17 00 00 00 14 00 00 00 18 00 00 00 1c 00 00 00 39 00 0c 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 0b 00 00 00 0a 00 00 00 1f 00 00 00 20 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 0a 00 00 00 09 00 00 00 1e 00 00 00 1f 00 00 00 31 00 0c 00 00 01 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 0c 00 00 00 0b 00 00 00 20 00 00 00 21 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 09 00 00 00 0d 00 00 00 22 00 00 00 1e 00 00 00 31 00 0c 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 0d 00 00 00 0c 00 00 00 21 00 00 00 22 00 00 00 31 00 0c 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 05 00 00 00 1f 00 00 00 1e 00 00 00 22 00 00 00 21 00 00 00 20 00 00 00 31 00 0c 00 00 00 08 00 00 00 02 00 00 00 04 00 00 00 01 00 00 00 04 00 00 00 04 00 00 00 24 00 00 00 0f 00 00 00 0e 00 00 00 23 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 25 00 00 00 10 00 00 00 0f 00 00 00 24 00 00 00 31 00 04 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 26 00 00 00 11 00 00 00 10 00 00 00 25 00 00 00 31 00 04 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 27 00 00 00 12 00 00 00 11 00 00 00 26 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 23 00 00 00 0e 00 00 00 12 00 00 00 27 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 0e 00 00 00 0f 00 00 00 13 00 00 00 14 00 00 00 39 00 0c 00 00 00 0a 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 0f 00 00 00 10 00 00 00 15 00 00 00 13 00 00 00 39 00 04 00 00 00 0a 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 10 00 00 00 11 00 00 00 16 00 00 00 15 00 00 00 39 00 04 00 00 00 0a 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 11 00 00 00 12 00 00 00 17 00 00 00 16 00 00 00 39 00 04 00 00 00 0a 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 12 00 00 00 0e 00 00 00 14 00 00 00 17 00 00 00 39 00 0c 00 00 00 0a 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 1c 00 00 00 18 00 00 00 39 00 0c 00 00 00 0a 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 1b 00 00 00 1c 00 00 00 39 00 0c 00 00 00 0a 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 03 00 00 00 02 00 00 00 1a 00 00 00 1b 00 00 00 39 00 04 00 00 00 0a 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 02 00 00 00 01 00 00 00 19 00 00 00 1a 00 00 00 39 00 04 00 00 00 0a 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 18 00 00 00 19 00 00 00 39 00 0c 00 00 00 0a 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 29 00 00 00 28 00 00 00 31 00 0c 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 06 00 00 00 07 00 00 00 2a 00 00 00 29 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 07 00 00 00 08 00 00 00 2b 00 00 00 2a 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 1d 00 00 00 2c 00 00 00 2b 00 00 00 31 00 0c 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 1d 00 00 00 05 00 00 00 28 00 00 00 2c 00 00 00 31 00 0c 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 05 00 00 00 29 00 00 00 2a 00 00 00 2b 00 00 00 2c 00 00 00 28 00 00 00 31 00 04 00 00 00 08 00 00 00 02 00 00 00 04 00 00 00 01 00 00 00 04 00 00 00 04 00 00 00 2e 00 00 00 3d 00 00 00 4f 00 00 00 2d 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 2f 00 00 00 3e 00 00 00 3d 00 00 00 2e 00 00 00 31 00 04 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 30 00 00 00 3f 00 00 00 3e 00 00 00 2f 00 00 00 31 00 04 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 31 00 00 00 40 00 00 00 3f 00 00 00 30 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 2d 00 00 00 4f 00 00 00 40 00 00 00 31 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 43 00 00 00 06 00 00 00 05 00 00 00 3c 00 00 00 31 00 0c 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 44 00 00 00 07 00 00 00 06 00 00 00 43 00 00 00 31 00 04 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 45 00 00 00 08 00 00 00 07 00 00 00 44 00 00 00 31 00 04 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 46 00 00 00 1d 00 00 00 08 00 00 00 45 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 3c 00 00 00 05 00 00 00 1d 00 00 00 46 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 03 00 00 00 5b 00 00 00 5a 00 00 00 5d 00 00 00 11 00 0c 00 00 00 04 00 00 00 03 00 00 00 60 00 00 00 5f 00 00 00 5b 00 00 00 11 00 04 00 00 00 04 00 00 00 03 00 00 00 63 00 00 00 5f 00 00 00 62 00 00 00 11 00 04 00 00 00 04 00 00 00 04 00 00 00 4d 00 00 00 5c 00 00 00 61 00 00 00 4b 00 00 00 31 00 0c 00 00 00 04 00 00 00 01 00 00 00 03 00 00 00 03 00 00 00 5d 00 00 00 5a 00 00 00 5c 00 00 00 11 00 0c 00 00 00 04 00 00 00 04 00 00 00 3d 00 00 00 37 00 00 00 3b 00 00 00 4f 00 00 00 31 00 0c 00 00 00 04 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 3e 00 00 00 38 00 00 00 37 00 00 00 3d 00 00 00 31 00 04 00 00 00 04 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 3f 00 00 00 39 00 00 00 38 00 00 00 3e 00 00 00 31 00 04 00 00 00 04 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 40 00 00 00 3a 00 00 00 39 00 00 00 3f 00 00 00 31 00 0c 00 00 00 04 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 4f 00 00 00 3b 00 00 00 3a 00 00 00 40 00 00 00 31 00 0c 00 00 00 04 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 3c 00 00 00 32 00 00 00 33 00 00 00 43 00 00 00 31 00 0c 00 00 00 04 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 43 00 00 00 33 00 00 00 34 00 00 00 44 00 00 00 31 00 04 00 00 00 04 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 44 00 00 00 34 00 00 00 35 00 00 00 45 00 00 00 31 00 04 00 00 00 04 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 45 00 00 00 35 00 00 00 36 00 00 00 46 00 00 00 31 00 0c 00 00 00 04 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 46 00 00 00 36 00 00 00 32 00 00 00 3c 00 00 00 31 00 0c 00 00 00 04 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 48 00 00 00 33 00 00 00 32 00 00 00 41 00 00 00 31 00 0c 00 00 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 42 00 00 00 3b 00 00 00 37 00 00 00 47 00 00 00 31 00 0c 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 4a 00 00 00 34 00 00 00 33 00 00 00 48 00 00 00 31 00 04 00 00 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 47 00 00 00 37 00 00 00 38 00 00 00 49 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 4c 00 00 00 35 00 00 00 34 00 00 00 4a 00 00 00 31 00 04 00 00 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 49 00 00 00 38 00 00 00 39 00 00 00 4b 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 4e 00 00 00 36 00 00 00 35 00 00 00 4c 00 00 00 31 00 0c 00 00 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 4b 00 00 00 39 00 00 00 3a 00 00 00 4d 00 00 00 31 00 0c 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 41 00 00 00 32 00 00 00 36 00 00 00 4e 00 00 00 31 00 0c 00 00 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 4d 00 00 00 3a 00 00 00 3b 00 00 00 42 00 00 00 31 00 0c 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 51 00 00 00 24 00 00 00 23 00 00 00 50 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 52 00 00 00 25 00 00 00 24 00 00 00 51 00 00 00 31 00 04 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 53 00 00 00 26 00 00 00 25 00 00 00 52 00 00 00 31 00 04 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 54 00 00 00 27 00 00 00 26 00 00 00 53 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 50 00 00 00 23 00 00 00 27 00 00 00 54 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 03 00 00 00 0c 00 00 00 53 00 00 00 56 00 00 00 11 00 04 00 00 00 08 00 00 00 03 00 00 00 0c 00 00 00 0d 00 00 00 55 00 00 00 11 00 0c 00 00 00 08 00 00 00 03 00 00 00 0d 00 00 00 09 00 00 00 59 00 00 00 11 00 0c 00 00 00 08 00 00 00 03 00 00 00 0a 00 00 00 51 00 00 00 58 00 00 00 11 00 04 00 00 00 08 00 00 00 03 00 00 00 0b 00 00 00 52 00 00 00 57 00 00 00 11 00 04 00 00 00 08 00 00 00 03 00 00 00 53 00 00 00 0c 00 00 00 55 00 00 00 11 00 04 00 00 00 08 00 00 00 03 00 00 00 0d 00 00 00 54 00 00 00 55 00 00 00 11 00 0c 00 00 00 08 00 00 00 03 00 00 00 55 00 00 00 54 00 00 00 53 00 00 00 11 00 0c 00 00 00 08 00 00 00 03 00 00 00 53 00 00 00 52 00 00 00 56 00 00 00 11 00 04 00 00 00 08 00 00 00 03 00 00 00 52 00 00 00 0b 00 00 00 56 00 00 00 11 00 04 00 00 00 08 00 00 00 03 00 00 00 56 00 00 00 0b 00 00 00 0c 00 00 00 11 00 04 00 00 00 08 00 00 00 03 00 00 00 52 00 00 00 51 00 00 00 57 00 00 00 11 00 04 00 00 00 08 00 00 00 03 00 00 00 51 00 00 00 0a 00 00 00 57 00 00 00 11 00 04 00 00 00 08 00 00 00 03 00 00 00 57 00 00 00 0a 00 00 00 0b 00 00 00 11 00 04 00 00 00 08 00 00 00 03 00 00 00 09 00 00 00 0a 00 00 00 58 00 00 00 11 00 0c 00 00 00 08 00 00 00 03 00 00 00 51 00 00 00 50 00 00 00 58 00 00 00 11 00 0c 00 00 00 08 00 00 00 03 00 00 00 58 00 00 00 50 00 00 00 09 00 00 00 11 00 0c 00 00 00 08 00 00 00 03 00 00 00 09 00 00 00 50 00 00 00 59 00 00 00 11 00 0c 00 00 00 08 00 00 00 03 00 00 00 50 00 00 00 54 00 00 00 59 00 00 00 11 00 0c 00 00 00 08 00 00 00 03 00 00 00 59 00 00 00 54 00 00 00 0d 00 00 00 11 00 0c 00 00 00 08 00 00 00 04 00 00 00 5b 00 00 00 48 00 00 00 41 00 00 00 5e 00 00 00 31 00 0c 00 00 00 04 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 4c 00 00 00 4a 00 00 00 5f 00 00 00 63 00 00 00 31 00 04 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 5e 00 00 00 41 00 00 00 4e 00 00 00 5c 00 00 00 31 00 0c 00 00 00 04 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 5c 00 00 00 4d 00 00 00 42 00 00 00 5d 00 00 00 31 00 0c 00 00 00 04 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 5d 00 00 00 42 00 00 00 47 00 00 00 5b 00 00 00 31 00 0c 00 00 00 04 00 00 00 03 00 00 00 01 00 00 00 03 00 00 00 5c 00 00 00 5a 00 00 00 5e 00 00 00 11 00 0c 00 00 00 04 00 00 00 03 00 00 00 5e 00 00 00 5a 00 00 00 5b 00 00 00 11 00 0c 00 00 00 04 00 00 00 04 00 00 00 5f 00 00 00 4a 00 00 00 48 00 00 00 5b 00 00 00 31 00 04 00 00 00 04 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 5b 00 00 00 47 00 00 00 49 00 00 00 60 00 00 00 31 00 04 00 00 00 04 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 5c 00 00 00 4e 00 00 00 4c 00 00 00 63 00 00 00 31 00 0c 00 00 00 04 00 00 00 01 00 00 00 03 00 00 00 03 00 00 00 5c 00 00 00 63 00 00 00 61 00 00 00 11 00 0c 00 00 00 04 00 00 00 03 00 00 00 5f 00 00 00 60 00 00 00 62 00 00 00 11 00 04 00 00 00 04 00 00 00 03 00 00 00 60 00 00 00 61 00 00 00 62 00 00 00 11 00 04 00 00 00 04 00 00 00 03 00 00 00 62 00 00 00 61 00 00 00 63 00 00 00 11 00 04 00 00 00 04 00 00 00 04 00 00 00 60 00 00 00 49 00 00 00 4b 00 00 00 61 00 00 00 31 00 04 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 66 00 00 00 be 00 00 00 bd 00 00 00 65 00 00 00 31 00 08 00 01 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 68 00 00 00 bf 00 00 00 be 00 00 00 66 00 00 00 31 00 08 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 99 00 00 00 86 00 00 00 6b 00 00 00 94 00 00 00 20 00 00 00 00 00 02 00 00 00 04 00 00 00 87 00 00 00 6e 00 00 00 83 00 00 00 85 00 00 00 31 00 00 00 00 02 20 00 00 00 00 00 00 00 02 00 00 00 05 00 00 00 82 00 00 00 84 00 00 00 88 00 00 00 91 00 00 00 73 00 00 00 30 00 01 00 00 00 02 00 00 00 04 00 00 00 01 00 00 00 04 00 00 00 05 00 00 00 6c 00 00 00 98 00 00 00 71 00 00 00 81 00 00 00 6d 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 02 00 00 00 04 00 00 00 04 00 00 00 80 00 00 00 6e 00 00 00 87 00 00 00 92 00 00 00 31 00 08 00 00 02 20 00 00 00 01 00 00 00 03 00 00 00 06 00 00 00 7b 00 00 00 6a 00 00 00 68 00 00 00 66 00 00 00 65 00 00 00 6f 00 00 00 31 00 08 00 01 00 01 00 00 00 00 00 00 00 02 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 06 00 00 00 70 00 00 00 64 00 00 00 67 00 00 00 69 00 00 00 93 00 00 00 72 00 00 00 31 00 00 00 01 00 01 00 00 00 02 00 00 00 04 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00 76 00 00 00 74 00 00 00 c0 00 00 00 c1 00 00 00 31 00 08 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 78 00 00 00 76 00 00 00 c1 00 00 00 c2 00 00 00 31 00 08 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 89 00 00 00 8a 00 00 00 8e 00 00 00 7c 00 00 00 21 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 7e 00 00 00 8b 00 00 00 8d 00 00 00 90 00 00 00 31 00 08 00 00 02 20 00 00 00 00 00 00 00 02 00 00 00 05 00 00 00 97 00 00 00 73 00 00 00 91 00 00 00 7f 00 00 00 7d 00 00 00 30 00 01 00 00 00 01 00 00 00 03 00 00 00 01 00 00 00 04 00 00 00 05 00 00 00 8c 00 00 00 8f 00 00 00 81 00 00 00 71 00 00 00 95 00 00 00 31 00 08 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00 80 00 00 00 92 00 00 00 7e 00 00 00 90 00 00 00 31 00 00 00 00 02 20 00 00 00 03 00 00 00 01 00 00 00 06 00 00 00 7b 00 00 00 6f 00 00 00 74 00 00 00 76 00 00 00 78 00 00 00 7a 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 06 00 00 00 70 00 00 00 72 00 00 00 96 00 00 00 79 00 00 00 77 00 00 00 75 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 03 00 00 00 6b 00 00 00 83 00 00 00 84 00 00 00 10 00 10 00 00 00 03 00 00 00 6c 00 00 00 85 00 00 00 86 00 00 00 11 00 08 00 00 00 10 00 00 00 03 00 00 00 7c 00 00 00 8b 00 00 00 8c 00 00 00 11 00 08 00 00 00 10 00 00 00 03 00 00 00 7d 00 00 00 8d 00 00 00 8e 00 00 00 10 00 10 00 00 00 04 00 00 00 82 00 00 00 94 00 00 00 6b 00 00 00 84 00 00 00 30 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 86 00 00 00 85 00 00 00 83 00 00 00 6b 00 00 00 30 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 99 00 00 00 98 00 00 00 6c 00 00 00 86 00 00 00 31 00 08 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 6d 00 00 00 87 00 00 00 85 00 00 00 6c 00 00 00 31 00 08 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 6e 00 00 00 88 00 00 00 84 00 00 00 83 00 00 00 30 00 02 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 88 00 00 00 6e 00 00 00 80 00 00 00 91 00 00 00 30 00 02 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 81 00 00 00 92 00 00 00 87 00 00 00 6d 00 00 00 31 00 08 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 7c 00 00 00 8c 00 00 00 95 00 00 00 89 00 00 00 31 00 08 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 8e 00 00 00 8d 00 00 00 8b 00 00 00 7c 00 00 00 31 00 08 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 7d 00 00 00 8e 00 00 00 8a 00 00 00 97 00 00 00 30 00 04 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 8d 00 00 00 7d 00 00 00 7f 00 00 00 90 00 00 00 30 00 02 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 8c 00 00 00 8b 00 00 00 7e 00 00 00 8f 00 00 00 31 00 08 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 91 00 00 00 80 00 00 00 90 00 00 00 7f 00 00 00 30 00 02 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 8f 00 00 00 7e 00 00 00 92 00 00 00 81 00 00 00 31 00 08 00 00 00 02 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 93 00 00 00 69 00 00 00 bf 00 00 00 c3 00 00 00 31 00 00 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 72 00 00 00 93 00 00 00 c3 00 00 00 c4 00 00 00 31 00 00 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 96 00 00 00 72 00 00 00 c4 00 00 00 c5 00 00 00 31 00 00 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 79 00 00 00 96 00 00 00 c5 00 00 00 c2 00 00 00 31 00 00 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 05 00 00 00 6f 00 00 00 65 00 00 00 64 00 00 00 70 00 00 00 c6 00 00 00 31 00 08 00 01 04 02 00 00 00 02 00 00 00 04 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 74 00 00 00 75 00 00 00 c0 00 00 00 11 00 00 00 00 04 04 00 00 00 04 00 00 00 9a 00 00 00 9b 00 00 00 a0 00 00 00 9f 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 9b 00 00 00 9c 00 00 00 a1 00 00 00 a0 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 9c 00 00 00 9d 00 00 00 a2 00 00 00 a1 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 9d 00 00 00 9e 00 00 00 a3 00 00 00 a2 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 9e 00 00 00 9a 00 00 00 9f 00 00 00 a3 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 9f 00 00 00 a0 00 00 00 a5 00 00 00 a4 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 a0 00 00 00 a1 00 00 00 a6 00 00 00 a5 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 a1 00 00 00 a2 00 00 00 a7 00 00 00 a6 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 a2 00 00 00 a3 00 00 00 a8 00 00 00 a7 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 a3 00 00 00 9f 00 00 00 a4 00 00 00 a8 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 a4 00 00 00 a5 00 00 00 aa 00 00 00 a9 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 a5 00 00 00 a6 00 00 00 ab 00 00 00 aa 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 a6 00 00 00 a7 00 00 00 ac 00 00 00 ab 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 a7 00 00 00 a8 00 00 00 ad 00 00 00 ac 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 a8 00 00 00 a4 00 00 00 a9 00 00 00 ad 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 ae 00 00 00 af 00 00 00 b4 00 00 00 b3 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 af 00 00 00 b0 00 00 00 b5 00 00 00 b4 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 b0 00 00 00 b1 00 00 00 b6 00 00 00 b5 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 b1 00 00 00 b2 00 00 00 b7 00 00 00 b6 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 b2 00 00 00 ae 00 00 00 b3 00 00 00 b7 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 b3 00 00 00 b4 00 00 00 b9 00 00 00 b8 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 b4 00 00 00 b5 00 00 00 ba 00 00 00 b9 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 b5 00 00 00 b6 00 00 00 bb 00 00 00 ba 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 b6 00 00 00 b7 00 00 00 bc 00 00 00 bb 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 b7 00 00 00 b3 00 00 00 b8 00 00 00 bc 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 b8 00 00 00 b9 00 00 00 9b 00 00 00 9a 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 b9 00 00 00 ba 00 00 00 9c 00 00 00 9b 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 ba 00 00 00 bb 00 00 00 9d 00 00 00 9c 00 00 00 30 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 bb 00 00 00 bc 00 00 00 9e 00 00 00 9d 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 bc 00 00 00 b8 00 00 00 9a 00 00 00 9e 00 00 00 31 00 08 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 be 00 00 00 67 00 00 00 64 00 00 00 bd 00 00 00 31 00 00 00 01 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 bf 00 00 00 69 00 00 00 67 00 00 00 be 00 00 00 31 00 00 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 c0 00 00 00 75 00 00 00 77 00 00 00 c1 00 00 00 31 00 00 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 c1 00 00 00 77 00 00 00 79 00 00 00 c2 00 00 00 31 00 00 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 bf 00 00 00 68 00 00 00 6a 00 00 00 c3 00 00 00 31 00 08 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 c3 00 00 00 6a 00 00 00 7b 00 00 00 c4 00 00 00 31 00 08 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 c4 00 00 00 7b 00 00 00 7a 00 00 00 c5 00 00 00 31 00 08 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 c5 00 00 00 7a 00 00 00 78 00 00 00 c2 00 00 00 31 00 08 00 00 04 01 00 00 00 01 00 00 00 03 00 00 00 05 00 00 00 74 00 00 00 6f 00 00 00 c6 00 00 00 70 00 00 00 75 00 00 00 31 00 00 00 00 04 04 00 00 00 01 00 00 00 03 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 65 00 00 00 bd 00 00 00 64 00 00 00 11 00 08 00 00 04 02 00 00 00 } + 6 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 7 0x0120: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 8 0x0124: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 9 0x0128: (StorageRaw) { + Size: 3292 + String: .......=...=c|.<...>...=.y.<.M.>...?4..=q..=...?Pj.<..M>...=...<.3K>...?.O.<...>...=...<0..>...?I..<|A#=...=.n.<~..=...?A..=..*?j..>...<..*?.H.>...<...>.H.>...<...>j..>...<..*?Rc.>m..<...>Tc.>s..<..*?...>X..<...>...>d..<..*?...>...<...>...>...<9.X?..A>..;=.bW?.D.>..<=..[?...>Y..=n.^?....=..X?g..=..8=Y.]?.!.=...=..X?.lv>.DM=(Q]?..y>...=..W?.R.<..B=..\?A..<...=c..?.#.>...=c..?M`.=...l..=...>...>...<...>..H?.......>..H?....E..>'.^?....E..>'.^?.......>".0?.......>".0?......"?...?....c..>.5.?......"?..+?....c..?.~v>...=...>...=.........8?...>.....9=?.!.>....P.E?IR.>......E?6..>....c=!=.M.<.K.<...=.M.<+M.<...>.M....?....f..>>..?....$..?J..>....7..?...>......M>.M.<.s..M.<.R.<.X.=.[u?z.3=9..>. w?y.G=...>R0z?.x.=...=..z?.?.=X.M>..v?."J=..M>..y?v..=...>8.v?a7H=...>..z?...=.#)=.Vv?.2;=.Z(=.;.?...=.."?...>......"?.4.?....c..>.5.?......"?...?.....cf?..H?......U?'.^?......U?'.^?.....cf?..H?....9\c?".0?....9\c?".0?.....=K?...?.....PK?>..?.....I9?...>.....F9?J..>....0z.>.04?y..=[6.=.04?.b.=TcL>.14?0..=VY.>.04?.k.=R0$=.04?.v.=9..>*wp?..C=.V.=%wp?..0=..M>.wp?..E=c..>%wp?..C=T.(=5wp?C.8=...>.hS?..1=...=QXS?..P=...=..B?.l.=..L>>.C?..(=#bL>,.d?..;=[..>..c?.)==..g>QXS?.9K=..$=.f8?...=..&=.hS?.O(=...>#WC?..%=.L.>.f8?O>.=.*.>.Z6?Dg.<.\.=.Y6?...<.:L>.Z6?.A.JZ6?.*..jn?..!=..M>+kn?.n#=H..>.jn?..!=.P'=6in?R'.=...>0Al?!+A=.T.=;Al?..-=79.=.f8?.!.=.h.>.f8?L. =.nM>?Al?..B=..L>.f8?5..=m..>;Al?K.A=..(=*Al?..5=..3?...>v..=..3?.f.=t..=..3?X'B>.R.=..3?(uv>m.!=..3?.p.G~P=..C?*..>..O=..C?..g=L.F=T.C?.p.=2jB=..C?.a&>..N=x..=.Me?..$=......S.E?s..>......D?.i.>....h.......8?r..>.......>:5.>...<...>.#.=...<...>..B>J..<...>..v>f].<...>.`....>...<...>..F>.y.<...>..w>.y.<...>...<...<..*?...>...<...>...>......=.n....?A..=..W?DN.>..B=..\?...>...=c..?R..>...=...>.M.<.K.<...>.Vv?.2;=p..>.;.?...=$?.>.04?.v.=...>5wp?C.8=nK.>.f8?...=O..>.hS?.O(=...>(Y6?o..<4..>6in?R'.=y..>*Al?..5=..3?+ .>zG.=...>.x.>...<.g.>...?......"?+%.?.......>J..?......"?+%.?......E?...?......E?...?.......>J..?.....g.>...?.......>w..?.......>...?.......>w..?....f..>>..?....7..?...>....$..?J..>....gTF?J..?....gTF?J..?.....IK?w..?.....=K?...?.....IK?w..?.....PK?>..?.....F9?J..>.....I9?...>......"?.4.?......"?...>.....J..?......E?...?........?.......>J..?.....g.>...?....gTF?J..?....gTF?J..?.....n.>0..>....K.p>0..>....3.M>0..>......)>0..>.....0.>0..>.......=0..>.....n.>.o.>....K.p>.o.>....3.M>.o.>......)>.o.>.....0.>.o.>.......=.o.>.....n.>.t^>....K.p>.t^>....3.M>.t^>......)>.t^>.....0.>.t^>.......=.t^>.....n.>..&>....K.p>..&>....3.M>..&>......)>..&>.....0.>..&>.......=..&>.....n.>|C.>....I.p>|C.>....1.M>|C.>......)>vC.>.....0.>vC.>.......=vC.>.....n.>`..>....I.p>`..>....1.M>`..>......)>`..>.....0.>`..>.......=`..>.....n.>F..>....I.p>F..>....1.M>F..>......)>F..>.....0.>F..>.......=F..>.......>..F?....._.>(.J?....[ .>..`?.......>..W?....@..>&.0?.....L.>..-?....0tc?..G?....H.U?k.W?......V?U&a?......k?^.J?....2O_?.l1?....C.h?!Y+?.......>.z.?.......?Dc.?.... .!?o..?.... .!?...?....7wG?v..?....cmD?...?......!?.G&?......!?P..?.....s.>*A\?....f..>..H?.....g.>.;/?......V?`l\?......g?t\I?......c?.b.?.....D.>.o.?.... .!?z..?....M.E?.G.?......!?.**?.... + Hex: 12 01 00 00 99 0c c0 3d aa ce 04 3d 63 7c cb 3c 83 df 17 3e aa ce 04 3d 14 79 cf 3c 85 4d 19 3e 0f 82 0a 3f 34 fa 03 3d 71 12 c0 3d 0f 82 0a 3f 50 6a dc 3c 8f 8a 4d 3e aa ce 04 3d be 9c d9 3c a0 33 4b 3e 0f 82 0a 3f d9 4f fe 3c 0d be 80 3e aa ce 04 3d 90 f4 db 3c 30 f1 81 3e 0f 82 0a 3f 49 0e ff 3c 7c 41 23 3d aa ce 04 3d d7 6e d3 3c 7e a9 1f 3d 0f 82 0a 3f 41 0a 01 3d cb 83 2a 3f 6a f3 b7 3e 9a fc 94 3c cb 83 2a 3f ba 48 c4 3e c6 8d a0 3c de 18 b9 3e ba 48 c4 3e c2 8d a0 3c e1 18 b9 3e 6a f3 b7 3e 91 fc 94 3c cb 83 2a 3f 52 63 cf 3e 6d ae b1 3c de 18 b9 3e 54 63 cf 3e 73 ae b1 3c cb 83 2a 3f e6 ea d9 3e 58 ae b1 3c de 18 b9 3e e6 ea d9 3e 64 ae b1 3c cb 83 2a 3f 19 9e ab 3e c7 8d a0 3c e1 18 b9 3e 1b 9e ab 3e a1 8d a0 3c 39 ed 58 3f 83 e7 41 3e c2 7f 3b 3d 85 62 57 3f 1a 44 0b 3e d7 aa 3c 3d fc aa 5b 3f ae c9 09 3e 59 d9 0a 3d 6e 0c 5e 3f de 3c 44 3e 86 f5 00 3d c8 97 58 3f 67 84 aa 3d e9 92 38 3d 59 12 5d 3f d8 21 a7 3d b9 e9 00 3d b3 8b 58 3f 0d 6c 76 3e 09 44 4d 3d 28 51 5d 3f 94 f3 79 3e 97 f0 0e 3d e7 81 57 3f 7d 52 f9 3c bd db 42 3d da f0 5c 3f 41 18 ff 3c f2 09 07 3d 63 db 1b 3f 9c 23 0c 3e b0 1a 03 3d 63 db 1b 3f 4d 60 aa 3d e9 fc ff 3c 63 db 1b 3f f7 4f 42 3e 6c 80 05 3d fa 9c b8 3e 8d b6 12 3e 7b a0 9f 3c 1b 95 bb 3e 16 ce 48 3f 00 00 00 00 1b 95 bb 3e 16 ce 48 3f 00 00 00 00 45 a4 dc 3e 27 93 5e 3f 00 00 00 00 45 a4 dc 3e 27 93 5e 3f 00 00 00 00 b2 a3 c1 3e 22 1a 30 3f 00 00 00 00 b2 a3 c1 3e 22 1a 30 3f 00 00 00 00 0a 17 22 3f 99 13 0d 3f 00 00 00 00 63 e2 fb 3e 13 35 15 3f 00 00 00 00 0a 17 22 3f cd 0b 2b 3f 00 00 00 00 63 db 1b 3f 89 7e 76 3e cd 9a 0c 3d fb 9c b8 3e ee 8f ae 3d 04 7b 90 3c 63 db 1b 3f 53 33 f4 3c c5 8b 06 3d 1a ef 3c 3f 5e 8c cc 3e 00 00 00 00 17 c8 38 3f a1 90 da 3e 00 00 00 00 ae 39 3d 3f f0 21 e7 3e 00 00 00 00 50 10 45 3f 49 52 e3 3e 00 00 00 00 89 04 45 3f 36 e4 d2 3e 00 00 00 00 63 3d 21 3d ca 4d cd 3c e0 4b a4 3c 8d c9 bf 3d ca 4d cd 3c 2b 4d 9c 3c a2 a7 80 3e f8 4d cd 3c 52 c6 ac 3c 0a 17 22 3f ca 0b 2b 3f 00 00 00 00 14 f0 f3 3e a1 d6 02 3f 00 00 00 00 66 ca f3 3e 3e db 02 3f 00 00 00 00 24 ef 0b 3f 4a 07 f8 3e 00 00 00 00 37 ec 0b 3f f2 f9 f7 3e 00 00 00 00 ff e6 4d 3e f8 4d cd 3c e3 73 aa 3c 72 52 18 3e f8 4d cd 3c f4 52 a0 3c c2 58 c0 3d 95 5b 75 3f 7a e0 33 3d 39 9a 17 3e ce 20 77 3f 79 fc 47 3d 98 a8 17 3e 52 30 7a 3f d9 78 07 3d 1c e4 bd 3d 80 c7 7a 3f cf 3f 05 3d 58 95 4d 3e 01 f5 76 3f a0 22 4a 3d 9e a7 4d 3e 18 81 79 3f 76 a6 10 3d 89 be 80 3e 38 e6 76 3f 61 37 48 3d c2 0e 81 3e f8 06 7a 3f e4 f1 0a 3d ee 23 29 3d 8d 56 76 3f bc 32 3b 3d a1 5a 28 3d 9d 3b 7b 3f d2 a1 0b 3d e0 9a 22 3f f0 b9 fe 3e 00 00 00 00 e0 9a 22 3f a2 34 00 3f 00 00 00 00 63 e2 fb 3e 13 35 15 3f 00 00 00 00 0a 17 22 3f 99 13 0d 3f 00 00 00 00 84 63 66 3f 16 ce 48 3f 00 00 00 00 ef db 55 3f 27 93 5e 3f 00 00 00 00 ef db 55 3f 27 93 5e 3f 00 00 00 00 84 63 66 3f 16 ce 48 3f 00 00 00 00 39 5c 63 3f 22 1a 30 3f 00 00 00 00 39 5c 63 3f 22 1a 30 3f 00 00 00 00 b9 3d 4b 3f a1 d6 02 3f 00 00 00 00 8f 50 4b 3f 3e db 02 3f 00 00 00 00 88 49 39 3f f2 f9 f7 3e 00 00 00 00 9b 46 39 3f 4a 07 f8 3e 00 00 00 00 30 7a 18 3e f0 30 34 3f 79 0b 1e 3d 5b 36 c0 3d fc 30 34 3f e0 62 09 3d 54 63 4c 3e 01 31 34 3f 30 ea 1b 3d 56 59 81 3e fc 30 34 3f a9 6b 1b 3d 52 30 24 3d e9 30 34 3f cb 76 17 3d 39 ac 17 3e 2a 77 70 3f fb ce 43 3d bb 56 c0 3d 25 77 70 3f d7 af 30 3d e1 7d 4d 3e 1d 77 70 3f bf a2 45 3d 63 ca 80 3e 25 77 70 3f ec e3 43 3d 54 c7 28 3d 35 77 70 3f 43 05 38 3d 95 04 18 3e 90 68 53 3f 82 98 31 3d c7 11 c0 3d 51 58 53 3f dc 80 50 3d a9 8c c2 3d cb 00 42 3f 80 6c 0a 3d 17 09 4c 3e 3e 1a 43 3f 8c 0f 28 3d 23 62 4c 3e 2c d8 64 3f b0 91 3b 3d 5b 0c 81 3e 85 dd 63 3f c8 29 3d 3d b0 9d 67 3e 51 58 53 3f b9 39 4b 3d 94 92 24 3d f5 66 38 3f 03 bc 19 3d 9f c9 26 3d 90 68 53 3f 98 4f 28 3d d7 2e 81 3e 23 57 43 3f 90 94 25 3d fa 4c 81 3e e3 66 38 3f 4f 3e 1e 3d bc 2a 19 3e 93 5a 36 3f 44 67 fd 3c 06 5c c0 3d 86 59 36 3f fe 03 d4 3c 08 3a 4c 3e db 5a 36 3f d5 41 f9 3c 72 56 81 3e 4a 5a 36 3f 0c 2a f8 3c 5a 96 21 3d 28 59 36 3f 6f d7 ef 3c 5f 88 c0 3d d9 69 6e 3f 8b 90 0e 3d dd 1b 18 3e af 6a 6e 3f 9c c8 21 3d dc 88 4d 3e 2b 6b 6e 3f 14 6e 23 3d 48 aa 80 3e 9b 6a 6e 3f fe be 21 3d cf 50 27 3d 36 69 6e 3f 52 27 16 3d ff b7 17 3e 30 41 6c 3f 21 2b 41 3d f5 54 c0 3d 3b 41 6c 3f 02 f1 2d 3d 37 39 c0 3d e3 66 38 3f b2 21 0c 3d a8 68 18 3e ee 66 38 3f 4c ae 20 3d 13 6e 4d 3e 3f 41 6c 3f c9 b7 42 3d e5 7b 4c 3e de 66 38 3f 35 d3 1e 3d 6d d2 80 3e 3b 41 6c 3f 4b 0f 41 3d f2 82 28 3d 2a 41 6c 3f 10 be 35 3d 09 de 33 3f b3 bb 0b 3e 76 c3 15 3d 09 de 33 3f ae 66 aa 3d 74 ea 11 3d 0c de 33 3f 58 27 42 3e 85 52 16 3d 09 de 33 3f 28 75 76 3e 6d 88 21 3d 09 de 33 3f ef 70 f6 3c 7a 47 1a 3d bc 03 44 3f d3 54 5c 3e 47 7e 50 3d 90 90 43 3f 2a d3 88 3e be d0 4f 3d 9d b8 43 3f ac 05 67 3d 4c 9b 46 3d 54 c8 43 3f 09 70 e1 3d 32 6a 42 3d 03 cc 43 3f ed 61 26 3e 7f ee 4e 3d 78 92 c2 3d 98 4d 65 3f d0 04 24 3d d0 e7 3c 3f b3 a3 a1 3e 00 00 00 00 53 03 45 3f 73 ac a6 3e 00 00 00 00 ae a2 44 3f 09 69 b7 3e 00 00 00 00 68 b6 3c 3f 4c b8 bc 3e 00 00 00 00 e0 01 38 3f 72 7f af 3e 00 00 00 00 19 c4 bc 3e 3a 35 0d 3e 0a e6 b7 3c 18 c4 bc 3e 95 23 aa 3d d1 e4 b3 3c 19 c4 bc 3e 05 d5 42 3e 4a 08 c2 3c 19 c4 bc 3e f3 81 76 3e 66 5d c4 3c 18 c4 bc 3e e5 60 ed 3c 6e dd bb 3c a9 4b bd 3e ec 99 95 3e 92 b8 c3 3c fa 9c b8 3e d9 8b 46 3e ea 79 b5 3c fa 9c b8 3e c1 1a 77 3e ef 79 b5 3c fb 9c b8 3e 02 cb de 3c ac a0 9f 3c cb 83 2a 3f 80 05 e5 3e c7 8d a0 3c e2 18 b9 3e 80 05 e5 3e a1 8d a0 3c 4a 21 9b 3e aa ce 04 3d d7 6e d3 3c 4a ae 9a 3e 0f 82 0a 3f 41 0a 01 3d e7 81 57 3f 44 4e 96 3e be db 42 3d da f0 5c 3f a4 aa 96 3e f2 09 07 3d 63 db 1b 3f 52 fc 95 3e c5 8b 06 3d c6 e0 9a 3e ca 4d cd 3c e0 4b a4 3c 9a dd 9b 3e 8d 56 76 3f bc 32 3b 3d 70 c4 9b 3e 9d 3b 7b 3f d2 a1 0b 3d 24 3f 9b 3e e9 30 34 3f cb 76 17 3d 05 d2 9b 3e 35 77 70 3f 43 05 38 3d 6e 4b 9b 3e f5 66 38 3f 03 bc 19 3d 4f 92 9b 3e 90 68 53 3f 98 4f 28 3d e5 eb 9a 3e 28 59 36 3f 6f d7 ef 3c 34 a3 9b 3e 36 69 6e 3f 52 27 16 3d 79 c9 9b 3e 2a 41 6c 3f 10 be 35 3d 09 de 33 3f 2b 20 96 3e 7a 47 1a 3d f9 9c b8 3e 06 78 95 3e ac a0 9f 3c 89 67 ff 3e f6 fe 0a 3f 00 00 00 00 e0 9a 22 3f 2b 25 03 3f 00 00 00 00 b8 c2 fd 3e 4a 2e 0b 3f 00 00 00 00 e0 9a 22 3f 2b 25 03 3f 00 00 00 00 ff 81 45 3f f6 fe 0a 3f 00 00 00 00 ff 81 45 3f f6 fe 0a 3f 00 00 00 00 b8 c2 fd 3e 4a 2e 0b 3f 00 00 00 00 89 67 ff 3e f6 fe 0a 3f 00 00 00 00 c1 d7 f3 3e 77 d3 02 3f 00 00 00 00 14 f0 f3 3e a1 d6 02 3f 00 00 00 00 c1 d7 f3 3e 77 d3 02 3f 00 00 00 00 66 ca f3 3e 3e db 02 3f 00 00 00 00 37 ec 0b 3f f2 f9 f7 3e 00 00 00 00 24 ef 0b 3f 4a 07 f8 3e 00 00 00 00 67 54 46 3f 4a 2e 0b 3f 00 00 00 00 67 54 46 3f 4a 2e 0b 3f 00 00 00 00 e2 49 4b 3f 77 d3 02 3f 00 00 00 00 b9 3d 4b 3f a1 d6 02 3f 00 00 00 00 e2 49 4b 3f 77 d3 02 3f 00 00 00 00 8f 50 4b 3f 3e db 02 3f 00 00 00 00 9b 46 39 3f 4a 07 f8 3e 00 00 00 00 88 49 39 3f f2 f9 f7 3e 00 00 00 00 e0 9a 22 3f a2 34 00 3f 00 00 00 00 e0 9a 22 3f f0 b9 fe 3e 00 00 00 00 e1 3c 46 3f 13 35 15 3f 00 00 00 00 b8 c2 fd 3e 4a 2e 0b 3f 00 00 00 00 ff 81 45 3f f6 fe 0a 3f 00 00 00 00 e1 3c 46 3f 13 35 15 3f 00 00 00 00 ff 81 45 3f f6 fe 0a 3f 00 00 00 00 89 67 ff 3e f6 fe 0a 3f 00 00 00 00 b8 c2 fd 3e 4a 2e 0b 3f 00 00 00 00 89 67 ff 3e f6 fe 0a 3f 00 00 00 00 67 54 46 3f 4a 2e 0b 3f 00 00 00 00 67 54 46 3f 4a 2e 0b 3f 00 00 00 00 b9 6e 8a 3e 30 a4 a7 3e 00 00 00 00 4b f2 70 3e 30 a4 a7 3e 00 00 00 00 33 07 4d 3e 30 a4 a7 3e 00 00 00 00 17 1c 29 3e 30 a4 a7 3e 00 00 00 00 ff 30 05 3e 30 a4 a7 3e 00 00 00 00 b4 8b c2 3d 30 a4 a7 3e 00 00 00 00 b9 6e 8a 3e 1a 6f 8b 3e 00 00 00 00 4b f2 70 3e 1a 6f 8b 3e 00 00 00 00 33 07 4d 3e 1a 6f 8b 3e 00 00 00 00 17 1c 29 3e 1a 6f 8b 3e 00 00 00 00 ff 30 05 3e 1a 6f 8b 3e 00 00 00 00 b4 8b c2 3d 16 6f 8b 3e 00 00 00 00 b9 6e 8a 3e 08 74 5e 3e 00 00 00 00 4b f2 70 3e 08 74 5e 3e 00 00 00 00 33 07 4d 3e 08 74 5e 3e 00 00 00 00 17 1c 29 3e 00 74 5e 3e 00 00 00 00 ff 30 05 3e 00 74 5e 3e 00 00 00 00 b6 8b c2 3d 00 74 5e 3e 00 00 00 00 b9 6e 8a 3e d4 09 26 3e 00 00 00 00 4b f2 70 3e cc 09 26 3e 00 00 00 00 33 07 4d 3e cc 09 26 3e 00 00 00 00 17 1c 29 3e cc 09 26 3e 00 00 00 00 ff 30 05 3e cc 09 26 3e 00 00 00 00 b6 8b c2 3d cc 09 26 3e 00 00 00 00 b8 6e 8a 3e 7c 43 fc 3e 00 00 00 00 49 f2 70 3e 7c 43 fc 3e 00 00 00 00 31 07 4d 3e 7c 43 fc 3e 00 00 00 00 15 1c 29 3e 76 43 fc 3e 00 00 00 00 fd 30 05 3e 76 43 fc 3e 00 00 00 00 b2 8b c2 3d 76 43 fc 3e 00 00 00 00 b8 6e 8a 3e 60 0e e0 3e 00 00 00 00 49 f2 70 3e 60 0e e0 3e 00 00 00 00 31 07 4d 3e 60 0e e0 3e 00 00 00 00 15 1c 29 3e 60 0e e0 3e 00 00 00 00 fd 30 05 3e 60 0e e0 3e 00 00 00 00 b4 8b c2 3d 60 0e e0 3e 00 00 00 00 b8 6e 8a 3e 46 d9 c3 3e 00 00 00 00 49 f2 70 3e 46 d9 c3 3e 00 00 00 00 31 07 4d 3e 46 d9 c3 3e 00 00 00 00 15 1c 29 3e 46 d9 c3 3e 00 00 00 00 fd 30 05 3e 46 d9 c3 3e 00 00 00 00 b4 8b c2 3d 46 d9 c3 3e 00 00 00 00 f9 90 c1 3e 0c a9 46 3f 00 00 00 00 d2 5f b2 3e 28 b6 4a 3f 00 00 00 00 5b 20 dd 3e b2 a4 60 3f 00 00 00 00 a7 c6 db 3e a2 dd 57 3f 00 00 00 00 40 81 c8 3e 26 eb 30 3f 00 00 00 00 d3 4c b8 3e e5 8a 2d 3f 00 00 00 00 30 74 63 3f 8a d7 47 3f 00 00 00 00 48 81 55 3f 6b b2 57 3f 00 00 00 00 c5 af 56 3f 55 26 61 3f 00 00 00 00 d3 e4 6b 3f 5e e1 4a 3f 00 00 00 00 32 4f 5f 3f ca 6c 31 3f 00 00 00 00 43 16 68 3f 21 59 2b 3f 00 00 00 00 9e e4 fa 3e d2 7a 13 3f 00 00 00 00 90 d2 00 3f 44 63 19 3f 00 00 00 00 20 f3 21 3f 6f 8e 0a 3f 00 00 00 00 20 f3 21 3f 84 f8 10 3f 00 00 00 00 37 77 47 3f 76 fc 13 3f 00 00 00 00 63 6d 44 3f c2 91 1a 3f 00 00 00 00 1f ad 21 3f d0 47 26 3f 00 00 00 00 1f f3 21 3f 50 0d 2e 3f 00 00 00 00 81 73 dc 3e 2a 41 5c 3f 00 00 00 00 66 f8 b9 3e 9a af 48 3f 00 00 00 00 0a 67 c0 3e 06 3b 2f 3f 00 00 00 00 86 18 56 3f 60 6c 5c 3f 00 00 00 00 82 ac 67 3f 74 5c 49 3f 00 00 00 00 ba b2 63 3f f6 62 2e 3f 00 00 00 00 df 44 fe 3e 0b 6f 16 3f 00 00 00 00 20 f3 21 3f 7a c3 0d 3f 00 00 00 00 4d f2 45 3f 1c 47 17 3f 00 00 00 00 1f d0 21 3f 90 2a 2a 3f 00 00 00 00 } + 10 0x012b: (StorageRaw) { + Size: 3800 + String: ..................................................................................................................................................................................................................................................................................................................../...0...1...2........................... ...................+........... ...................+...................-...............!...,...................!.......................................................,...................3...4...............5...................;...5...............<...;...............4...<.......=...>...?...@.......>...A...B...?.......A...C...D...B.......C...........D.......E...=...@...F...................................U...V...............W...U...............X...W...................X...............V...Y...........Z...>...=...[.......\...A...>...Z.......]...C...A...\...............C...].......[...=...E...^......._...`...a.......b...c..._.......d...c...e...............h...i.......a...`...g.......U...j...k...V.......W...l...j...U.......X...m...l...W...............m...X.......V...k...n...Y.......[...o...p...Z.......Z...p...q...\.......\...q...r...].......]...r...............^...s...o...[.......t...p...o...u.......v...k...j...w.......x...q...p...t.......w...j...l...y.......z...r...q...x.......y...l...m...i...............r...z.......i...m...............u...o...s...........f...n...k...v.......|...................~... .......|...........+... ...~...............+...................-...............................................................|...............~...............................................................~...........~...............................~...|...........|...............................................|..............................................................................._...t...u...........z...x...c...d...........u.......g.......g...f...v...a.......a...v...w..._.......g...`...............`..._.......c...x...t..._......._...w...y...b...............z...d...........d...h.......c...b...e.......b...h...e.......e...h...d.......b...y...i...h.......................................................8...............:.......................................7...........H...9.......G...:...............(...)...&..."...%...*.......6...$...#...'...I...J...........................................................R.......S...............................T...Q...............H...............G.......S...........(...*...L...K...O...........6...J.......P...N...M.......8...............7...............R...............Q.......................8.......................8...............7...........9...........7.......:.......................:...G...........H...........9.......R...............................R.......Q.......................Q...T...................S...............G.......T...........S.......H........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + Hex: 04 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 01 00 00 00 04 00 00 00 05 00 00 00 02 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 07 00 00 00 05 00 00 00 04 00 00 00 06 00 00 00 97 00 00 00 98 00 00 00 07 00 00 00 04 00 00 00 08 00 00 00 00 00 00 00 03 00 00 00 09 00 00 00 04 00 00 00 0a 00 00 00 0b 00 00 00 0c 00 00 00 0d 00 00 00 04 00 00 00 0b 00 00 00 0e 00 00 00 0f 00 00 00 0c 00 00 00 04 00 00 00 0e 00 00 00 10 00 00 00 11 00 00 00 0f 00 00 00 04 00 00 00 10 00 00 00 95 00 00 00 96 00 00 00 11 00 00 00 04 00 00 00 12 00 00 00 0a 00 00 00 0d 00 00 00 13 00 00 00 04 00 00 00 14 00 00 00 15 00 00 00 16 00 00 00 17 00 00 00 04 00 00 00 15 00 00 00 18 00 00 00 19 00 00 00 16 00 00 00 04 00 00 00 1a 00 00 00 14 00 00 00 17 00 00 00 1b 00 00 00 04 00 00 00 18 00 00 00 1c 00 00 00 1d 00 00 00 19 00 00 00 04 00 00 00 99 00 00 00 1a 00 00 00 1b 00 00 00 9a 00 00 00 05 00 00 00 2e 00 00 00 2f 00 00 00 30 00 00 00 31 00 00 00 32 00 00 00 04 00 00 00 1e 00 00 00 8c 00 00 00 8d 00 00 00 1f 00 00 00 04 00 00 00 20 00 00 00 8e 00 00 00 8c 00 00 00 1e 00 00 00 04 00 00 00 2b 00 00 00 8f 00 00 00 8e 00 00 00 20 00 00 00 04 00 00 00 9b 00 00 00 91 00 00 00 8f 00 00 00 2b 00 00 00 04 00 00 00 1f 00 00 00 8d 00 00 00 90 00 00 00 2d 00 00 00 04 00 00 00 8d 00 00 00 8c 00 00 00 21 00 00 00 2c 00 00 00 04 00 00 00 8c 00 00 00 8e 00 00 00 92 00 00 00 21 00 00 00 04 00 00 00 8e 00 00 00 8f 00 00 00 93 00 00 00 92 00 00 00 04 00 00 00 8f 00 00 00 91 00 00 00 a7 00 00 00 93 00 00 00 04 00 00 00 90 00 00 00 8d 00 00 00 2c 00 00 00 94 00 00 00 04 00 00 00 00 00 00 00 08 00 00 00 33 00 00 00 34 00 00 00 04 00 00 00 97 00 00 00 06 00 00 00 35 00 00 00 9c 00 00 00 04 00 00 00 06 00 00 00 04 00 00 00 3b 00 00 00 35 00 00 00 04 00 00 00 04 00 00 00 01 00 00 00 3c 00 00 00 3b 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 34 00 00 00 3c 00 00 00 04 00 00 00 3d 00 00 00 3e 00 00 00 3f 00 00 00 40 00 00 00 04 00 00 00 3e 00 00 00 41 00 00 00 42 00 00 00 3f 00 00 00 04 00 00 00 41 00 00 00 43 00 00 00 44 00 00 00 42 00 00 00 04 00 00 00 43 00 00 00 9d 00 00 00 9e 00 00 00 44 00 00 00 04 00 00 00 45 00 00 00 3d 00 00 00 40 00 00 00 46 00 00 00 05 00 00 00 87 00 00 00 88 00 00 00 89 00 00 00 8a 00 00 00 8b 00 00 00 04 00 00 00 02 00 00 00 55 00 00 00 56 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 57 00 00 00 55 00 00 00 02 00 00 00 04 00 00 00 07 00 00 00 58 00 00 00 57 00 00 00 05 00 00 00 04 00 00 00 98 00 00 00 9f 00 00 00 58 00 00 00 07 00 00 00 04 00 00 00 03 00 00 00 56 00 00 00 59 00 00 00 09 00 00 00 04 00 00 00 5a 00 00 00 3e 00 00 00 3d 00 00 00 5b 00 00 00 04 00 00 00 5c 00 00 00 41 00 00 00 3e 00 00 00 5a 00 00 00 04 00 00 00 5d 00 00 00 43 00 00 00 41 00 00 00 5c 00 00 00 04 00 00 00 a0 00 00 00 9d 00 00 00 43 00 00 00 5d 00 00 00 04 00 00 00 5b 00 00 00 3d 00 00 00 45 00 00 00 5e 00 00 00 03 00 00 00 5f 00 00 00 60 00 00 00 61 00 00 00 03 00 00 00 62 00 00 00 63 00 00 00 5f 00 00 00 03 00 00 00 64 00 00 00 63 00 00 00 65 00 00 00 04 00 00 00 a1 00 00 00 a2 00 00 00 68 00 00 00 69 00 00 00 03 00 00 00 61 00 00 00 60 00 00 00 67 00 00 00 04 00 00 00 55 00 00 00 6a 00 00 00 6b 00 00 00 56 00 00 00 04 00 00 00 57 00 00 00 6c 00 00 00 6a 00 00 00 55 00 00 00 04 00 00 00 58 00 00 00 6d 00 00 00 6c 00 00 00 57 00 00 00 04 00 00 00 9f 00 00 00 a3 00 00 00 6d 00 00 00 58 00 00 00 04 00 00 00 56 00 00 00 6b 00 00 00 6e 00 00 00 59 00 00 00 04 00 00 00 5b 00 00 00 6f 00 00 00 70 00 00 00 5a 00 00 00 04 00 00 00 5a 00 00 00 70 00 00 00 71 00 00 00 5c 00 00 00 04 00 00 00 5c 00 00 00 71 00 00 00 72 00 00 00 5d 00 00 00 04 00 00 00 5d 00 00 00 72 00 00 00 a4 00 00 00 a0 00 00 00 04 00 00 00 5e 00 00 00 73 00 00 00 6f 00 00 00 5b 00 00 00 04 00 00 00 74 00 00 00 70 00 00 00 6f 00 00 00 75 00 00 00 04 00 00 00 76 00 00 00 6b 00 00 00 6a 00 00 00 77 00 00 00 04 00 00 00 78 00 00 00 71 00 00 00 70 00 00 00 74 00 00 00 04 00 00 00 77 00 00 00 6a 00 00 00 6c 00 00 00 79 00 00 00 04 00 00 00 7a 00 00 00 72 00 00 00 71 00 00 00 78 00 00 00 04 00 00 00 79 00 00 00 6c 00 00 00 6d 00 00 00 69 00 00 00 04 00 00 00 a5 00 00 00 a4 00 00 00 72 00 00 00 7a 00 00 00 04 00 00 00 69 00 00 00 6d 00 00 00 a3 00 00 00 a1 00 00 00 04 00 00 00 75 00 00 00 6f 00 00 00 73 00 00 00 7b 00 00 00 04 00 00 00 66 00 00 00 6e 00 00 00 6b 00 00 00 76 00 00 00 04 00 00 00 7c 00 00 00 1e 00 00 00 1f 00 00 00 7d 00 00 00 04 00 00 00 7e 00 00 00 20 00 00 00 1e 00 00 00 7c 00 00 00 04 00 00 00 7f 00 00 00 2b 00 00 00 20 00 00 00 7e 00 00 00 04 00 00 00 a6 00 00 00 9b 00 00 00 2b 00 00 00 7f 00 00 00 04 00 00 00 7d 00 00 00 1f 00 00 00 2d 00 00 00 80 00 00 00 03 00 00 00 1a 00 00 00 7f 00 00 00 81 00 00 00 03 00 00 00 1a 00 00 00 99 00 00 00 82 00 00 00 03 00 00 00 1c 00 00 00 18 00 00 00 83 00 00 00 03 00 00 00 15 00 00 00 7c 00 00 00 84 00 00 00 03 00 00 00 14 00 00 00 7e 00 00 00 85 00 00 00 03 00 00 00 7f 00 00 00 1a 00 00 00 82 00 00 00 03 00 00 00 99 00 00 00 a6 00 00 00 82 00 00 00 03 00 00 00 82 00 00 00 a6 00 00 00 7f 00 00 00 03 00 00 00 7f 00 00 00 7e 00 00 00 81 00 00 00 03 00 00 00 7e 00 00 00 14 00 00 00 81 00 00 00 03 00 00 00 81 00 00 00 14 00 00 00 1a 00 00 00 03 00 00 00 7e 00 00 00 7c 00 00 00 85 00 00 00 03 00 00 00 7c 00 00 00 15 00 00 00 85 00 00 00 03 00 00 00 85 00 00 00 15 00 00 00 14 00 00 00 03 00 00 00 18 00 00 00 15 00 00 00 84 00 00 00 03 00 00 00 7c 00 00 00 7d 00 00 00 84 00 00 00 03 00 00 00 84 00 00 00 7d 00 00 00 18 00 00 00 03 00 00 00 18 00 00 00 7d 00 00 00 83 00 00 00 03 00 00 00 7d 00 00 00 80 00 00 00 83 00 00 00 03 00 00 00 83 00 00 00 80 00 00 00 1c 00 00 00 04 00 00 00 5f 00 00 00 74 00 00 00 75 00 00 00 86 00 00 00 04 00 00 00 7a 00 00 00 78 00 00 00 63 00 00 00 64 00 00 00 04 00 00 00 86 00 00 00 75 00 00 00 7b 00 00 00 67 00 00 00 04 00 00 00 67 00 00 00 66 00 00 00 76 00 00 00 61 00 00 00 04 00 00 00 61 00 00 00 76 00 00 00 77 00 00 00 5f 00 00 00 03 00 00 00 67 00 00 00 60 00 00 00 86 00 00 00 03 00 00 00 86 00 00 00 60 00 00 00 5f 00 00 00 04 00 00 00 63 00 00 00 78 00 00 00 74 00 00 00 5f 00 00 00 04 00 00 00 5f 00 00 00 77 00 00 00 79 00 00 00 62 00 00 00 04 00 00 00 a2 00 00 00 a5 00 00 00 7a 00 00 00 64 00 00 00 03 00 00 00 a2 00 00 00 64 00 00 00 68 00 00 00 03 00 00 00 63 00 00 00 62 00 00 00 65 00 00 00 03 00 00 00 62 00 00 00 68 00 00 00 65 00 00 00 03 00 00 00 65 00 00 00 68 00 00 00 64 00 00 00 04 00 00 00 62 00 00 00 79 00 00 00 69 00 00 00 68 00 00 00 04 00 00 00 f4 00 00 00 09 01 00 00 08 01 00 00 f7 00 00 00 04 00 00 00 f8 00 00 00 0a 01 00 00 09 01 00 00 f4 00 00 00 04 00 00 00 ae 00 00 00 b3 00 00 00 38 00 00 00 aa 00 00 00 04 00 00 00 b4 00 00 00 3a 00 00 00 b0 00 00 00 b2 00 00 00 05 00 00 00 af 00 00 00 b1 00 00 00 b5 00 00 00 be 00 00 00 ab 00 00 00 05 00 00 00 37 00 00 00 a8 00 00 00 a9 00 00 00 48 00 00 00 39 00 00 00 04 00 00 00 47 00 00 00 3a 00 00 00 b4 00 00 00 bf 00 00 00 06 00 00 00 28 00 00 00 29 00 00 00 26 00 00 00 22 00 00 00 25 00 00 00 2a 00 00 00 06 00 00 00 36 00 00 00 24 00 00 00 23 00 00 00 27 00 00 00 49 00 00 00 4a 00 00 00 04 00 00 00 fa 00 00 00 fb 00 00 00 0b 01 00 00 0c 01 00 00 04 00 00 00 fe 00 00 00 fa 00 00 00 0c 01 00 00 0d 01 00 00 04 00 00 00 b6 00 00 00 b7 00 00 00 bb 00 00 00 52 00 00 00 04 00 00 00 53 00 00 00 b8 00 00 00 ba 00 00 00 bd 00 00 00 05 00 00 00 ad 00 00 00 ab 00 00 00 be 00 00 00 54 00 00 00 51 00 00 00 05 00 00 00 b9 00 00 00 bc 00 00 00 48 00 00 00 a9 00 00 00 ac 00 00 00 04 00 00 00 47 00 00 00 bf 00 00 00 53 00 00 00 bd 00 00 00 06 00 00 00 28 00 00 00 2a 00 00 00 4c 00 00 00 4b 00 00 00 4f 00 00 00 c0 00 00 00 06 00 00 00 36 00 00 00 4a 00 00 00 c3 00 00 00 50 00 00 00 4e 00 00 00 4d 00 00 00 03 00 00 00 38 00 00 00 b0 00 00 00 b1 00 00 00 03 00 00 00 37 00 00 00 b2 00 00 00 b3 00 00 00 03 00 00 00 52 00 00 00 b8 00 00 00 b9 00 00 00 03 00 00 00 51 00 00 00 ba 00 00 00 bb 00 00 00 04 00 00 00 c7 00 00 00 c1 00 00 00 38 00 00 00 b1 00 00 00 04 00 00 00 b3 00 00 00 b2 00 00 00 b0 00 00 00 38 00 00 00 04 00 00 00 c6 00 00 00 c5 00 00 00 37 00 00 00 b3 00 00 00 04 00 00 00 39 00 00 00 b4 00 00 00 b2 00 00 00 37 00 00 00 04 00 00 00 3a 00 00 00 b5 00 00 00 b1 00 00 00 b0 00 00 00 04 00 00 00 b5 00 00 00 3a 00 00 00 47 00 00 00 be 00 00 00 04 00 00 00 48 00 00 00 bf 00 00 00 b4 00 00 00 39 00 00 00 04 00 00 00 52 00 00 00 b9 00 00 00 c2 00 00 00 c8 00 00 00 04 00 00 00 bb 00 00 00 ba 00 00 00 b8 00 00 00 52 00 00 00 04 00 00 00 51 00 00 00 bb 00 00 00 c9 00 00 00 c4 00 00 00 04 00 00 00 ba 00 00 00 51 00 00 00 54 00 00 00 bd 00 00 00 04 00 00 00 b9 00 00 00 b8 00 00 00 53 00 00 00 bc 00 00 00 04 00 00 00 be 00 00 00 47 00 00 00 bd 00 00 00 54 00 00 00 04 00 00 00 bc 00 00 00 53 00 00 00 bf 00 00 00 48 00 00 00 04 00 00 00 00 01 00 00 f9 00 00 00 0a 01 00 00 0e 01 00 00 04 00 00 00 02 01 00 00 00 01 00 00 0e 01 00 00 0f 01 00 00 04 00 00 00 04 01 00 00 02 01 00 00 0f 01 00 00 10 01 00 00 04 00 00 00 ff 00 00 00 04 01 00 00 10 01 00 00 0d 01 00 00 05 00 00 00 06 01 00 00 f7 00 00 00 f6 00 00 00 07 01 00 00 11 01 00 00 03 00 00 00 fb 00 00 00 fc 00 00 00 0b 01 00 00 04 00 00 00 ca 00 00 00 cb 00 00 00 d1 00 00 00 d0 00 00 00 04 00 00 00 cb 00 00 00 cc 00 00 00 d2 00 00 00 d1 00 00 00 04 00 00 00 cc 00 00 00 cd 00 00 00 d3 00 00 00 d2 00 00 00 04 00 00 00 cd 00 00 00 ce 00 00 00 d4 00 00 00 d3 00 00 00 04 00 00 00 ce 00 00 00 cf 00 00 00 d5 00 00 00 d4 00 00 00 04 00 00 00 d0 00 00 00 d1 00 00 00 d7 00 00 00 d6 00 00 00 04 00 00 00 d1 00 00 00 d2 00 00 00 d8 00 00 00 d7 00 00 00 04 00 00 00 d2 00 00 00 d3 00 00 00 d9 00 00 00 d8 00 00 00 04 00 00 00 d3 00 00 00 d4 00 00 00 da 00 00 00 d9 00 00 00 04 00 00 00 d4 00 00 00 d5 00 00 00 db 00 00 00 da 00 00 00 04 00 00 00 d6 00 00 00 d7 00 00 00 dd 00 00 00 dc 00 00 00 04 00 00 00 d7 00 00 00 d8 00 00 00 de 00 00 00 dd 00 00 00 04 00 00 00 d8 00 00 00 d9 00 00 00 df 00 00 00 de 00 00 00 04 00 00 00 d9 00 00 00 da 00 00 00 e0 00 00 00 df 00 00 00 04 00 00 00 da 00 00 00 db 00 00 00 e1 00 00 00 e0 00 00 00 04 00 00 00 e2 00 00 00 e3 00 00 00 e9 00 00 00 e8 00 00 00 04 00 00 00 e3 00 00 00 e4 00 00 00 ea 00 00 00 e9 00 00 00 04 00 00 00 e4 00 00 00 e5 00 00 00 eb 00 00 00 ea 00 00 00 04 00 00 00 e5 00 00 00 e6 00 00 00 ec 00 00 00 eb 00 00 00 04 00 00 00 e6 00 00 00 e7 00 00 00 ed 00 00 00 ec 00 00 00 04 00 00 00 e8 00 00 00 e9 00 00 00 ef 00 00 00 ee 00 00 00 04 00 00 00 e9 00 00 00 ea 00 00 00 f0 00 00 00 ef 00 00 00 04 00 00 00 ea 00 00 00 eb 00 00 00 f1 00 00 00 f0 00 00 00 04 00 00 00 eb 00 00 00 ec 00 00 00 f2 00 00 00 f1 00 00 00 04 00 00 00 ec 00 00 00 ed 00 00 00 f3 00 00 00 f2 00 00 00 04 00 00 00 ee 00 00 00 ef 00 00 00 cb 00 00 00 ca 00 00 00 04 00 00 00 ef 00 00 00 f0 00 00 00 cc 00 00 00 cb 00 00 00 04 00 00 00 f0 00 00 00 f1 00 00 00 cd 00 00 00 cc 00 00 00 04 00 00 00 f1 00 00 00 f2 00 00 00 ce 00 00 00 cd 00 00 00 04 00 00 00 f2 00 00 00 f3 00 00 00 cf 00 00 00 ce 00 00 00 04 00 00 00 09 01 00 00 f5 00 00 00 f6 00 00 00 08 01 00 00 04 00 00 00 0a 01 00 00 f9 00 00 00 f5 00 00 00 09 01 00 00 04 00 00 00 0b 01 00 00 fc 00 00 00 fd 00 00 00 0c 01 00 00 04 00 00 00 0c 01 00 00 fd 00 00 00 ff 00 00 00 0d 01 00 00 04 00 00 00 0a 01 00 00 f8 00 00 00 01 01 00 00 0e 01 00 00 04 00 00 00 0e 01 00 00 01 01 00 00 03 01 00 00 0f 01 00 00 04 00 00 00 0f 01 00 00 03 01 00 00 05 01 00 00 10 01 00 00 04 00 00 00 10 01 00 00 05 01 00 00 fe 00 00 00 0d 01 00 00 05 00 00 00 fb 00 00 00 06 01 00 00 11 01 00 00 07 01 00 00 fc 00 00 00 03 00 00 00 f7 00 00 00 08 01 00 00 f6 00 00 00 } + 11 0x0310: (StorageRaw) { + Size: 7720 + String: ........L.......=...............................A.......................................@.......................................?...............................................>...............................B...................#.......*...........W.......C.......*...+... ...............X.......D.......+...,...!... ...........Y.......E.......,...-..."...!...........................$.......[...]...^...O...................%...............................Z...Y...P...[...........&...............................W...V...Q...Z...........'...............................N...R...M...W...........................(.......O...`...S...N...................8......................................./.......9...............................0.......:...............................1.......;...............................<.......2...........................9.......................................8.......................................:.......................................;.......................................<.......!...............................=...#...................................A.......................................@........... ...........................?... ......."...........................>..."...!...#...............................F.......Z.......#..."...-...........$...,...*.......................%...*...).......................&...)...+.......................'...+...-.......................(...-...,...........................7.......3...........L...H.........../...3.......4...........H...I...........0...4.......5...........I...J...........1...5.......6...........J...K...........2...6.......7...........K...L...........B...G...K...........$...#.......C...H...G....... ...$...........D...I...H.......!...$... .......E...J...I......."...$...!.......F...K...J.......#...$...".......L...Q...d...U...........%...)...............R...M...Q...........&...%...............S...N...R...........'...&...............T...O...S...........(...'...............U...P...T...........)...(...........[...j..._...o.......9...=...F...>.......[...v...\...q.......>...@...:...9.......\...x...]...r.......@...B...;...:.......]...z...^...s.......B...D...<...;......._...t...^...|.......=...<...D...F.......f...u...e...k.......A...?...4...5.......f...l...g...w.......5...6...C...A.......g...m...h...y.......6...7...E...C.......h...n...i...........7...8...G...E.......e...p...i...........?...G...8...4...............j...............=...9...*.......M.......k...~.......&...5...4...%.......N.......l...........'...6...5...&.......O.......m...........(...7...6...'.......P.......n...........)...8...7...(.......o.......V...........F...c...a...>.......p...................?...e...d...G.......W.......q...........*...9...:...+.......X.......r...........+...:...;...,.......Y.......s...........,...;...<...-.......Z.......t...........-...<...=...........u.......`...........A...i...e...?.......v...................>...a...h...@.......w.......a...........C...o...i...A.......x...................@...h...b...B.......y.......b...........E...2...o...C.......z...................B...b...j...D...............c...........G...d...2...E.......|...................D...j...c...F.......d...~...............%...4...8...)...................................]...\...H...L..._...^...................................Y...X...I...H...\...P...................................V...U...J...I...X...Q...................................R...T...K...J...U...M...................................`..._...L...K...T...S...........................N...S...T...R...........................W...M...U...V...........................Z...Q...X...Y...........................[...P...\...]...........................^..._...`...O...........................g...f...3.../.......`...............................i...0...h...a...g.../...e.......c...............................d...3...f...c...j...k...2...........................e.../...3...d.......V...................c...f...g...a...............................h...0...l...1...b.......a.......................o...m...l...0...i.......b.......................2...k...n...m...o...........................l...m...n...1...............................b...1...n...k...j...............................x...............p.......................w...p...........................w...q...p...........q...................x.......................w.......q...........r...$...............x...............+.......w.......................%...................r.......................)...................u.......................u...........................................s...v...........y...........................w...........................x...................................~...u...............w...........x...................................t...................................y.......................s...................................t...........y...z...............................................u...........z...................'...............................-.......................................,.......w........................................................... ...........(...........................!.......#...........|................... ......................................."...........v.......................................u...~...................................t...............................s...........................................t...................................s...................*...............r...........................................v...s...............................t...........................................................................!...............|...........................&...............~...................................|...........................................................................~.......................".......|.......................................t...................#.......................v...............$...v...................x...........%...........r...............&...............~...........x...'...........................(...........................)...........u...............*...............r.......1...0...=...k...........................1...l...4...2...........................4...m...7...5...........................7...n...:...8...........................=...;...:...o...........................0.../...?...<...........................2...3...@.../...........................5...6...B...3...........................8...9...D...6...........................;...<...F...9...........................?...>...I...G...........................@...A...J...>...........................B...C...L...A...........................D...E...N...C...........................F...G...P...E...........................Q...I...H...................H...J...K...................K...L...M...................M...N...O...................O...P...Q...................R...X...V...................S...Y...R...................T...[...S...................U...]...T...................V..._...U...................X...W...b...`...........................Y...Z...c...W...........................[...\...e...Z...........................]...^...g...\..........................._...`...i...^...........................k...j...b...a...........................l...a...c...d...........................m...d...e...f...........................n...f...g...h...........................o...h...i...j...............................p...z.......p...................q...z...........p...q...................r.......~.......q.......................s...|.......y...................t...|...........y...z...................u...............z...................+...v...~...............................,...w...................................-...x.......................................y............... + Hex: 04 00 00 00 02 00 00 00 4c 00 00 00 0e 00 00 00 3d 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 1a 00 00 00 1e 00 00 00 04 00 00 00 02 00 00 00 41 00 00 00 05 00 00 00 03 00 00 00 04 00 00 00 1e 00 00 00 1d 00 00 00 01 00 00 00 00 00 00 00 04 00 00 00 05 00 00 00 40 00 00 00 08 00 00 00 06 00 00 00 04 00 00 00 1d 00 00 00 1c 00 00 00 02 00 00 00 01 00 00 00 04 00 00 00 08 00 00 00 3f 00 00 00 0b 00 00 00 09 00 00 00 04 00 00 00 1c 00 00 00 1b 00 00 00 03 00 00 00 02 00 00 00 04 00 00 00 0e 00 00 00 0c 00 00 00 0b 00 00 00 3e 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 1b 00 00 00 1a 00 00 00 04 00 00 00 00 00 00 00 42 00 00 00 0d 00 00 00 01 00 00 00 04 00 00 00 1f 00 00 00 23 00 00 00 2e 00 00 00 2a 00 00 00 04 00 00 00 00 00 00 00 57 00 00 00 04 00 00 00 43 00 00 00 04 00 00 00 2a 00 00 00 2b 00 00 00 20 00 00 00 1f 00 00 00 04 00 00 00 04 00 00 00 58 00 00 00 07 00 00 00 44 00 00 00 04 00 00 00 2b 00 00 00 2c 00 00 00 21 00 00 00 20 00 00 00 04 00 00 00 07 00 00 00 59 00 00 00 0a 00 00 00 45 00 00 00 04 00 00 00 2c 00 00 00 2d 00 00 00 22 00 00 00 21 00 00 00 06 00 00 00 93 00 00 00 b3 00 00 00 a0 00 00 00 b4 00 00 00 92 00 00 00 24 00 00 00 06 00 00 00 5b 00 00 00 5d 00 00 00 5e 00 00 00 4f 00 00 00 0d 00 00 00 0b 00 00 00 06 00 00 00 93 00 00 00 25 00 00 00 94 00 00 00 ad 00 00 00 ab 00 00 00 b1 00 00 00 06 00 00 00 0b 00 00 00 0a 00 00 00 5a 00 00 00 59 00 00 00 50 00 00 00 5b 00 00 00 06 00 00 00 94 00 00 00 26 00 00 00 95 00 00 00 a8 00 00 00 a6 00 00 00 af 00 00 00 06 00 00 00 0a 00 00 00 0c 00 00 00 57 00 00 00 56 00 00 00 51 00 00 00 5a 00 00 00 06 00 00 00 95 00 00 00 27 00 00 00 96 00 00 00 a3 00 00 00 a1 00 00 00 aa 00 00 00 06 00 00 00 0c 00 00 00 0e 00 00 00 4e 00 00 00 52 00 00 00 4d 00 00 00 57 00 00 00 06 00 00 00 92 00 00 00 b8 00 00 00 b7 00 00 00 a4 00 00 00 96 00 00 00 28 00 00 00 06 00 00 00 4f 00 00 00 60 00 00 00 53 00 00 00 4e 00 00 00 0e 00 00 00 0d 00 00 00 04 00 00 00 0f 00 00 00 38 00 00 00 14 00 00 00 10 00 00 00 04 00 00 00 15 00 00 00 19 00 00 00 14 00 00 00 10 00 00 00 04 00 00 00 0f 00 00 00 2f 00 00 00 11 00 00 00 39 00 00 00 04 00 00 00 10 00 00 00 11 00 00 00 16 00 00 00 15 00 00 00 04 00 00 00 11 00 00 00 30 00 00 00 12 00 00 00 3a 00 00 00 04 00 00 00 11 00 00 00 12 00 00 00 17 00 00 00 16 00 00 00 04 00 00 00 12 00 00 00 31 00 00 00 13 00 00 00 3b 00 00 00 04 00 00 00 12 00 00 00 13 00 00 00 18 00 00 00 17 00 00 00 04 00 00 00 14 00 00 00 3c 00 00 00 13 00 00 00 32 00 00 00 04 00 00 00 19 00 00 00 18 00 00 00 13 00 00 00 14 00 00 00 04 00 00 00 39 00 00 00 16 00 00 00 1a 00 00 00 15 00 00 00 04 00 00 00 16 00 00 00 06 00 00 00 05 00 00 00 15 00 00 00 04 00 00 00 38 00 00 00 15 00 00 00 1c 00 00 00 19 00 00 00 04 00 00 00 15 00 00 00 05 00 00 00 09 00 00 00 19 00 00 00 04 00 00 00 3a 00 00 00 17 00 00 00 1d 00 00 00 16 00 00 00 04 00 00 00 17 00 00 00 07 00 00 00 06 00 00 00 16 00 00 00 04 00 00 00 3b 00 00 00 18 00 00 00 1f 00 00 00 17 00 00 00 04 00 00 00 18 00 00 00 08 00 00 00 07 00 00 00 17 00 00 00 04 00 00 00 3c 00 00 00 19 00 00 00 21 00 00 00 18 00 00 00 04 00 00 00 19 00 00 00 09 00 00 00 08 00 00 00 18 00 00 00 04 00 00 00 3d 00 00 00 23 00 00 00 1c 00 00 00 1b 00 00 00 04 00 00 00 1a 00 00 00 09 00 00 00 05 00 00 00 1e 00 00 00 04 00 00 00 41 00 00 00 1b 00 00 00 1a 00 00 00 1e 00 00 00 04 00 00 00 1e 00 00 00 05 00 00 00 06 00 00 00 1d 00 00 00 04 00 00 00 40 00 00 00 1e 00 00 00 1d 00 00 00 20 00 00 00 04 00 00 00 1d 00 00 00 06 00 00 00 07 00 00 00 1c 00 00 00 04 00 00 00 3f 00 00 00 20 00 00 00 1f 00 00 00 22 00 00 00 04 00 00 00 1c 00 00 00 07 00 00 00 08 00 00 00 1b 00 00 00 04 00 00 00 3e 00 00 00 22 00 00 00 21 00 00 00 23 00 00 00 04 00 00 00 1b 00 00 00 08 00 00 00 09 00 00 00 1a 00 00 00 04 00 00 00 0d 00 00 00 46 00 00 00 0a 00 00 00 5a 00 00 00 04 00 00 00 23 00 00 00 22 00 00 00 2d 00 00 00 2e 00 00 00 03 00 00 00 24 00 00 00 2c 00 00 00 2a 00 00 00 03 00 00 00 0d 00 00 00 0f 00 00 00 0b 00 00 00 03 00 00 00 25 00 00 00 2a 00 00 00 29 00 00 00 03 00 00 00 0b 00 00 00 0f 00 00 00 0a 00 00 00 03 00 00 00 26 00 00 00 29 00 00 00 2b 00 00 00 03 00 00 00 0a 00 00 00 0f 00 00 00 0c 00 00 00 03 00 00 00 27 00 00 00 2b 00 00 00 2d 00 00 00 03 00 00 00 0c 00 00 00 0f 00 00 00 0e 00 00 00 03 00 00 00 28 00 00 00 2d 00 00 00 2c 00 00 00 03 00 00 00 0e 00 00 00 0f 00 00 00 0d 00 00 00 04 00 00 00 10 00 00 00 37 00 00 00 2e 00 00 00 33 00 00 00 04 00 00 00 14 00 00 00 4c 00 00 00 48 00 00 00 10 00 00 00 04 00 00 00 2f 00 00 00 33 00 00 00 97 00 00 00 34 00 00 00 04 00 00 00 10 00 00 00 48 00 00 00 49 00 00 00 11 00 00 00 04 00 00 00 30 00 00 00 34 00 00 00 98 00 00 00 35 00 00 00 04 00 00 00 11 00 00 00 49 00 00 00 4a 00 00 00 12 00 00 00 04 00 00 00 31 00 00 00 35 00 00 00 99 00 00 00 36 00 00 00 04 00 00 00 12 00 00 00 4a 00 00 00 4b 00 00 00 13 00 00 00 04 00 00 00 32 00 00 00 36 00 00 00 9a 00 00 00 37 00 00 00 04 00 00 00 13 00 00 00 4b 00 00 00 4c 00 00 00 14 00 00 00 03 00 00 00 42 00 00 00 47 00 00 00 4b 00 00 00 03 00 00 00 1f 00 00 00 24 00 00 00 23 00 00 00 03 00 00 00 43 00 00 00 48 00 00 00 47 00 00 00 03 00 00 00 20 00 00 00 24 00 00 00 1f 00 00 00 03 00 00 00 44 00 00 00 49 00 00 00 48 00 00 00 03 00 00 00 21 00 00 00 24 00 00 00 20 00 00 00 03 00 00 00 45 00 00 00 4a 00 00 00 49 00 00 00 03 00 00 00 22 00 00 00 24 00 00 00 21 00 00 00 03 00 00 00 46 00 00 00 4b 00 00 00 4a 00 00 00 03 00 00 00 23 00 00 00 24 00 00 00 22 00 00 00 04 00 00 00 4c 00 00 00 51 00 00 00 64 00 00 00 55 00 00 00 04 00 00 00 00 00 00 00 25 00 00 00 29 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 52 00 00 00 4d 00 00 00 51 00 00 00 04 00 00 00 01 00 00 00 26 00 00 00 25 00 00 00 00 00 00 00 04 00 00 00 06 00 00 00 53 00 00 00 4e 00 00 00 52 00 00 00 04 00 00 00 02 00 00 00 27 00 00 00 26 00 00 00 01 00 00 00 04 00 00 00 09 00 00 00 54 00 00 00 4f 00 00 00 53 00 00 00 04 00 00 00 03 00 00 00 28 00 00 00 27 00 00 00 02 00 00 00 04 00 00 00 0c 00 00 00 55 00 00 00 50 00 00 00 54 00 00 00 04 00 00 00 04 00 00 00 29 00 00 00 28 00 00 00 03 00 00 00 04 00 00 00 5b 00 00 00 6a 00 00 00 5f 00 00 00 6f 00 00 00 04 00 00 00 39 00 00 00 3d 00 00 00 46 00 00 00 3e 00 00 00 04 00 00 00 5b 00 00 00 76 00 00 00 5c 00 00 00 71 00 00 00 04 00 00 00 3e 00 00 00 40 00 00 00 3a 00 00 00 39 00 00 00 04 00 00 00 5c 00 00 00 78 00 00 00 5d 00 00 00 72 00 00 00 04 00 00 00 40 00 00 00 42 00 00 00 3b 00 00 00 3a 00 00 00 04 00 00 00 5d 00 00 00 7a 00 00 00 5e 00 00 00 73 00 00 00 04 00 00 00 42 00 00 00 44 00 00 00 3c 00 00 00 3b 00 00 00 04 00 00 00 5f 00 00 00 74 00 00 00 5e 00 00 00 7c 00 00 00 04 00 00 00 3d 00 00 00 3c 00 00 00 44 00 00 00 46 00 00 00 04 00 00 00 66 00 00 00 75 00 00 00 65 00 00 00 6b 00 00 00 04 00 00 00 41 00 00 00 3f 00 00 00 34 00 00 00 35 00 00 00 04 00 00 00 66 00 00 00 6c 00 00 00 67 00 00 00 77 00 00 00 04 00 00 00 35 00 00 00 36 00 00 00 43 00 00 00 41 00 00 00 04 00 00 00 67 00 00 00 6d 00 00 00 68 00 00 00 79 00 00 00 04 00 00 00 36 00 00 00 37 00 00 00 45 00 00 00 43 00 00 00 04 00 00 00 68 00 00 00 6e 00 00 00 69 00 00 00 7b 00 00 00 04 00 00 00 37 00 00 00 38 00 00 00 47 00 00 00 45 00 00 00 04 00 00 00 65 00 00 00 70 00 00 00 69 00 00 00 7d 00 00 00 04 00 00 00 3f 00 00 00 47 00 00 00 38 00 00 00 34 00 00 00 04 00 00 00 01 00 00 00 87 00 00 00 6a 00 00 00 83 00 00 00 04 00 00 00 2e 00 00 00 3d 00 00 00 39 00 00 00 2a 00 00 00 04 00 00 00 4d 00 00 00 7f 00 00 00 6b 00 00 00 7e 00 00 00 04 00 00 00 26 00 00 00 35 00 00 00 34 00 00 00 25 00 00 00 04 00 00 00 4e 00 00 00 80 00 00 00 6c 00 00 00 7f 00 00 00 04 00 00 00 27 00 00 00 36 00 00 00 35 00 00 00 26 00 00 00 04 00 00 00 4f 00 00 00 81 00 00 00 6d 00 00 00 80 00 00 00 04 00 00 00 28 00 00 00 37 00 00 00 36 00 00 00 27 00 00 00 04 00 00 00 50 00 00 00 82 00 00 00 6e 00 00 00 81 00 00 00 04 00 00 00 29 00 00 00 38 00 00 00 37 00 00 00 28 00 00 00 04 00 00 00 6f 00 00 00 90 00 00 00 56 00 00 00 88 00 00 00 04 00 00 00 46 00 00 00 63 00 00 00 61 00 00 00 3e 00 00 00 04 00 00 00 70 00 00 00 89 00 00 00 be 00 00 00 91 00 00 00 04 00 00 00 3f 00 00 00 65 00 00 00 64 00 00 00 47 00 00 00 04 00 00 00 57 00 00 00 83 00 00 00 71 00 00 00 84 00 00 00 04 00 00 00 2a 00 00 00 39 00 00 00 3a 00 00 00 2b 00 00 00 04 00 00 00 58 00 00 00 84 00 00 00 72 00 00 00 85 00 00 00 04 00 00 00 2b 00 00 00 3a 00 00 00 3b 00 00 00 2c 00 00 00 04 00 00 00 59 00 00 00 85 00 00 00 73 00 00 00 86 00 00 00 04 00 00 00 2c 00 00 00 3b 00 00 00 3c 00 00 00 2d 00 00 00 04 00 00 00 5a 00 00 00 86 00 00 00 74 00 00 00 87 00 00 00 04 00 00 00 2d 00 00 00 3c 00 00 00 3d 00 00 00 2e 00 00 00 04 00 00 00 75 00 00 00 8b 00 00 00 60 00 00 00 89 00 00 00 04 00 00 00 41 00 00 00 69 00 00 00 65 00 00 00 3f 00 00 00 04 00 00 00 76 00 00 00 88 00 00 00 ba 00 00 00 8a 00 00 00 04 00 00 00 3e 00 00 00 61 00 00 00 68 00 00 00 40 00 00 00 04 00 00 00 77 00 00 00 8d 00 00 00 61 00 00 00 8b 00 00 00 04 00 00 00 43 00 00 00 6f 00 00 00 69 00 00 00 41 00 00 00 04 00 00 00 78 00 00 00 8a 00 00 00 c5 00 00 00 8c 00 00 00 04 00 00 00 40 00 00 00 68 00 00 00 62 00 00 00 42 00 00 00 04 00 00 00 79 00 00 00 8f 00 00 00 62 00 00 00 8d 00 00 00 04 00 00 00 45 00 00 00 32 00 00 00 6f 00 00 00 43 00 00 00 04 00 00 00 7a 00 00 00 8c 00 00 00 c9 00 00 00 8e 00 00 00 04 00 00 00 42 00 00 00 62 00 00 00 6a 00 00 00 44 00 00 00 04 00 00 00 7b 00 00 00 91 00 00 00 63 00 00 00 8f 00 00 00 04 00 00 00 47 00 00 00 64 00 00 00 32 00 00 00 45 00 00 00 04 00 00 00 7c 00 00 00 8e 00 00 00 bc 00 00 00 90 00 00 00 04 00 00 00 44 00 00 00 6a 00 00 00 63 00 00 00 46 00 00 00 04 00 00 00 64 00 00 00 7e 00 00 00 7d 00 00 00 82 00 00 00 04 00 00 00 25 00 00 00 34 00 00 00 38 00 00 00 29 00 00 00 06 00 00 00 a0 00 00 00 b0 00 00 00 9d 00 00 00 2e 00 00 00 9e 00 00 00 b6 00 00 00 06 00 00 00 5d 00 00 00 5c 00 00 00 48 00 00 00 4c 00 00 00 5f 00 00 00 5e 00 00 00 06 00 00 00 ab 00 00 00 ae 00 00 00 9c 00 00 00 97 00 00 00 9d 00 00 00 b2 00 00 00 06 00 00 00 59 00 00 00 58 00 00 00 49 00 00 00 48 00 00 00 5c 00 00 00 50 00 00 00 06 00 00 00 a6 00 00 00 a9 00 00 00 9b 00 00 00 98 00 00 00 9c 00 00 00 ac 00 00 00 06 00 00 00 56 00 00 00 55 00 00 00 4a 00 00 00 49 00 00 00 58 00 00 00 51 00 00 00 06 00 00 00 a1 00 00 00 a5 00 00 00 9f 00 00 00 99 00 00 00 9b 00 00 00 a7 00 00 00 06 00 00 00 52 00 00 00 54 00 00 00 4b 00 00 00 4a 00 00 00 55 00 00 00 4d 00 00 00 06 00 00 00 b7 00 00 00 b5 00 00 00 9e 00 00 00 9a 00 00 00 9f 00 00 00 a2 00 00 00 06 00 00 00 60 00 00 00 5f 00 00 00 4c 00 00 00 4b 00 00 00 54 00 00 00 53 00 00 00 04 00 00 00 a3 00 00 00 a4 00 00 00 a2 00 00 00 a5 00 00 00 04 00 00 00 4e 00 00 00 53 00 00 00 54 00 00 00 52 00 00 00 04 00 00 00 a8 00 00 00 aa 00 00 00 a7 00 00 00 a9 00 00 00 04 00 00 00 57 00 00 00 4d 00 00 00 55 00 00 00 56 00 00 00 04 00 00 00 ad 00 00 00 af 00 00 00 ac 00 00 00 ae 00 00 00 04 00 00 00 5a 00 00 00 51 00 00 00 58 00 00 00 59 00 00 00 04 00 00 00 b3 00 00 00 b1 00 00 00 b2 00 00 00 b0 00 00 00 04 00 00 00 5b 00 00 00 50 00 00 00 5c 00 00 00 5d 00 00 00 04 00 00 00 b4 00 00 00 b6 00 00 00 b5 00 00 00 b8 00 00 00 04 00 00 00 5e 00 00 00 5f 00 00 00 60 00 00 00 4f 00 00 00 04 00 00 00 c3 00 00 00 c1 00 00 00 bd 00 00 00 b9 00 00 00 04 00 00 00 67 00 00 00 66 00 00 00 33 00 00 00 2f 00 00 00 07 00 00 00 60 00 00 00 c8 00 00 00 c6 00 00 00 ba 00 00 00 c4 00 00 00 c3 00 00 00 c0 00 00 00 07 00 00 00 69 00 00 00 30 00 00 00 68 00 00 00 61 00 00 00 67 00 00 00 2f 00 00 00 65 00 00 00 07 00 00 00 63 00 00 00 bf 00 00 00 bd 00 00 00 c2 00 00 00 bc 00 00 00 ca 00 00 00 cb 00 00 00 07 00 00 00 64 00 00 00 33 00 00 00 66 00 00 00 63 00 00 00 6a 00 00 00 6b 00 00 00 32 00 00 00 04 00 00 00 be 00 00 00 c0 00 00 00 b9 00 00 00 bf 00 00 00 04 00 00 00 65 00 00 00 2f 00 00 00 33 00 00 00 64 00 00 00 04 00 00 00 56 00 00 00 c2 00 00 00 c1 00 00 00 c4 00 00 00 04 00 00 00 63 00 00 00 66 00 00 00 67 00 00 00 61 00 00 00 05 00 00 00 c5 00 00 00 c6 00 00 00 c7 00 00 00 cc 00 00 00 d0 00 00 00 05 00 00 00 68 00 00 00 30 00 00 00 6c 00 00 00 31 00 00 00 62 00 00 00 05 00 00 00 61 00 00 00 d1 00 00 00 ce 00 00 00 c7 00 00 00 c8 00 00 00 05 00 00 00 6f 00 00 00 6d 00 00 00 6c 00 00 00 30 00 00 00 69 00 00 00 05 00 00 00 62 00 00 00 cb 00 00 00 bb 00 00 00 cd 00 00 00 d1 00 00 00 05 00 00 00 32 00 00 00 6b 00 00 00 6e 00 00 00 6d 00 00 00 6f 00 00 00 04 00 00 00 cc 00 00 00 ce 00 00 00 cd 00 00 00 cf 00 00 00 04 00 00 00 6c 00 00 00 6d 00 00 00 6e 00 00 00 31 00 00 00 05 00 00 00 c9 00 00 00 d0 00 00 00 cf 00 00 00 bb 00 00 00 ca 00 00 00 05 00 00 00 62 00 00 00 31 00 00 00 6e 00 00 00 6b 00 00 00 6a 00 00 00 04 00 00 00 d3 00 00 00 d6 00 00 00 d2 00 00 00 83 01 00 00 04 00 00 00 b8 00 00 00 78 00 00 00 98 00 00 00 c1 00 00 00 04 00 00 00 70 01 00 00 d4 00 00 00 d5 00 00 00 83 01 00 00 04 00 00 00 98 00 00 00 77 00 00 00 70 00 00 00 c1 00 00 00 03 00 00 00 d5 00 00 00 d8 00 00 00 d7 00 00 00 03 00 00 00 77 00 00 00 71 00 00 00 70 00 00 00 03 00 00 00 d6 00 00 00 71 01 00 00 d9 00 00 00 03 00 00 00 b8 00 00 00 b9 00 00 00 78 00 00 00 03 00 00 00 d8 00 00 00 e6 00 00 00 da 00 00 00 03 00 00 00 77 00 00 00 bc 00 00 00 71 00 00 00 03 00 00 00 d9 00 00 00 72 01 00 00 24 01 00 00 03 00 00 00 b9 00 00 00 94 00 00 00 78 00 00 00 03 00 00 00 e6 00 00 00 dc 00 00 00 2b 01 00 00 03 00 00 00 77 00 00 00 bd 00 00 00 bc 00 00 00 04 00 00 00 05 01 00 00 07 01 00 00 25 01 00 00 e1 00 00 00 04 00 00 00 82 00 00 00 86 00 00 00 72 00 00 00 87 00 00 00 04 00 00 00 e2 00 00 00 08 01 00 00 0a 01 00 00 29 01 00 00 04 00 00 00 89 00 00 00 83 00 00 00 88 00 00 00 75 00 00 00 03 00 00 00 e2 00 00 00 e7 00 00 00 0b 01 00 00 03 00 00 00 75 00 00 00 8c 00 00 00 89 00 00 00 04 00 00 00 1c 01 00 00 0c 01 00 00 e3 00 00 00 e4 00 00 00 04 00 00 00 8b 00 00 00 8a 00 00 00 73 00 00 00 76 00 00 00 04 00 00 00 d4 00 00 00 79 01 00 00 01 01 00 00 e8 00 00 00 04 00 00 00 98 00 00 00 c0 00 00 00 80 00 00 00 77 00 00 00 04 00 00 00 d2 00 00 00 e9 00 00 00 ed 00 00 00 2e 01 00 00 04 00 00 00 78 00 00 00 81 00 00 00 c0 00 00 00 98 00 00 00 03 00 00 00 f5 00 00 00 eb 00 00 00 db 00 00 00 02 00 00 00 7e 00 00 00 75 00 00 00 04 00 00 00 e9 00 00 00 dd 00 00 00 77 01 00 00 f7 00 00 00 04 00 00 00 78 00 00 00 95 00 00 00 96 00 00 00 81 00 00 00 03 00 00 00 de 00 00 00 ea 00 00 00 f6 00 00 00 02 00 00 00 74 00 00 00 7d 00 00 00 04 00 00 00 01 01 00 00 ec 00 00 00 f0 00 00 00 82 01 00 00 04 00 00 00 99 00 00 00 79 00 00 00 80 00 00 00 c0 00 00 00 04 00 00 00 ed 00 00 00 ef 00 00 00 73 01 00 00 82 01 00 00 04 00 00 00 81 00 00 00 ba 00 00 00 99 00 00 00 c0 00 00 00 03 00 00 00 f0 00 00 00 74 01 00 00 f3 00 00 00 03 00 00 00 79 00 00 00 7a 00 00 00 80 00 00 00 03 00 00 00 ef 00 00 00 f2 00 00 00 ee 00 00 00 03 00 00 00 81 00 00 00 bb 00 00 00 ba 00 00 00 03 00 00 00 f3 00 00 00 75 01 00 00 fe 00 00 00 03 00 00 00 7a 00 00 00 bf 00 00 00 80 00 00 00 03 00 00 00 f2 00 00 00 27 01 00 00 f1 00 00 00 03 00 00 00 81 00 00 00 97 00 00 00 bb 00 00 00 03 00 00 00 fe 00 00 00 2d 01 00 00 f4 00 00 00 03 00 00 00 bf 00 00 00 be 00 00 00 80 00 00 00 04 00 00 00 dc 00 00 00 e8 00 00 00 f4 00 00 00 2c 01 00 00 04 00 00 00 77 00 00 00 80 00 00 00 be 00 00 00 bd 00 00 00 04 00 00 00 f8 00 00 00 f9 00 00 00 0f 01 00 00 11 01 00 00 04 00 00 00 7b 00 00 00 8e 00 00 00 84 00 00 00 8d 00 00 00 04 00 00 00 20 01 00 00 12 01 00 00 14 01 00 00 28 01 00 00 04 00 00 00 90 00 00 00 85 00 00 00 8f 00 00 00 7d 00 00 00 04 00 00 00 21 01 00 00 fb 00 00 00 23 01 00 00 15 01 00 00 04 00 00 00 7c 00 00 00 7f 00 00 00 93 00 00 00 91 00 00 00 03 00 00 00 20 01 00 00 ff 00 00 00 16 01 00 00 03 00 00 00 7d 00 00 00 92 00 00 00 90 00 00 00 04 00 00 00 1c 01 00 00 02 01 00 00 22 01 00 00 17 01 00 00 04 00 00 00 76 00 00 00 7f 00 00 00 92 00 00 00 8b 00 00 00 04 00 00 00 e7 00 00 00 eb 00 00 00 00 01 00 00 18 01 00 00 04 00 00 00 75 00 00 00 7e 00 00 00 93 00 00 00 8c 00 00 00 03 00 00 00 04 01 00 00 e0 00 00 00 de 00 00 00 02 00 00 00 86 00 00 00 74 00 00 00 04 00 00 00 05 01 00 00 19 01 00 00 e3 00 00 00 06 01 00 00 04 00 00 00 87 00 00 00 73 00 00 00 8a 00 00 00 82 00 00 00 04 00 00 00 07 01 00 00 06 01 00 00 1b 01 00 00 e0 00 00 00 04 00 00 00 82 00 00 00 8a 00 00 00 74 00 00 00 86 00 00 00 04 00 00 00 08 01 00 00 1a 01 00 00 19 01 00 00 09 01 00 00 04 00 00 00 89 00 00 00 73 00 00 00 87 00 00 00 83 00 00 00 04 00 00 00 e1 00 00 00 2a 01 00 00 0a 01 00 00 09 01 00 00 04 00 00 00 72 00 00 00 88 00 00 00 83 00 00 00 87 00 00 00 04 00 00 00 0b 01 00 00 1d 01 00 00 e4 00 00 00 1a 01 00 00 04 00 00 00 8c 00 00 00 76 00 00 00 73 00 00 00 89 00 00 00 03 00 00 00 0c 01 00 00 e5 00 00 00 1b 01 00 00 03 00 00 00 8b 00 00 00 74 00 00 00 8a 00 00 00 03 00 00 00 fa 00 00 00 f8 00 00 00 0d 01 00 00 02 00 00 00 7b 00 00 00 8d 00 00 00 03 00 00 00 0e 01 00 00 1f 01 00 00 fa 00 00 00 02 00 00 00 8f 00 00 00 7b 00 00 00 04 00 00 00 0f 01 00 00 1e 01 00 00 21 01 00 00 10 01 00 00 04 00 00 00 8e 00 00 00 7c 00 00 00 91 00 00 00 84 00 00 00 04 00 00 00 11 01 00 00 10 01 00 00 fd 00 00 00 26 01 00 00 04 00 00 00 84 00 00 00 91 00 00 00 7e 00 00 00 8d 00 00 00 04 00 00 00 12 01 00 00 fc 00 00 00 1e 01 00 00 13 01 00 00 04 00 00 00 90 00 00 00 7c 00 00 00 8e 00 00 00 85 00 00 00 04 00 00 00 f9 00 00 00 1f 01 00 00 14 01 00 00 13 01 00 00 04 00 00 00 7b 00 00 00 8f 00 00 00 85 00 00 00 8e 00 00 00 03 00 00 00 15 01 00 00 00 01 00 00 fd 00 00 00 03 00 00 00 93 00 00 00 7e 00 00 00 91 00 00 00 04 00 00 00 fb 00 00 00 fc 00 00 00 16 01 00 00 22 01 00 00 04 00 00 00 7c 00 00 00 90 00 00 00 92 00 00 00 7f 00 00 00 04 00 00 00 ea 00 00 00 e5 00 00 00 17 01 00 00 ff 00 00 00 04 00 00 00 74 00 00 00 8b 00 00 00 92 00 00 00 7d 00 00 00 04 00 00 00 23 01 00 00 02 01 00 00 1d 01 00 00 18 01 00 00 04 00 00 00 7f 00 00 00 76 00 00 00 8c 00 00 00 93 00 00 00 03 00 00 00 24 01 00 00 76 01 00 00 dd 00 00 00 03 00 00 00 94 00 00 00 95 00 00 00 78 00 00 00 03 00 00 00 df 00 00 00 25 01 00 00 04 01 00 00 02 00 00 00 72 00 00 00 86 00 00 00 03 00 00 00 0d 01 00 00 26 01 00 00 f5 00 00 00 02 00 00 00 8d 00 00 00 7e 00 00 00 03 00 00 00 f7 00 00 00 78 01 00 00 27 01 00 00 03 00 00 00 96 00 00 00 97 00 00 00 81 00 00 00 03 00 00 00 f6 00 00 00 28 01 00 00 0e 01 00 00 02 00 00 00 7d 00 00 00 8f 00 00 00 03 00 00 00 db 00 00 00 29 01 00 00 03 01 00 00 02 00 00 00 75 00 00 00 88 00 00 00 03 00 00 00 03 01 00 00 2a 01 00 00 df 00 00 00 02 00 00 00 88 00 00 00 72 00 00 00 04 00 00 00 31 01 00 00 30 01 00 00 3d 01 00 00 6b 01 00 00 04 00 00 00 9a 00 00 00 9e 00 00 00 b7 00 00 00 b3 00 00 00 04 00 00 00 31 01 00 00 6c 01 00 00 34 01 00 00 32 01 00 00 04 00 00 00 b3 00 00 00 b4 00 00 00 9b 00 00 00 9a 00 00 00 04 00 00 00 34 01 00 00 6d 01 00 00 37 01 00 00 35 01 00 00 04 00 00 00 b4 00 00 00 b5 00 00 00 9c 00 00 00 9b 00 00 00 04 00 00 00 37 01 00 00 6e 01 00 00 3a 01 00 00 38 01 00 00 04 00 00 00 b5 00 00 00 b6 00 00 00 9d 00 00 00 9c 00 00 00 04 00 00 00 3d 01 00 00 3b 01 00 00 3a 01 00 00 6f 01 00 00 04 00 00 00 9e 00 00 00 9d 00 00 00 b6 00 00 00 b7 00 00 00 04 00 00 00 30 01 00 00 2f 01 00 00 3f 01 00 00 3c 01 00 00 04 00 00 00 9a 00 00 00 9f 00 00 00 a3 00 00 00 9e 00 00 00 04 00 00 00 32 01 00 00 33 01 00 00 40 01 00 00 2f 01 00 00 04 00 00 00 9b 00 00 00 a0 00 00 00 9f 00 00 00 9a 00 00 00 04 00 00 00 35 01 00 00 36 01 00 00 42 01 00 00 33 01 00 00 04 00 00 00 9c 00 00 00 a1 00 00 00 a0 00 00 00 9b 00 00 00 04 00 00 00 38 01 00 00 39 01 00 00 44 01 00 00 36 01 00 00 04 00 00 00 9d 00 00 00 a2 00 00 00 a1 00 00 00 9c 00 00 00 04 00 00 00 3b 01 00 00 3c 01 00 00 46 01 00 00 39 01 00 00 04 00 00 00 9e 00 00 00 a3 00 00 00 a2 00 00 00 9d 00 00 00 04 00 00 00 3f 01 00 00 3e 01 00 00 49 01 00 00 47 01 00 00 04 00 00 00 9f 00 00 00 a4 00 00 00 a8 00 00 00 a3 00 00 00 04 00 00 00 40 01 00 00 41 01 00 00 4a 01 00 00 3e 01 00 00 04 00 00 00 a0 00 00 00 a5 00 00 00 a4 00 00 00 9f 00 00 00 04 00 00 00 42 01 00 00 43 01 00 00 4c 01 00 00 41 01 00 00 04 00 00 00 a1 00 00 00 a6 00 00 00 a5 00 00 00 a0 00 00 00 04 00 00 00 44 01 00 00 45 01 00 00 4e 01 00 00 43 01 00 00 04 00 00 00 a2 00 00 00 a7 00 00 00 a6 00 00 00 a1 00 00 00 04 00 00 00 46 01 00 00 47 01 00 00 50 01 00 00 45 01 00 00 04 00 00 00 a3 00 00 00 a8 00 00 00 a7 00 00 00 a2 00 00 00 03 00 00 00 51 01 00 00 49 01 00 00 48 01 00 00 02 00 00 00 a8 00 00 00 a4 00 00 00 03 00 00 00 48 01 00 00 4a 01 00 00 4b 01 00 00 02 00 00 00 a4 00 00 00 a5 00 00 00 03 00 00 00 4b 01 00 00 4c 01 00 00 4d 01 00 00 02 00 00 00 a5 00 00 00 a6 00 00 00 03 00 00 00 4d 01 00 00 4e 01 00 00 4f 01 00 00 02 00 00 00 a6 00 00 00 a7 00 00 00 03 00 00 00 4f 01 00 00 50 01 00 00 51 01 00 00 02 00 00 00 a7 00 00 00 a8 00 00 00 03 00 00 00 52 01 00 00 58 01 00 00 56 01 00 00 02 00 00 00 a9 00 00 00 ad 00 00 00 03 00 00 00 53 01 00 00 59 01 00 00 52 01 00 00 02 00 00 00 aa 00 00 00 a9 00 00 00 03 00 00 00 54 01 00 00 5b 01 00 00 53 01 00 00 02 00 00 00 ab 00 00 00 aa 00 00 00 03 00 00 00 55 01 00 00 5d 01 00 00 54 01 00 00 02 00 00 00 ac 00 00 00 ab 00 00 00 03 00 00 00 56 01 00 00 5f 01 00 00 55 01 00 00 02 00 00 00 ad 00 00 00 ac 00 00 00 04 00 00 00 58 01 00 00 57 01 00 00 62 01 00 00 60 01 00 00 04 00 00 00 a9 00 00 00 ae 00 00 00 b2 00 00 00 ad 00 00 00 04 00 00 00 59 01 00 00 5a 01 00 00 63 01 00 00 57 01 00 00 04 00 00 00 aa 00 00 00 af 00 00 00 ae 00 00 00 a9 00 00 00 04 00 00 00 5b 01 00 00 5c 01 00 00 65 01 00 00 5a 01 00 00 04 00 00 00 ab 00 00 00 b0 00 00 00 af 00 00 00 aa 00 00 00 04 00 00 00 5d 01 00 00 5e 01 00 00 67 01 00 00 5c 01 00 00 04 00 00 00 ac 00 00 00 b1 00 00 00 b0 00 00 00 ab 00 00 00 04 00 00 00 5f 01 00 00 60 01 00 00 69 01 00 00 5e 01 00 00 04 00 00 00 ad 00 00 00 b2 00 00 00 b1 00 00 00 ac 00 00 00 04 00 00 00 6b 01 00 00 6a 01 00 00 62 01 00 00 61 01 00 00 04 00 00 00 b7 00 00 00 b2 00 00 00 ae 00 00 00 b3 00 00 00 04 00 00 00 6c 01 00 00 61 01 00 00 63 01 00 00 64 01 00 00 04 00 00 00 b3 00 00 00 ae 00 00 00 af 00 00 00 b4 00 00 00 04 00 00 00 6d 01 00 00 64 01 00 00 65 01 00 00 66 01 00 00 04 00 00 00 b4 00 00 00 af 00 00 00 b0 00 00 00 b5 00 00 00 04 00 00 00 6e 01 00 00 66 01 00 00 67 01 00 00 68 01 00 00 04 00 00 00 b5 00 00 00 b0 00 00 00 b1 00 00 00 b6 00 00 00 04 00 00 00 6f 01 00 00 68 01 00 00 69 01 00 00 6a 01 00 00 04 00 00 00 b6 00 00 00 b1 00 00 00 b2 00 00 00 b7 00 00 00 03 00 00 00 d3 00 00 00 70 01 00 00 7a 01 00 00 03 00 00 00 70 00 00 00 c1 00 00 00 b8 00 00 00 04 00 00 00 d7 00 00 00 71 01 00 00 7a 01 00 00 7b 01 00 00 04 00 00 00 70 00 00 00 71 00 00 00 b8 00 00 00 b9 00 00 00 04 00 00 00 da 00 00 00 72 01 00 00 7b 01 00 00 7e 01 00 00 04 00 00 00 71 00 00 00 94 00 00 00 b9 00 00 00 bc 00 00 00 03 00 00 00 ec 00 00 00 73 01 00 00 7c 01 00 00 03 00 00 00 79 00 00 00 99 00 00 00 ba 00 00 00 04 00 00 00 ee 00 00 00 74 01 00 00 7c 01 00 00 7d 01 00 00 04 00 00 00 79 00 00 00 7a 00 00 00 ba 00 00 00 bb 00 00 00 04 00 00 00 f1 00 00 00 75 01 00 00 7d 01 00 00 81 01 00 00 04 00 00 00 7a 00 00 00 97 00 00 00 bb 00 00 00 bf 00 00 00 04 00 00 00 2b 01 00 00 76 01 00 00 7e 01 00 00 7f 01 00 00 04 00 00 00 94 00 00 00 95 00 00 00 bc 00 00 00 bd 00 00 00 04 00 00 00 2c 01 00 00 77 01 00 00 7f 01 00 00 80 01 00 00 04 00 00 00 95 00 00 00 96 00 00 00 bd 00 00 00 be 00 00 00 04 00 00 00 2d 01 00 00 78 01 00 00 80 01 00 00 81 01 00 00 04 00 00 00 96 00 00 00 97 00 00 00 be 00 00 00 bf 00 00 00 02 00 00 00 2e 01 00 00 79 01 00 00 02 00 00 00 98 00 00 00 c0 00 00 00 } + 12 0x0320: (StorageRaw) { + Size: 4 + String: .... + Hex: 0c 00 00 00 + Int: 12 + Float: 1.68156e-44 } } + Orphan[5] 0x0906: (StorageContainer) [16] { + 0 0x300d: (StorageRaw) { + Size: 4 + String: .... + Hex: 05 00 00 00 + Int: 5 + Float: 7.00649e-45 } + 1 0x300e: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 2 0x300f: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 3 0x3014: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 4 0x3015: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + 5 0x3010: (StorageRaw) { + Size: 4 + String: .. A + Hex: 00 00 20 41 + Int: 1092616192 + Float: 10 } + 6 0x3017: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 a0 41 + Int: 1101004800 + Float: 20 } + 7 0x3012: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 a0 41 + Int: 1101004800 + Float: 20 } + 8 0x3013: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 9 0x3016: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 10 0x301c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 11 0x3019: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 12 0x301a: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 13 0x301d: (StorageRaw) { + Size: 4 + String: N.. + Hex: 20 4e 00 00 + Int: 20000 + Float: 2.8026e-41 } + 14 0x301b: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 15 0x301e: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + Orphan[6] 0x0908: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + Orphan[7] 0x090a: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + Orphan[8] 0x090c: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + 388 0x0019: (LayerSuperClassUnknown: Base Layer, (0x7e9858fe, 0x1dba1df0), 0x000010f0, Builtin) [9] { + Orphan[0] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[1] 0x1010: (StorageRaw) { + Size: 1 + String: 0 + Hex: 30 } + Orphan[2] 0x1030: (StorageRaw) { + Size: 4 + String: ..n. + Hex: 8a 08 6e 00 + Int: 7211146 + Float: 1.0105e-38 } + Orphan[3] 0x1020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[5] 0x1050: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 d6 00 0b + Int: 184604160 + Float: 2.48129e-32 } + Orphan[6] 0x1060: (StorageRaw) { + Size: 9 + String: ...?...?. + Hex: 00 00 80 3f 00 00 80 3f 01 } + Orphan[7] 0x1070: (StorageContainer) [1] { + 0 0x0006: (StorageRaw) { + Size: 21 + String: .........?..........? + Hex: 00 00 01 00 00 01 00 00 80 3f 00 01 01 01 01 00 00 00 00 80 3f } } + Orphan[8] 0x1080: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 389 0x001a: (NodeImpl: Node, (0x00000001, 0x00000000), 0x00000001, Builtin) [19] { + AppData: (AppData) [83] PARSED { + Entries[0]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1970 + Size: 1 } + Value: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + Entries[1]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 41654685 + Size: 24 } + Value: (StorageRaw) { + Size: 24 + String: (Use NelLight Modifier). } } + Entries[2]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 41654686 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[3]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 41654687 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[4]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 84682540 + Size: 13 } + Value: (StorageRaw) { + Size: 13 + String: no occlusion. } } + Entries[5]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 84682541 + Size: 13 } + Value: (StorageRaw) { + Size: 13 + String: no occlusion. } } + Entries[6]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 84682542 + Size: 9 } + Value: (StorageRaw) { + Size: 9 + String: no sound. } } + Entries[7]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 84682543 + Size: 6 } + Value: (StorageRaw) { + Size: 6 + String: no fx. } } + Entries[8]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1266703978 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[9]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1266703979 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[10]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062537 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[11]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062548 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[12]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062549 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[13]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062550 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[14]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062551 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[15]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062552 + Size: 5 } + Value: (StorageRaw) { + Size: 5 + String: 1000. } } + Entries[16]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062553 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 5. + Hex: 35 00 } } + Entries[17]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062554 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[18]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062555 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 1. + Hex: 31 00 } } + Entries[19]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062556 + Size: 3 } + Value: (StorageRaw) { + Size: 3 + String: 11. + Hex: 31 31 00 } } + Entries[20]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062557 + Size: 3 } + Value: (StorageRaw) { + Size: 3 + String: 20. + Hex: 32 30 00 } } + Entries[21]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062558 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 5. + Hex: 35 00 } } + Entries[22]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062559 + Size: 3 } + Value: (StorageRaw) { + Size: 3 + String: 30. + Hex: 33 30 00 } } + Entries[23]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062560 + Size: 4 } + Value: (StorageRaw) { + Size: 4 + String: 200. + Hex: 32 30 30 00 + Int: 3158066 + Float: 4.42539e-39 } } + Entries[24]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062561 + Size: 3 } + Value: (StorageRaw) { + Size: 3 + String: 32. + Hex: 33 32 00 } } + Entries[25]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062562 + Size: 1 } + Value: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + Entries[26]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062563 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[27]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062564 + Size: 1 } + Value: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + Entries[28]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062565 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[29]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062566 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[30]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062567 + Size: 4 } + Value: (StorageRaw) { + Size: 4 + String: 1.0. + Hex: 31 2e 30 00 + Int: 3157553 + Float: 4.42467e-39 } } + Entries[31]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062568 + Size: 4 } + Value: (StorageRaw) { + Size: 4 + String: 1.4. + Hex: 31 2e 34 00 + Int: 3419697 + Float: 4.79202e-39 } } + Entries[32]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062569 + Size: 3 } + Value: (StorageRaw) { + Size: 3 + String: 15. + Hex: 31 35 00 } } + Entries[33]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062570 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[34]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062580 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[35]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062581 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[36]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062582 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[37]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062583 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[38]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062584 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[39]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062585 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[40]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062586 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 1. + Hex: 31 00 } } + Entries[41]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062587 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[42]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062588 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 1. + Hex: 31 00 } } + Entries[43]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062589 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[44]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062590 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 1. + Hex: 31 00 } } + Entries[45]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062591 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[46]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062592 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[47]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062611 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[48]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062612 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[49]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062613 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[50]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062614 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[51]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062615 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[52]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062616 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[53]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062617 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[54]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062618 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[55]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062619 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[56]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062620 + Size: 1 } + Value: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + Entries[57]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062631 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[58]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062632 + Size: 3 } + Value: (StorageRaw) { + Size: 3 + String: 16. + Hex: 31 36 00 } } + Entries[59]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062633 + Size: 5 } + Value: (StorageRaw) { + Size: 5 + String: 0.02. } } + Entries[60]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062634 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 1. + Hex: 31 00 } } + Entries[61]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062635 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 1. + Hex: 31 00 } } + Entries[62]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062636 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[63]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062637 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[64]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062638 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[65]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062639 + Size: 10 } + Value: (StorageRaw) { + Size: 10 + String: 0 0 0 255. } } + Entries[66]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062640 + Size: 10 } + Value: (StorageRaw) { + Size: 10 + String: 0 0 0 255. } } + Entries[67]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062641 + Size: 10 } + Value: (StorageRaw) { + Size: 10 + String: 0 0 0 255. } } + Entries[68]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062655 + Size: 16 } + Value: (StorageRaw) { + Size: 16 + String: 255 255 255 255. } } + Entries[69]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062656 + Size: 16 } + Value: (StorageRaw) { + Size: 16 + String: 255 255 255 255. } } + Entries[70]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062657 + Size: 16 } + Value: (StorageRaw) { + Size: 16 + String: 255 255 255 255. } } + Entries[71]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062671 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[72]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062672 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[73]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062701 + Size: 4 } + Value: (StorageRaw) { + Size: 4 + String: 0.1. + Hex: 30 2e 31 00 + Int: 3223088 + Float: 4.51651e-39 } } + Entries[74]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062702 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[75]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062800 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[76]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062801 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[77]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 1423062802 + Size: 2 } + Value: (StorageRaw) { + Size: 2 + String: 0. + Hex: 30 00 } } + Entries[78]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 2089254647 + Size: 1 } + Value: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + Entries[79]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 2089254648 + Size: 1 } + Value: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + Entries[80]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 2089254649 + Size: 1 } + Value: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + Entries[81]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x04d64858, 0x16d1751d) + SuperClassId: 4128 + SubId: 2089254650 + Size: 1 } + Value: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + Entries[82]: (AppDataEntry) [2] PARSED { + Key: (AppDataEntryKey) { + ClassId: (0x7fd53834, 0x3b8525b5) + SuperClassId: 1 + SubId: 0 + Size: 16 } + Value: (StorageRaw) { + Size: 16 + String: ..|r...=...>..@? + Hex: 01 86 7c 72 cd cc cc 3d 9a 99 99 3e 00 00 40 3f } } } + References 0x2035: PARSED { + 0: (Position/Rotation/Scale, (0x00002005, 0x00000000)) + 1: (Editable Poly, (0x1bf8338d, 0x192f6098)) + 3: (NeL Material, (0x64c75fec, 0x222b9eb9)) + 6: (Base Layer, (0x7e9858fe, 0x1dba1df0)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Children: IMPLICIT { } + NodeVersion: 700 + Parent: (RootNode, (0x00000002, 0x00000000)) Root Node + ParentFlags: 2048 + UserName: GE_Acc_MikotoBaniere + Orphan[0] 0x09ba: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0963: (StorageRaw) { + Size: 8 + String: ........ + Hex: 10 00 00 00 10 00 00 00 } + Orphan[2] 0x096a: (StorageRaw) { + Size: 12 + String: .*@2.*... .. + Hex: b2 2a 40 32 b0 2a c0 be 05 20 d0 b3 } + Orphan[3] 0x096b: (StorageRaw) { + Size: 16 + String: ..5?..52..5...5? + Hex: f1 04 35 3f f1 04 35 32 f6 04 35 b2 f4 04 35 3f } + Orphan[4] 0x096c: (StorageRaw) { + Size: 28 + String: ...?...?...?...............? + Hex: 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 3f } + Orphan[5] 0x0974: (StorageRaw) { + Size: 4 + String: .... + Hex: e4 d6 99 00 + Int: 10082020 + Float: 1.41279e-38 } + Orphan[6] 0x099c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 d6 00 0b + Int: 184604160 + Float: 2.48129e-32 } + Orphan[7] 0x0a28: (StorageRaw) { + Size: 8 + String: ........ } + Orphan[8] 0x0a32: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[9] 0x0abe: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[10] 0x0ac3: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[11] 0x0ad2: (StorageContainer) [1] { + 0 0x0006: (StorageRaw) { + Size: 21 + String: .........?..........? + Hex: 00 00 01 00 00 01 00 00 80 3f 00 01 01 01 01 00 00 00 00 80 3f } } + Orphan[12] 0x0b22: (StorageContainer) [10] { + 0 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0101: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 2 0x0102: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 3 0x0103: (StorageRaw) { + Size: 4 + String: ...@ + Hex: 00 00 00 40 + Int: 1073741824 + Float: 2 } + 4 0x0104: (StorageRaw) { + Size: 4 + String: ...A + Hex: 00 00 a0 41 + Int: 1101004800 + Float: 20 } + 5 0x0105: (StorageRaw) { + Size: 2 + String: .. + Hex: 06 00 } + 6 0x0106: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 7 0x0107: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 8 0x0108: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 9 0x0109: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + Orphan[13] 0x0adc: (StorageContainer) [2] { + 0 0x0001: (StorageRaw) { + Size: 2 + String: .. + Hex: 00 00 } + 1 0x0002: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } } + Orphan[14] 0x0af0: (StorageContainer) [8] { + 0 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 2 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + 3 0x0004: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 4 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 5 0x0006: (StorageRaw) { + Size: 16 + String: ..Iq..Iq..I...I. + Hex: ca f2 49 71 ca f2 49 71 ca f2 49 f1 ca f2 49 f1 } + 6 0x0007: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 7 0x0008: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[15] 0x0b0e: (StorageContainer) [1] { + 0 0x0001: (StorageContainer) [24] { + 0 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0003: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0018: (StorageRaw) { + Size: 4 + String: .... + Hex: ff ff ff ff + Int: -1 + Float: -nan } + 3 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 4 0x0006: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 5 0x0007: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + 6 0x0008: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 7 0x001f: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 8 0x0009: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 9 0x000a: (StorageRaw) { + Size: 4 + String: .. A + Hex: 00 00 20 41 + Int: 1092616192 + Float: 10 } + 10 0x000b: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 11 0x000c: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 12 0x000d: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 13 0x0012: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 14 0x0013: (StorageRaw) { + Size: 12 + String: ...?........ + Hex: 00 00 80 3f 00 00 00 00 00 00 00 00 } + 15 0x0014: (StorageRaw) { + Size: 4 + String: .. . + Hex: 00 00 20 c1 + Int: -1054867456 + Float: -10 } + 16 0x0015: (StorageRaw) { + Size: 4 + String: .. A + Hex: 00 00 20 41 + Int: 1092616192 + Float: 10 } + 17 0x0016: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 18 0x0017: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 19 0x001a: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 20 0x001b: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 + Int: 4 + Float: 5.60519e-45 } + 21 0x001c: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 22 0x001d: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 23 0x001e: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + Orphan[16] 0x0b4a: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + Orphan[17] 0x0b54: (StorageContainer) [1] { + 0 0x0001: (StorageContainer) [1] { + 0 0x0002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + Orphan[18] 0x0b5e: (StorageContainer) [1] { + 0 0x0001: (StorageContainer) [1] { + 0 0x0005: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } } } } + 390 0x001b: (FilterKernelSuperClassUnknown: Area, (0x77912301, 0x00000000), 0x000010a0, Standard Pre-Filter Kernels (Autodesk)) [1] { + Orphan[0] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 0 + String: + Hex: } } } + 391 0x001c: (RendererSuperClassUnknown: Default Scanline Renderer, (0x00000001, 0x00000000), 0x00000f00, Default Scanline Renderer (Autodesk)) [18] { + References 0x2034: PARSED { + 0: (Area, (0x77912301, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0002: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0020: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[2] 0x0072: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[3] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[4] 0x0007: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[5] 0x0008: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[6] 0x0009: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 + Int: 10 + Float: 1.4013e-44 } + Orphan[7] 0x000a: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 + Int: 10 + Float: 1.4013e-44 } + Orphan[8] 0x000b: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[9] 0x0030: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[10] 0x000d: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[11] 0x0060: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[12] 0x0077: (StorageRaw) { + Size: 8 + String: .2w%.... + Hex: 11 32 77 25 00 00 00 00 } + Orphan[13] 0x0074: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[14] 0x0075: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[15] 0x0071: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[16] 0x0076: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d + Int: 1036831949 + Float: 0.1 } + Orphan[17] 0x0080: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 392 0x001b: (FilterKernelSuperClassUnknown: Area, (0x77912301, 0x00000000), 0x000010a0, Standard Pre-Filter Kernels (Autodesk)) [1] { + Orphan[0] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 0 + String: + Hex: } } } + 393 0x001c: (RendererSuperClassUnknown: Default Scanline Renderer, (0x00000001, 0x00000000), 0x00000f00, Default Scanline Renderer (Autodesk)) [18] { + References 0x2034: PARSED { + 0: (Area, (0x77912301, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0002: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0020: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[2] 0x0072: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[3] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[4] 0x0007: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[5] 0x0008: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[6] 0x0009: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 + Int: 10 + Float: 1.4013e-44 } + Orphan[7] 0x000a: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 + Int: 10 + Float: 1.4013e-44 } + Orphan[8] 0x000b: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[9] 0x0030: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[10] 0x000d: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[11] 0x0060: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 c0 3f + Int: 1069547520 + Float: 1.5 } + Orphan[12] 0x0077: (StorageRaw) { + Size: 8 + String: .2w%.... + Hex: 11 32 77 25 00 00 00 00 } + Orphan[13] 0x0074: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[14] 0x0075: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[15] 0x0071: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[16] 0x0076: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d + Int: 1036831949 + Float: 0.1 } + Orphan[17] 0x0080: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 394 0x001b: (FilterKernelSuperClassUnknown: Area, (0x77912301, 0x00000000), 0x000010a0, Standard Pre-Filter Kernels (Autodesk)) [1] { + Orphan[0] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 0 + String: + Hex: } } } + 395 0x001c: (RendererSuperClassUnknown: Default Scanline Renderer, (0x00000001, 0x00000000), 0x00000f00, Default Scanline Renderer (Autodesk)) [18] { + References 0x2034: PARSED { + 0: (Area, (0x77912301, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0002: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0020: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[2] 0x0072: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[3] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[4] 0x0007: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[5] 0x0008: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[6] 0x0009: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 + Int: 10 + Float: 1.4013e-44 } + Orphan[7] 0x000a: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 + Int: 10 + Float: 1.4013e-44 } + Orphan[8] 0x000b: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[9] 0x0030: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[10] 0x000d: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[11] 0x0060: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 c0 3f + Int: 1069547520 + Float: 1.5 } + Orphan[12] 0x0077: (StorageRaw) { + Size: 8 + String: .2w%.... + Hex: 11 32 77 25 00 00 00 00 } + Orphan[13] 0x0074: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[14] 0x0075: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[15] 0x0071: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[16] 0x0076: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d + Int: 1036831949 + Float: 0.1 } + Orphan[17] 0x0080: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 396 0x001d: (ReferenceTargetUnknown: RenderElementMgr, (0x46576167, 0x06546546), 0x00000200, Builtin) [8] { + Orphan[0] 0x1200: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + Orphan[1] 0x1210: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x1240: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x1220: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x1230: (StorageRaw) { + Size: 20 + String: d...7...%...Z....... + Hex: 64 00 00 00 37 00 00 00 25 00 00 00 5a 00 00 00 f4 01 00 00 } + Orphan[5] 0x1240: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[6] 0x1250: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + Orphan[7] 0x1260: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + 397 0x001d: (ReferenceTargetUnknown: RenderElementMgr, (0x46576167, 0x06546546), 0x00000200, Builtin) [8] { + Orphan[0] 0x1200: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + Orphan[1] 0x1210: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x1240: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[3] 0x1220: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x1230: (StorageRaw) { + Size: 20 + String: d...7...%...Z....... + Hex: 64 00 00 00 37 00 00 00 25 00 00 00 5a 00 00 00 f4 01 00 00 } + Orphan[5] 0x1240: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[6] 0x1250: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + Orphan[7] 0x1260: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + 398 0x001e: (ControlPoint3SuperClassUnknown: Bezier Color, (0x00002011, 0x00000000), 0x00009005, Builtin) [9] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x2501: (StorageRaw) { + Size: 12 + String: ............ } + Orphan[1] 0x2500: (StorageRaw) { + Size: 8 + String: ........ } + Orphan[2] 0x3002: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 00 00 00 + Int: 32 + Float: 4.48416e-44 } + Orphan[3] 0x3003: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 00 00 00 80 } + Orphan[4] 0x2532: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[5] 0x2533: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[6] 0x2534: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[7] 0x3005: (StorageRaw) { + Size: 4 + String: .... + Hex: 86 01 00 00 + Int: 390 + Float: 5.46506e-43 } + Orphan[8] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 399 0x001e: (ControlPoint3SuperClassUnknown: Bezier Color, (0x00002011, 0x00000000), 0x00009005, Builtin) [9] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x2501: (StorageRaw) { + Size: 12 + String: ............ } + Orphan[1] 0x2500: (StorageRaw) { + Size: 8 + String: ........ } + Orphan[2] 0x3002: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 00 00 00 + Int: 32 + Float: 4.48416e-44 } + Orphan[3] 0x3003: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 00 00 00 80 } + Orphan[4] 0x2532: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[5] 0x2533: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[6] 0x2534: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[7] 0x3005: (StorageRaw) { + Size: 4 + String: .... + Hex: 86 01 00 00 + Int: 390 + Float: 5.46506e-43 } + Orphan[8] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 400 0x001e: (ControlPoint3SuperClassUnknown: Bezier Color, (0x00002011, 0x00000000), 0x00009005, Builtin) [9] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x2501: (StorageRaw) { + Size: 12 + String: ...?...?...? + Hex: 00 00 80 3f 00 00 80 3f 00 00 80 3f } + Orphan[1] 0x2500: (StorageRaw) { + Size: 8 + String: ........ } + Orphan[2] 0x3002: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 00 00 00 + Int: 32 + Float: 4.48416e-44 } + Orphan[3] 0x3003: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 00 00 00 80 } + Orphan[4] 0x2532: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[5] 0x2533: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[6] 0x2534: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[7] 0x3005: (StorageRaw) { + Size: 4 + String: .... + Hex: 86 01 00 00 + Int: 390 + Float: 5.46506e-43 } + Orphan[8] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 401 0x0009: (ControlFloatSuperClassUnknown: Bezier Float, (0x00002007, 0x00000000), 0x00009003, Builtin) [9] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x2501: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[1] 0x2500: (StorageRaw) { + Size: 8 + String: ........ } + Orphan[2] 0x3002: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x3003: (StorageRaw) { + Size: 8 + String: ........ + Hex: 00 00 00 80 00 00 00 80 } + Orphan[4] 0x2532: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[5] 0x2533: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[6] 0x2534: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[7] 0x3005: (StorageRaw) { + Size: 4 + String: .... + Hex: 86 01 00 00 + Int: 390 + Float: 5.46506e-43 } + Orphan[8] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 402 0x001b: (FilterKernelSuperClassUnknown: Area, (0x77912301, 0x00000000), 0x000010a0, Standard Pre-Filter Kernels (Autodesk)) [1] { + Orphan[0] 0x39bf: (StorageContainer) [1] { + 0 0x0100: (StorageRaw) { + Size: 0 + String: + Hex: } } } + 403 0x001c: (RendererSuperClassUnknown: Default Scanline Renderer, (0x00000001, 0x00000000), 0x00000f00, Default Scanline Renderer (Autodesk)) [18] { + References 0x2034: PARSED { + 0: (Area, (0x77912301, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0002: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[1] 0x0020: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[2] 0x0072: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[3] 0x1000: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[4] 0x0007: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[5] 0x0008: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + Orphan[6] 0x0009: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 + Int: 10 + Float: 1.4013e-44 } + Orphan[7] 0x000a: (StorageRaw) { + Size: 4 + String: .... + Hex: 0a 00 00 00 + Int: 10 + Float: 1.4013e-44 } + Orphan[8] 0x000b: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[9] 0x0030: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[10] 0x000d: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[11] 0x0060: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 c0 3f + Int: 1069547520 + Float: 1.5 } + Orphan[12] 0x0077: (StorageRaw) { + Size: 8 + String: .2w%.... + Hex: 11 32 77 25 00 00 00 00 } + Orphan[13] 0x0074: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[14] 0x0075: (StorageRaw) { + Size: 0 + String: + Hex: } + Orphan[15] 0x0071: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 00 3f + Int: 1056964608 + Float: 0.5 } + Orphan[16] 0x0076: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d + Int: 1036831949 + Float: 0.1 } + Orphan[17] 0x0080: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 404 0x001f: (AtmosphericSuperClassUnknown: RenderEnvironment, (0xee448b23, 0x00000000), 0x00001010, Builtin) [5] { + References 0x2034: PARSED { + 0: (Default Scanline Renderer, (0x00000001, 0x00000000)) + 1: (Default Scanline Renderer, (0x00000001, 0x00000000)) + 2: (Default Scanline Renderer, (0x00000001, 0x00000000)) + 3: (RenderElementMgr, (0x46576167, 0x06546546)) + 4: (RenderElementMgr, (0x46576167, 0x06546546)) + 6: (Bezier Color, (0x00002011, 0x00000000)) + 7: (Bezier Color, (0x00002011, 0x00000000)) + 8: (Bezier Color, (0x00002011, 0x00000000)) + 9: (Bezier Float, (0x00002007, 0x00000000)) + 12: (Default Scanline Renderer, (0x00000001, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x2000: (StorageRaw) { + Size: 4 + String: .... + Hex: 0c 00 00 00 + Int: 12 + Float: 1.68156e-44 } + Orphan[2] 0x0120: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[3] 0x0110: (StorageContainer) [5] { + 0 0x2000: (StorageContainer) [41] { + 0 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 05 00 00 + Int: 1281 + Float: 1.79506e-42 } + 1 0x0110: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 2 0x0120: (StorageRaw) { + Size: 4 + String: .>.. + Hex: 80 3e 00 00 + Int: 16000 + Float: 2.24208e-41 } + 3 0x0130: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 4 0x0135: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 5 0x0140: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 6 0x0150: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 7 0x0160: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 8 0x0170: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 9 0x0180: (StorageRaw) { + Size: 4 + String: .... + Hex: 10 05 00 00 + Int: 1296 + Float: 1.81608e-42 } + 10 0x0610: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 11 0x0620: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 12 0x0680: (StorageRaw) { + Size: 0 + String: + Hex: } + 13 0x0640: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 14 0x0650: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 15 0x0690: (StorageRaw) { + Size: 0 + String: + Hex: } + 16 0x0670: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 17 0x0199: (StorageRaw) { + Size: 4 + String: .(.. + Hex: 03 28 00 00 + Int: 10243 + Float: 1.43535e-41 } + 18 0x0190: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 03 00 00 + Int: 800 + Float: 1.12104e-42 } + 19 0x0200: (StorageRaw) { + Size: 4 + String: X... + Hex: 58 02 00 00 + Int: 600 + Float: 8.40779e-43 } + 20 0x0210: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + 21 0x0440: (StorageRaw) { + Size: 4 + String: ...B + Hex: 00 00 10 42 + Int: 1108344832 + Float: 36 } + 22 0x0500: (StorageRaw) { + Size: 4 + String: ... + Hex: 20 03 00 00 + Int: 800 + Float: 1.12104e-42 } + 23 0x0510: (StorageRaw) { + Size: 4 + String: X... + Hex: 58 02 00 00 + Int: 600 + Float: 8.40779e-43 } + 24 0x0520: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + 25 0x0530: (StorageRaw) { + Size: 4 + String: ...B + Hex: 00 00 10 42 + Int: 1108344832 + Float: 36 } + 26 0x0220: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 27 0x0240: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 28 0x0290: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 29 0x0310: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 30 0x0320: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 31 0x0330: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 32 0x0338: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 33 0x05b0: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 34 0x05d0: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 35 0x05e0: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 36 0x0340: (StorageRaw) { + Size: 16 + String: 1.,.3.,.5.-.1.2. } + 37 0x0400: (StorageContainer) [2] { + 0 0x1201: (StorageRaw) { + Size: 70 + String: .X....?...?................@..............................?.......... + Hex: 20 03 58 02 00 00 80 3f 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 01 c8 00 00 00 00 00 00 00 00 00 00 00 ff 7f 00 00 ff 7f 01 00 00 00 00 00 00 00 00 00 80 3f 14 00 00 00 00 00 00 00 00 00 } + 1 0x1260: (StorageRaw) { + Size: 0 + String: + Hex: } } + 38 0x0410: (StorageContainer) [2] { + 0 0x1201: (StorageRaw) { + Size: 70 + String: .X....?...?................@..............................?.......... + Hex: 20 03 58 02 00 00 80 3f 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 01 c8 00 00 00 00 00 00 00 00 00 00 00 ff 7f 00 00 ff 7f 01 00 00 00 00 00 00 00 00 00 80 3f 14 00 00 00 00 00 00 00 00 00 } + 1 0x1260: (StorageRaw) { + Size: 0 + String: + Hex: } } + 39 0x05c0: (StorageContainer) [8] { + 0 0x1200: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 1 0x1210: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 2 0x1240: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 3 0x1220: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 4 0x1230: (StorageRaw) { + Size: 20 + String: d...7...%...Z....... + Hex: 64 00 00 00 37 00 00 00 25 00 00 00 5a 00 00 00 f4 01 00 00 } + 5 0x1240: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 6 0x1250: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 7 0x1260: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + 40 0x0600: (StorageRaw) { + Size: 800 + String: ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + Hex: 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 00 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 00 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a } } + 1 0x2100: (StorageContainer) [41] { + 0 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 05 00 00 + Int: 1281 + Float: 1.79506e-42 } + 1 0x0110: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 2 0x0120: (StorageRaw) { + Size: 4 + String: .>.. + Hex: 80 3e 00 00 + Int: 16000 + Float: 2.24208e-41 } + 3 0x0130: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 4 0x0135: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 5 0x0140: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 6 0x0150: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 7 0x0160: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 8 0x0170: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 9 0x0180: (StorageRaw) { + Size: 4 + String: .... + Hex: 0f 05 00 00 + Int: 1295 + Float: 1.81468e-42 } + 10 0x0610: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 11 0x0620: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 12 0x0680: (StorageRaw) { + Size: 0 + String: + Hex: } + 13 0x0640: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 14 0x0650: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 15 0x0690: (StorageRaw) { + Size: 0 + String: + Hex: } + 16 0x0670: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 17 0x0199: (StorageRaw) { + Size: 4 + String: .(.. + Hex: 03 28 00 00 + Int: 10243 + Float: 1.43535e-41 } + 18 0x0190: (StorageRaw) { + Size: 4 + String: .... + Hex: 80 02 00 00 + Int: 640 + Float: 8.96831e-43 } + 19 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: e0 01 00 00 + Int: 480 + Float: 6.72623e-43 } + 20 0x0210: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + 21 0x0440: (StorageRaw) { + Size: 4 + String: ...B + Hex: 00 00 10 42 + Int: 1108344832 + Float: 36 } + 22 0x0500: (StorageRaw) { + Size: 4 + String: .... + Hex: 80 02 00 00 + Int: 640 + Float: 8.96831e-43 } + 23 0x0510: (StorageRaw) { + Size: 4 + String: .... + Hex: e0 01 00 00 + Int: 480 + Float: 6.72623e-43 } + 24 0x0520: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + 25 0x0530: (StorageRaw) { + Size: 4 + String: ...B + Hex: 00 00 10 42 + Int: 1108344832 + Float: 36 } + 26 0x0220: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 27 0x0240: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 28 0x0290: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 29 0x0310: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 30 0x0320: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 31 0x0330: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 32 0x0338: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 33 0x05b0: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 34 0x05d0: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 35 0x05e0: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 36 0x0340: (StorageRaw) { + Size: 16 + String: 1.,.3.,.5.-.1.2. } + 37 0x0400: (StorageContainer) [2] { + 0 0x1201: (StorageRaw) { + Size: 70 + String: .......?...?................@..............................?.......... + Hex: 80 02 e0 01 00 00 80 3f 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 01 c8 00 00 00 00 00 00 00 00 00 00 00 ff 7f 00 00 ff 7f 01 00 00 00 00 00 00 00 00 00 80 3f 14 00 00 00 00 00 00 00 00 00 } + 1 0x1260: (StorageRaw) { + Size: 0 + String: + Hex: } } + 38 0x0410: (StorageContainer) [2] { + 0 0x1201: (StorageRaw) { + Size: 70 + String: .......?...?................@..............................?.......... + Hex: 80 02 e0 01 00 00 80 3f 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 01 c8 00 00 00 00 00 00 00 00 00 00 00 ff 7f 00 00 ff 7f 01 00 00 00 00 00 00 00 00 00 80 3f 14 00 00 00 00 00 00 00 00 00 } + 1 0x1260: (StorageRaw) { + Size: 0 + String: + Hex: } } + 39 0x05c0: (StorageContainer) [8] { + 0 0x1200: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 1 0x1210: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 2 0x1240: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 3 0x1220: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 4 0x1230: (StorageRaw) { + Size: 20 + String: d...7...%...Z....... + Hex: 64 00 00 00 37 00 00 00 25 00 00 00 5a 00 00 00 f4 01 00 00 } + 5 0x1240: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 6 0x1250: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 7 0x1260: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } } + 40 0x0600: (StorageRaw) { + Size: 800 + String: ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + Hex: 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 00 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 00 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a } } + 2 0x2300: (StorageContainer) [40] { + 0 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 05 00 00 + Int: 1281 + Float: 1.79506e-42 } + 1 0x0110: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 2 0x0120: (StorageRaw) { + Size: 4 + String: .>.. + Hex: 80 3e 00 00 + Int: 16000 + Float: 2.24208e-41 } + 3 0x0130: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 4 0x0135: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 5 0x0140: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 6 0x0150: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 7 0x0160: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 8 0x0170: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 9 0x0180: (StorageRaw) { + Size: 4 + String: .... + Hex: 0f 05 00 00 + Int: 1295 + Float: 1.81468e-42 } + 10 0x0610: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 11 0x0620: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 12 0x0680: (StorageRaw) { + Size: 0 + String: + Hex: } + 13 0x0640: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 14 0x0650: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 15 0x0690: (StorageRaw) { + Size: 0 + String: + Hex: } + 16 0x0670: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 17 0x0199: (StorageRaw) { + Size: 4 + String: .(.. + Hex: 03 28 00 00 + Int: 10243 + Float: 1.43535e-41 } + 18 0x0190: (StorageRaw) { + Size: 4 + String: .... + Hex: 80 02 00 00 + Int: 640 + Float: 8.96831e-43 } + 19 0x0200: (StorageRaw) { + Size: 4 + String: .... + Hex: e0 01 00 00 + Int: 480 + Float: 6.72623e-43 } + 20 0x0210: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + 21 0x0440: (StorageRaw) { + Size: 4 + String: ...B + Hex: 00 00 10 42 + Int: 1108344832 + Float: 36 } + 22 0x0500: (StorageRaw) { + Size: 4 + String: .... + Hex: 80 02 00 00 + Int: 640 + Float: 8.96831e-43 } + 23 0x0510: (StorageRaw) { + Size: 4 + String: .... + Hex: e0 01 00 00 + Int: 480 + Float: 6.72623e-43 } + 24 0x0520: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } + 25 0x0530: (StorageRaw) { + Size: 4 + String: ...B + Hex: 00 00 10 42 + Int: 1108344832 + Float: 36 } + 26 0x0220: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 27 0x0240: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 28 0x0290: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 29 0x0310: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 30 0x0320: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 31 0x0330: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 32 0x0338: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 33 0x05b0: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 34 0x05d0: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } + 35 0x05e0: (StorageRaw) { + Size: 1 + String: . + Hex: 00 } + 36 0x0340: (StorageRaw) { + Size: 16 + String: 1.,.3.,.5.-.1.2. } + 37 0x0400: (StorageContainer) [2] { + 0 0x1201: (StorageRaw) { + Size: 70 + String: .......?...?................@..............................?.......... + Hex: 80 02 e0 01 00 00 80 3f 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 01 c8 00 00 00 00 00 00 00 00 00 00 00 ff 7f 00 00 ff 7f 01 00 00 00 00 00 00 00 00 00 80 3f 14 00 00 00 00 00 00 00 00 00 } + 1 0x1260: (StorageRaw) { + Size: 0 + String: + Hex: } } + 38 0x0410: (StorageContainer) [2] { + 0 0x1201: (StorageRaw) { + Size: 70 + String: .......?...?................@..............................?.......... + Hex: 80 02 e0 01 00 00 80 3f 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 01 c8 00 00 00 00 00 00 00 00 00 00 00 ff 7f 00 00 ff 7f 01 00 00 00 00 00 00 00 00 00 80 3f 14 00 00 00 00 00 00 00 00 00 } + 1 0x1260: (StorageRaw) { + Size: 0 + String: + Hex: } } + 39 0x0600: (StorageRaw) { + Size: 800 + String: ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + Hex: 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 00 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 00 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a } } + 3 0x2400: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 4 0x2500: (StorageRaw) { + Size: 1 + String: . + Hex: 01 } } + Orphan[4] 0x6010: (StorageRaw) { + Size: 12 + String: .......@...@ + Hex: 00 00 00 00 cd cc 0c 40 cd cc 0c 40 } } + 405 0x0020: (ReferenceMakerUnknown: NamedSelSetList, (0x00008d52, 0x00000000), 0x00000100, Builtin) [1] { + Orphan[0] 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 406 0x0021: (TrackViewNode: TVNode, (0x8d73b8aa, 0x90f2ee71), 0x00000200, Builtin) [0] { } + 407 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [4] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: "......!........ + Hex: 22 00 00 00 00 00 00 21 e0 2e 02 00 98 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 00 08 00 00 89 10 92 00 00 00 00 00 80 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 408 0x0022: (ControlFloatSuperClassUnknown: Float List, (0x4b4b1000, 0x00000000), 0x00009003, Standard Controllers (Autodesk)) [3] { + References 0x2034: PARSED { + 2: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1010: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x1020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 409 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [4] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: #......!........ + Hex: 23 00 00 00 00 00 00 21 e0 2e 02 00 9a 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 00 08 00 00 89 10 92 00 00 00 00 00 80 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 410 0x0023: (ControlPoint3SuperClassUnknown: Point3 List, (0x4b4b1001, 0x00000000), 0x00009005, Standard Controllers (Autodesk)) [3] { + References 0x2034: PARSED { + 2: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1010: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x1020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 411 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [4] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: $......!........ + Hex: 24 00 00 00 00 00 00 21 e0 2e 02 00 9c 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 00 08 00 00 89 10 92 00 00 00 00 00 80 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 412 0x0024: (ControlPoint4SuperClassUnknown: Point4 List, (0x4b4b1005, 0x00000000), 0x00009012, Standard Controllers (Autodesk)) [3] { + References 0x2034: PARSED { + 2: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1010: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x1020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 413 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [4] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: %......!........ + Hex: 25 00 00 00 00 00 00 21 e0 2e 02 00 9e 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 00 08 00 00 89 10 92 00 00 00 00 00 80 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 414 0x0025: (ControlPositionSuperClassUnknown: Position List, (0x4b4b1002, 0x00000000), 0x0000900b, Standard Controllers (Autodesk)) [3] { + References 0x2034: PARSED { + 2: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1010: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x1020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 415 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [4] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: &......!........ + Hex: 26 00 00 00 00 00 00 21 e0 2e 02 00 a0 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 00 08 00 00 89 10 92 00 00 00 00 00 80 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 416 0x0026: (ControlRotationSuperClassUnknown: Rotation List, (0x4b4b1003, 0x00000000), 0x0000900c, Standard Controllers (Autodesk)) [3] { + References 0x2034: PARSED { + 2: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1010: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x1020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 417 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [4] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: '......!........ + Hex: 27 00 00 00 00 00 00 21 e0 2e 02 00 a2 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 00 08 00 00 89 10 92 00 00 00 00 00 80 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 418 0x0027: (ControlScaleSuperClassUnknown: Scale List, (0x4b4b1004, 0x00000000), 0x0000900d, Standard Controllers (Autodesk)) [3] { + References 0x2034: PARSED { + 2: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1010: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x1020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 419 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [4] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: (......!........ + Hex: 28 00 00 00 00 00 00 21 e0 2e 02 00 a4 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 00 08 00 00 89 10 92 00 00 00 00 00 80 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 01 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[3] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 420 0x0028: (ControlMasterBlockSuperClassUnknown: Block Control, (0x4b4b1015, 0x00000000), 0x00009011, Standard Controllers (Autodesk)) [3] { + References 0x2034: PARSED { + 2: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1010: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x1020: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x2535: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 421 0x0021: (TrackViewNode: TVNode, (0x8d73b8aa, 0x90f2ee71), 0x00000200, Builtin) [0] { + References 0x2034: PARSED VIRTUAL { + 0: (Float List, (0x4b4b1000, 0x00000000)) + 1: (Point3 List, (0x4b4b1001, 0x00000000)) + 2: (Point4 List, (0x4b4b1005, 0x00000000)) + 3: (Position List, (0x4b4b1002, 0x00000000)) + 4: (Rotation List, (0x4b4b1003, 0x00000000)) + 5: (Scale List, (0x4b4b1004, 0x00000000)) + 6: (Block Control, (0x4b4b1015, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + 0: (Float List, (0x4b4b1000, 0x00000000)) (Float, (0x4b4b1000, 0x00000000), 1) + 1: (Point3 List, (0x4b4b1001, 0x00000000)) (Point3, (0x4b4b1001, 0x00000000), 1) + 2: (Point4 List, (0x4b4b1005, 0x00000000)) (Point4, (0x4b4b1005, 0x00000000), 1) + 3: (Position List, (0x4b4b1002, 0x00000000)) (Position, (0x4b4b1002, 0x00000000), 1) + 4: (Rotation List, (0x4b4b1003, 0x00000000)) (Rotation, (0x4b4b1003, 0x00000000), 1) + 5: (Scale List, (0x4b4b1004, 0x00000000)) (Scale, (0x4b4b1004, 0x00000000), 1) + 6: (Block Control, (0x4b4b1015, 0x00000000)) (Block Control, (0x4b4b1015, 0x00000000), 1) } + 422 0x0029: (ControlFloatSuperClassUnknown: Block Manager Wrapper, (0x1f8c3646, 0x11793bed), 0x00009003, Block Manager Utility (Autodesk)) [1] { + Orphan[0] 0x0001: (StorageContainer) [1] { + 0 0x0010: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 423 0x0021: (TrackViewNode: TVNode, (0x8d73b8aa, 0x90f2ee71), 0x00000200, Builtin) [0] { + References 0x2034: PARSED VIRTUAL { + 0: (Block Manager Wrapper, (0x1f8c3646, 0x11793bed)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Empty 0x0140 + 0: (Block Manager Wrapper, (0x1f8c3646, 0x11793bed)) (Block Manager Wrapper, (0x1f8c3646, 0x11793bed), 1) } + 424 0x002a: (ControlFloatSuperClassUnknown: Propagation Manager Wrapper, (0x5a1b661e, 0x7620792b), 0x00009003, Propagation Manager Utility (Autodesk)) [1] { + Orphan[0] 0x0001: (StorageContainer) [1] { + 0 0x0010: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } } + 425 0x0021: (TrackViewNode: TVNode, (0x8d73b8aa, 0x90f2ee71), 0x00000200, Builtin) [0] { + References 0x2034: PARSED VIRTUAL { + 0: (Propagation Manager Wrapper, (0x5a1b661e, 0x7620792b)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Empty 0x0140 + 0: (Propagation Manager Wrapper, (0x5a1b661e, 0x7620792b)) (Propagation Manager Wrapper, (0x5a1b661e, 0x7620792b), 1) } + 426 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [5] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: +......!........ + Hex: 2b 00 00 00 00 00 00 21 e0 2e 03 00 ab 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 0e 08 00 00 00 10 81 00 00 00 00 00 00 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 01 00 0e 08 00 00 00 10 81 00 00 00 00 00 00 00 00 00 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 0e 08 00 00 00 10 81 00 00 00 00 00 00 00 00 00 00 } + Orphan[4] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 427 0x002b: (ControlFloatSuperClassUnknown: Scene Effect Loader, (0x368d1139, 0xf4044794), 0x00009003, Scene Effect Manager (Autodesk)) [3] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0400: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x0410: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x0420: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 428 0x0021: (TrackViewNode: TVNode, (0x8d73b8aa, 0x90f2ee71), 0x00000200, Builtin) [0] { + References 0x2034: PARSED VIRTUAL { + 0: (Scene Effect Loader, (0x368d1139, 0xf4044794)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Empty 0x0140 + Empty 0x0150 + 0: (Scene Effect Loader, (0x368d1139, 0xf4044794)) (Scene Effect Loader, (0x368d1139, 0xf4044794), 1) } + 429 0x002c: (ReferenceMakerUnknown: Reaction Manager, (0x294a389c, 0x087906d7), 0x00000100, Change Reaction Controller (Autodesk)) [0] { } + 430 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [18] { + Orphan[0] 0x000b: (StorageRaw) { + Size: 24 + String: 0.%(&#Z&`......!........ + Hex: 30 0b 25 28 26 23 5a 26 60 11 00 00 00 00 00 21 e0 2e 10 00 af 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ..............@.... + Hex: 00 00 01 00 00 00 00 80 82 00 00 00 00 00 40 00 00 00 00 } + Orphan[2] 0x000e: (StorageRaw) { + Size: 38 + String: ...................@....XX UNNAMED XX. + Hex: 01 00 08 08 00 00 00 90 80 00 00 00 00 00 00 01 00 00 00 40 0e 00 00 00 58 58 20 55 4e 4e 41 4d 45 44 20 58 58 00 } + Orphan[3] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 02 00 08 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[4] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 04 00 01 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[5] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 03 00 01 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[6] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0e 00 04 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[7] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 07 00 12 08 00 00 00 93 81 08 00 00 00 00 00 00 00 00 00 } + Orphan[8] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 08 00 01 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[9] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0a 00 01 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[10] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 06 00 01 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[11] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 05 00 01 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[12] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 09 00 04 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[13] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0b 00 08 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[14] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0c 00 08 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[15] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0d 00 08 08 00 00 00 90 80 00 00 00 00 00 00 00 00 00 00 } + Orphan[16] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 0f 00 04 08 00 00 00 90 82 00 00 00 00 00 00 00 00 00 00 } + Orphan[17] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 431 0x002d: (CustAttribSuperClassUnknown: ParameterCollectorCA, (0x28250b30, 0x265a2326), 0x00001160, ParameterEditor (Autodesk)) [1] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0100: (StorageContainer) [2] { + 0 0x0110: (StorageRaw) { + Size: 4 + String: e... + Hex: 65 00 00 00 + Int: 101 + Float: 1.41531e-43 } + 1 0x0120: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 432 0x0003: (ReferenceMakerUnknown: CustAttribContainer, (0x5ddb3626, 0x23b708db), 0x00000100, Custom Attribute Container (Autodesk)) [2] { + References 0x2034: PARSED { + 0: (ParameterCollectorCA, (0x28250b30, 0x265a2326)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1030: (StorageRaw) { + Size: 4 + String: .... + Hex: b1 01 00 00 + Int: 433 + Float: 6.06762e-43 } + Orphan[1] 0x1040: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 433 0x0021: (TrackViewNode: TVNode, (0x8d73b8aa, 0x90f2ee71), 0x00000200, Builtin) [0] { + Unknown 0x21B0: (StorageRaw) { + Size: 10 + String: ......... + Hex: 20 10 0a 00 00 00 b0 01 00 00 } + Empty 0x0140 + Empty 0x0150 } + 434 0x002e: (UserDataTypeSuperClassUnknown: , (0x4a0c66e1, 0x01513165), 0x00000b60, Bitmap Proxies (Autodesk)) [5] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0110: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x0120: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[2] 0x0130: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } + Orphan[3] 0x0140: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[4] 0x0200: (StorageRaw) { + Size: 0 + String: + Hex: } } + 435 0x002f: (UserTypeSuperClassUnknown: SceneAppData Latch, (0x0c6f6387, 0x2c1a0a7b), 0x0000900f, Builtin) [0] { + References 0x2034: PARSED { + 0: (, (0x4a0c66e1, 0x01513165)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } } + 436 0x0021: (TrackViewNode: TVNode, (0x8d73b8aa, 0x90f2ee71), 0x00000200, Builtin) [0] { + References 0x2034: PARSED VIRTUAL { + 0: (SceneAppData Latch, (0x0c6f6387, 0x2c1a0a7b)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Empty 0x0140 + Empty 0x0150 + 0: (SceneAppData Latch, (0x0c6f6387, 0x2c1a0a7b)) (, (0x4a0c66e1, 0x01513165), 1) } + 437 0x0030: (UserDataTypeSuperClassUnknown: BitmapPagerData, (0x5bf94f11, 0x68c22d6f), 0x00000b60, Standard Bitmap Storages and Filters (Autodesk)) [4] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x0110: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[1] 0x0120: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[2] 0x0130: (StorageRaw) { + Size: 4 + String: ...> + Hex: 00 00 80 3e + Int: 1048576000 + Float: 0.25 } + Orphan[3] 0x0140: (StorageRaw) { + Size: 4 + String: ...= + Hex: cd cc cc 3d + Int: 1036831949 + Float: 0.1 } } + 438 0x002f: (UserTypeSuperClassUnknown: SceneAppData Latch, (0x0c6f6387, 0x2c1a0a7b), 0x0000900f, Builtin) [0] { + References 0x2034: PARSED { + 0: (BitmapPagerData, (0x5bf94f11, 0x68c22d6f)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } } + 439 0x0021: (TrackViewNode: TVNode, (0x8d73b8aa, 0x90f2ee71), 0x00000200, Builtin) [0] { + References 0x2034: PARSED VIRTUAL { + 0: (SceneAppData Latch, (0x0c6f6387, 0x2c1a0a7b)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Empty 0x0140 + Empty 0x0150 + 0: (SceneAppData Latch, (0x0c6f6387, 0x2c1a0a7b)) (BitmapPagerData, (0x5bf94f11, 0x68c22d6f), 1) } + 440 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [3] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: 1......!........ + Hex: 31 00 00 00 00 00 00 21 e0 2e 01 00 b9 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ......H............ + Hex: 00 00 12 08 00 00 48 10 81 00 00 00 00 00 00 00 00 00 00 } + Orphan[2] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 441 0x0031: (UserTypeSuperClassUnknown: MasterLayerControlManager, (0x0f4871a5, 0x781f1430), 0x0000900f, Standard Controllers (Autodesk)) [7] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1001: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x1002: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[2] 0x1003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[3] 0x1004: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[4] 0x1005: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[5] 0x1006: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[6] 0x1007: (StorageRaw) { + Size: 4 + String: d... + Hex: 64 00 00 00 + Int: 100 + Float: 1.4013e-43 } } + 442 0x0000: (ParamBlock2SuperClassUnknown: ParamBlock2, (0x00000082, 0x00000000), 0x00000082, Builtin) [3] { + Orphan[0] 0x0009: (StorageRaw) { + Size: 16 + String: 2......!........ + Hex: 32 00 00 00 00 00 00 21 e0 2e 01 00 bb 01 00 00 } + Orphan[1] 0x000e: (StorageRaw) { + Size: 19 + String: ................... + Hex: 00 00 12 08 00 00 00 10 81 00 00 00 00 00 00 00 00 00 00 } + Orphan[2] 0x000c: (StorageRaw) { + Size: 10 + String: .......... + Hex: 01 00 00 00 01 00 00 00 00 00 } } + 443 0x0032: (UserTypeSuperClassUnknown: Max Mixer Clip, (0x57a52b8c, 0x30935afc), 0x0000900f, Biped Controller (Autodesk)) [0] { + References 0x2034: PARSED { + 0: (ParamBlock2, (0x00000082, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } } + 444 0x0021: (TrackViewNode: TVNode, (0x8d73b8aa, 0x90f2ee71), 0x00000200, Builtin) [0] { + References 0x2034: PARSED VIRTUAL { + 0: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 1: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 2: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 3: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 4: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 5: (Reaction Manager, (0x294a389c, 0x087906d7)) + 6: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 7: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 8: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 9: (MasterLayerControlManager, (0x0f4871a5, 0x781f1430)) + 10: (Max Mixer Clip, (0x57a52b8c, 0x30935afc)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Empty 0x0140 + 0: (TVNode, (0x8d73b8aa, 0x90f2ee71)) (Video Post, (0x482b8d30, 0xb72c8511), 0) + 1: (TVNode, (0x8d73b8aa, 0x90f2ee71)) (Global Tracks, (0xb27e9f2a, 0x73fad370), 0) + 2: (TVNode, (0x8d73b8aa, 0x90f2ee71)) (Block Manager Wrapper TVNode, (0x1f8c3646, 0x11793bed), 0) + 3: (TVNode, (0x8d73b8aa, 0x90f2ee71)) (Propagation Manager Wrapper TVNode, (0x5a1b661e, 0x7620792b), 0) + 4: (TVNode, (0x8d73b8aa, 0x90f2ee71)) (Scene Effects, (0x368d1139, 0xf4044794), 0) + 5: (Reaction Manager, (0x294a389c, 0x087906d7)) (Reaction Manager, (0x294a389c, 0x087906d7), 1) + 6: (TVNode, (0x8d73b8aa, 0x90f2ee71)) (Parameter Collector, (0x39aa5b4d, 0x74c1157e), 0) + 7: (TVNode, (0x8d73b8aa, 0x90f2ee71)) (, (0x4a0c66e1, 0x01513165), 0) + 8: (TVNode, (0x8d73b8aa, 0x90f2ee71)) (BitmapPagerData, (0x5bf94f11, 0x68c22d6f), 0) + 9: (MasterLayerControlManager, (0x0f4871a5, 0x781f1430)) (Anim Layer Control Manager, (0x0f4871a5, 0x781f1430), 1) + 10: (Max Mixer Clip, (0x57a52b8c, 0x30935afc)) (Max MotionClip Manager, (0x57a52b8c, 0x30935afc), 1) } + 445 0x0033: (GridReferenceSuperClassUnknown: Grid Reference, (0x00000001, 0x00000000), 0xfffffe00, Builtin) [0] { + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } } + 446 0x0034: (RenderEffectSuperClassUnknown: RenderEffects, (0x17356912, 0x00000000), 0x00001090, Builtin) [2] { + Orphan[0] 0x1100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[1] 0x1110: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } } + 447 0x0006: (ParamBlockSuperClassUnknown: ParamBlock, (0x00000008, 0x00000000), 0x00000008, Builtin) [7] { + Orphan[0] 0x0001: (StorageRaw) { + Size: 4 + String: .... + Hex: 05 00 00 00 + Int: 5 + Float: 7.00649e-45 } + Orphan[1] 0x0005: (StorageRaw) { + Size: 2 + String: .. + Hex: 02 00 } + Orphan[2] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0101: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 02 00 00 + Int: 512 + Float: 7.17465e-43 } } + Orphan[3] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...@ + Hex: 00 00 80 40 + Int: 1082130432 + Float: 4 } } + Orphan[4] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0100: (StorageRaw) { + Size: 4 + String: ...? + Hex: 00 00 80 3f + Int: 1065353216 + Float: 1 } } + Orphan[5] 0x0002: (StorageContainer) [3] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 03 00 00 00 + Int: 3 + Float: 4.2039e-45 } + 1 0x0004: (StorageRaw) { + Size: 0 + String: + Hex: } + 2 0x0101: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + Orphan[6] 0x0002: (StorageContainer) [2] { + 0 0x0003: (StorageRaw) { + Size: 4 + String: .... + Hex: 04 00 00 00 + Int: 4 + Float: 5.60519e-45 } + 1 0x0104: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } + 448 0x0035: (ShadowTypeSuperClassUnknown: Shadow Map, (0x00000100, 0x00000000), 0x000010d0, Default Scanline Renderer (Autodesk)) [0] { + References 0x2034: PARSED { + 0: (ParamBlock, (0x00000008, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } } + 449 0x0036: (ReferenceTargetUnknown: Layer Manager, (0x0d7374fc, 0x51ff028e), 0x00000200, Builtin) [3] { + References 0x2034: PARSED { + 0: (Base Layer, (0x7e9858fe, 0x1dba1df0)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x1500: (StorageRaw) { + Size: 4 + String: .... + Hex: 01 00 00 00 + Int: 1 + Float: 1.4013e-45 } + Orphan[1] 0x1600: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } + Orphan[2] 0x1700: (StorageRaw) { + Size: 1 + String: 0 + Hex: 30 } } + 450 0x0037: (ReferenceMakerUnknown: TrackSetList, (0x2cf03595, 0x00000000), 0x00000100, Builtin) [1] { + Orphan[0] 0x0100: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } + 451 0x0038: (SceneImpl: Scene, (0x00002222, 0x00000000), 0x00000100, Builtin) [6] { + References 0x2034: PARSED VIRTUAL { + 0: (Material Editor, (0x00000c80, 0x00000000)) + 1: (MtlBaseLib, (0x00003333, 0x00000000)) + 2: (ProSound, (0x476fa9de, 0x5b918e4a)) + 3: (RootNode, (0x00000002, 0x00000000)) + 4: (RenderEnvironment, (0xee448b23, 0x00000000)) + 5: (NamedSelSetList, (0x00008d52, 0x00000000)) + 6: (TVNode, (0x8d73b8aa, 0x90f2ee71)) + 7: (Grid Reference, (0x00000001, 0x00000000)) + 8: (RenderEffects, (0x17356912, 0x00000000)) + 9: (Shadow Map, (0x00000100, 0x00000000)) + 10: (Layer Manager, (0x0d7374fc, 0x51ff028e)) + 11: (TrackSetList, (0x2cf03595, 0x00000000)) } + 0x204B Equals 0x2E (46): (CStorageValue) { 46 } + Orphan[0] 0x8500: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[1] 0x8530: (StorageRaw) { + Size: 4 + String: .... + Hex: 02 00 00 00 + Int: 2 + Float: 2.8026e-45 } + Orphan[2] 0x8510: (StorageRaw) { + Size: 4 + String: .... + Hex: c0 12 00 00 + Int: 4800 + Float: 6.72623e-42 } + Orphan[3] 0x8520: (StorageRaw) { + Size: 8 + String: .......? + Hex: 05 00 00 00 00 00 80 3f } + Orphan[4] 0x9000: (StorageRaw) { + Size: 4 + String: >... + Hex: 3e 00 00 00 + Int: 62 + Float: 8.68805e-44 } + Orphan[5] 0x9600: (StorageRaw) { + Size: 4 + String: .... + Hex: 00 00 00 00 + Int: 0 + Float: 0 } } } } + + +------------------ +(program exited with code: 0) +Press return to continue + diff --git a/code/nel/tools/3d/pipeline_max_dump/scene_graph_5.txt b/code/nel/tools/3d/pipeline_max_dump/scene_graph_5.txt new file mode 100644 index 000000000..e206e14fc --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_dump/scene_graph_5.txt @@ -0,0 +1,172 @@ +Scene Graph +Version R3 + + Root Node [8] { +0: TR_HOF_civil01_armpad [0] { + Object: OSM Derived } +1: TR_HOF_civil01_gilet [0] { + Object: OSM Derived } +2: TR_HOF_Civil01_bottes [0] { + Object: OSM Derived } +3: TR_HOF_civil01_pantabottes [0] { + Object: OSM Derived } +4: Bip01 [3] { + Object: Biped Object + 0: Bip01 Footsteps [0] { + Object: Biped Object } + 1: Bip01 Pelvis [3] { + Object: Biped Object + 0: Bip01 Spine [1] { + Object: Biped Object + 0: Bip01 Spine1 [1] { + Object: Biped Object + 0: Bip01 Spine2 [1] { + Object: Biped Object + 0: Bip01 Neck [3] { + Object: Biped Object + 0: Bip01 Head [2] { + Object: Biped Object + 0: Bip01 Head [0] { + Object: Dummy } + 1: Bip01 hair1 [1] { + Object: Biped Object + 0: Bip01 hair11 [1] { + Object: Biped Object + 0: Bip01 hair1 [0] { + Object: Dummy } } } } + 1: Bip01 L Clavicle [1] { + Object: Biped Object + 0: Bip01 L UpperArm [1] { + Object: Biped Object + 0: Bip01 L Forearm [2] { + Object: Biped Object + 0: Bip01 L Hand [6] { + Object: Biped Object + 0: Bip01 L Finger0 [1] { + Object: Biped Object + 0: Bip01 L Finger01 [1] { + Object: Biped Object + 0: Bip01 L Finger02 [1] { + Object: Biped Object + 0: Bip01 L Finger0 [0] { + Object: Dummy } } } } + 1: Bip01 L Finger1 [1] { + Object: Biped Object + 0: Bip01 L Finger11 [1] { + Object: Biped Object + 0: Bip01 L Finger12 [1] { + Object: Biped Object + 0: Bip01 L Finger1 [0] { + Object: Dummy } } } } + 2: Bip01 L Finger2 [1] { + Object: Biped Object + 0: Bip01 L Finger21 [1] { + Object: Biped Object + 0: Bip01 L Finger22 [1] { + Object: Biped Object + 0: Bip01 L Finger2 [0] { + Object: Dummy } } } } + 3: Bip01 L Finger3 [1] { + Object: Biped Object + 0: Bip01 L Finger31 [1] { + Object: Biped Object + 0: Bip01 L Finger32 [1] { + Object: Biped Object + 0: Bip01 L Finger3 [0] { + Object: Dummy } } } } + 4: Bip01 L Finger4 [1] { + Object: Biped Object + 0: Bip01 L Finger41 [1] { + Object: Biped Object + 0: Bip01 L Finger42 [1] { + Object: Biped Object + 0: Bip01 L Finger4 [0] { + Object: Dummy } } } } + 5: box_arme_gauche [0] { + Object: Editable Mesh } } + 1: Box_bouclier [0] { + Object: Editable Mesh } } } } + 2: Bip01 R Clavicle [1] { + Object: Biped Object + 0: Bip01 R UpperArm [1] { + Object: Biped Object + 0: Bip01 R Forearm [1] { + Object: Biped Object + 0: Bip01 R Hand [6] { + Object: Biped Object + 0: Bip01 R Finger0 [1] { + Object: Biped Object + 0: Bip01 R Finger01 [1] { + Object: Biped Object + 0: Bip01 R Finger02 [1] { + Object: Biped Object + 0: Bip01 R Finger0R [0] { + Object: Dummy } } } } + 1: Bip01 R Finger1 [1] { + Object: Biped Object + 0: Bip01 R Finger11 [1] { + Object: Biped Object + 0: Bip01 R Finger12 [1] { + Object: Biped Object + 0: Bip01 R Finger1R [0] { + Object: Dummy } } } } + 2: Bip01 R Finger2 [1] { + Object: Biped Object + 0: Bip01 R Finger21 [1] { + Object: Biped Object + 0: Bip01 R Finger22 [1] { + Object: Biped Object + 0: Bip01 R Finger2R [0] { + Object: Dummy } } } } + 3: Bip01 R Finger3 [1] { + Object: Biped Object + 0: Bip01 R Finger31 [1] { + Object: Biped Object + 0: Bip01 R Finger32 [1] { + Object: Biped Object + 0: Bip01 R Finger3R [0] { + Object: Dummy } } } } + 4: Bip01 R Finger4 [1] { + Object: Biped Object + 0: Bip01 R Finger41 [1] { + Object: Biped Object + 0: Bip01 R Finger42 [1] { + Object: Biped Object + 0: Bip01 R Finger4R [0] { + Object: Dummy } } } } + 5: box_arme [0] { + Object: Editable Mesh } } } } } } } } } + 1: Bip01 L Thigh [1] { + Object: Biped Object + 0: Bip01 L Calf [1] { + Object: Biped Object + 0: Bip01 L Foot [1] { + Object: Biped Object + 0: Bip01 L Toe0 [1] { + Object: Biped Object + 0: Bip01 L Toe0 [0] { + Object: Dummy } } } } } + 2: Bip01 R Thigh [1] { + Object: Biped Object + 0: Bip01 R Calf [1] { + Object: Biped Object + 0: Bip01 R Foot [1] { + Object: Biped Object + 0: Bip01 R Toe0 [1] { + Object: Biped Object + 0: Bip01 R Toe0 [0] { + Object: Dummy } } } } } } + 2: name [0] { + Object: Dummy } } +5: visage01 [0] { + Object: OSM Derived } +6: Object02 [0] { + Object: OSM Derived } +7: TR_HOF_underwear_hand [0] { + Object: OSM Derived } } + + +------------------ +(program exited with code: 0) +Press return to continue + diff --git a/code/nel/tools/3d/pipeline_max_rewrite_assets/CMakeLists.txt b/code/nel/tools/3d/pipeline_max_rewrite_assets/CMakeLists.txt new file mode 100644 index 000000000..4aa8a6652 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_rewrite_assets/CMakeLists.txt @@ -0,0 +1,36 @@ + +FIND_PACKAGE(LIBGSF) + +IF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) + MESSAGE(FATAL_ERROR "LIBGSF not found!") +ENDIF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) + +FIND_PACKAGE(GLIB2) + +if (NOT GLIB2_FOUND) + MESSAGE(FATAL_ERROR "GLIB2 not found!") +ENDIF (NOT GLIB2_FOUND) + +INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${LIBGSF_INCLUDE_DIR}) + +FILE(GLOB SRCS *.cpp) +FILE(GLOB HDRS *.h) + +ADD_EXECUTABLE(pipeline_max_rewrite_assets + ${SRCS} + ${HDRS} + ) + +TARGET_LINK_LIBRARIES(pipeline_max_rewrite_assets + ${LIBGSF_LIBRARIES} + ${GLIB2_LIBRARIES} + pipeline_max + nelmisc +) + +NL_DEFAULT_PROPS(pipeline_max_dump "NeL, Tools, 3D: Pipeline Max Rewrite Assets") +NL_ADD_RUNTIME_FLAGS(pipeline_max_rewrite_assets) + +INSTALL(TARGETS pipeline_max_rewrite_assets RUNTIME DESTINATION bin COMPONENT toolsmisc) + diff --git a/code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp b/code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp new file mode 100644 index 000000000..4a7aca040 --- /dev/null +++ b/code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp @@ -0,0 +1,1518 @@ +/* + * Copyright (C) 2012 by Jan Boon (Kaetemi) + * + * This file is part of RYZOM CORE PIPELINE. + * RYZOM CORE PIPELINE is free software: you can redistribute it + * and/or modify it under the terms of the GNU Affero General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * RYZOM CORE PIPELINE is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with RYZOM CORE PIPELINE. If not, see + * . + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include "nel/misc/dynloadlib.h" +#include "nel/misc/debug.h" +#include "nel/misc/path.h" +#include "nel/misc/algo.h" +#include "nel/misc/file.h" +#include "nel/misc/mem_stream.h" + +#include "../max/storage_stream.h" +#include "../max/storage_object.h" +#include "../max/dll_directory.h" +#include "../max/class_directory_3.h" +#include "../max/class_data.h" +#include "../max/config.h" +#include "../max/scene.h" +#include "../max/scene_class_registry.h" + +// Testing +#include "../max/builtin/builtin.h" +#include "../max/update1/update1.h" +#include "../max/epoly/epoly.h" + +#include "../max/builtin/storage/app_data.h" +#include "../max/builtin/storage/geom_buffers.h" +#include "../max/builtin/scene_impl.h" +#include "../max/builtin/i_node.h" +#include "../max/update1/editable_mesh.h" +#include "../max/epoly/editable_poly.h" + +#include +using namespace std; +using namespace boost::algorithm; + +using namespace PIPELINE::MAX; +using namespace PIPELINE::MAX::BUILTIN; +using namespace PIPELINE::MAX::BUILTIN::STORAGE; +using namespace PIPELINE::MAX::UPDATE1; +using namespace PIPELINE::MAX::EPOLY; + +CSceneClassRegistry SceneClassRegistry; + +// Never enable this +bool DebugParser = false; + +bool DisplayStream = false; +bool DisplayReplaces = false; + +bool ReplacePaths = true; +bool ReplaceMapExt = true; + +bool WriteModified = true; +bool WriteDummy = false; + +bool HaltOnIssue = false; + +const char *DatabaseDirectory = "w:\\database\\"; +const char *LinuxDatabaseDirectory = "/mnt/tsurugi/ryzom-assets/database/"; +bool RunningLinux = true; + +//const char *SrcDirectoryRecursive = "w:\\database\\interfaces\\"; +//const char *SrcDirectoryRecursive = "w:\\database\\"; +//const char *SrcDirectoryRecursive = "w:\\database\\stuff\\fyros\\city\\newpositionville\\"; +const char *SrcDirectoryRecursiveInit = "w:\\database\\"; +//const char *SrcDirectoryRecursiveHandle = "w:\\database\\stuff\\generique\\agents\\accessories\\"; +const char *SrcDirectoryRecursiveHandle = "w:\\database\\landscape\\ligo\\primes_racines\\max\\"; + +bool UseFallbackTga = false; +const char *FallbackTga = "w:\\database\\stuff\\lod_actors\\texture_lod\\trame.png"; + +std::set MissingFiles; +std::map KnownFileCache; + +std::string nativeDatabasePath(const std::string &standardizedPath) +{ + if (RunningLinux) + { + std::string result = standardizedPath; + NLMISC::strFindReplace(result, DatabaseDirectory, LinuxDatabaseDirectory); + while (NLMISC::strFindReplace(result, "\\", "/")) { } + return result; + } + return standardizedPath; +} + +std::string unnativeDatabasePath(const std::string &nativizedPath) +{ + if (RunningLinux) + { + std::string result = nativizedPath; + NLMISC::strFindReplace(result, LinuxDatabaseDirectory, DatabaseDirectory); + while (NLMISC::strFindReplace(result, "/", "\\")) { } + return result; + } + return nativizedPath; +} + +// COPY FROM PIPELINE_SERVICE.CPP WITH BACKSLASHES INSTEAD OF FORWARD SLASHES +std::string standardizePath(const std::string &path, bool addFinalSlash) +{ + // check empty path + if (path.empty()) + return ""; + + std::string newPath; + newPath.resize(path.size() + 1); + + std::string::size_type j = 0; + for (std::string::size_type i = 0; i < path.size(); ++i) + { + if (path[i] == '\\' || path[i] == '/') + { + if (j <= 1 && path[i] == '\\') + { + // for windows network + newPath[j] = '\\'; + ++j; + } + else if (j == 0 || newPath[j - 1] != '\\') + { + newPath[j] = '\\'; + ++j; + } + } + else + { + newPath[j] = path[i]; + ++j; + } + } + newPath[j] = 0; + newPath.resize(j); + + // add terminal slash + if (addFinalSlash && newPath[newPath.size()-1] != '\\') + newPath += '\\'; + + return newPath; +} + +inline bool isCharacter(char c0) +{ + uint8 c = *(uint8 *)(void *)(&c0); + return (32 <= c /*&& c <= 127) || (161 <= c*/ /*&& c <= 255*/); +} + +inline char stripFrenchLocale(char c0) +{ + uint8 c = *(uint8 *)(void *)(&c0); + if (192 <= c && c <= 197) return 'a'; + if (200 <= c && c <= 203) return 'e'; + if (204 <= c && c <= 207) return 'i'; + if (210 <= c && c <= 214) return 'o'; + if (217 <= c && c <= 220) return 'u'; + if (c == 221) return 'y'; + if (224 <= c && c <= 229) return 'a'; + if (232 <= c && c <= 235) return 'e'; + if (236 <= c && c <= 239) return 'i'; + if (242 <= c && c <= 246) return 'o'; + if (249 <= c && c <= 252) return 'u'; + if (c == 253 || c == 255) return 'y'; + return c0; +} + +std::string rewritePath(const std::string &path, const std::string &databaseDirectory) +{ + static std::set fileNameCache; + + std::string stdPath = standardizePath(path, false); + for (std::string::size_type i = 0; i < stdPath.size(); ++i) + stdPath[i] = stripFrenchLocale(stdPath[i]); + stdPath = NLMISC::toLower(stdPath); + + // TODO: remove ./stuff/caravan/agents/_textures/actors/trame.png + + NLMISC::strFindReplace(stdPath, "w:\\database\\", databaseDirectory); + NLMISC::strFindReplace(stdPath, "\\\\amiga\\3d\\database\\", databaseDirectory); + NLMISC::strFindReplace(stdPath, "ma_hom_armor_01", "ma_hom_armor01"); + NLMISC::strFindReplace(stdPath, "ma_hof_armor_01", "ma_hof_armor01"); + NLMISC::strFindReplace(stdPath, "ma_hom_armor_00", "ma_hom_armor00"); + NLMISC::strFindReplace(stdPath, "ma_hof_armor_00", "ma_hof_armor00"); + NLMISC::strFindReplace(stdPath, "zo_hom_armor_00", "zo_hom_armor00"); + NLMISC::strFindReplace(stdPath, "zo_hof_armor_00", "zo_hof_armor00"); + NLMISC::strFindReplace(stdPath, "fy_hof_cheveux_shave01", "fy_hof_cheveux_shave"); + + NLMISC::strFindReplace(stdPath, "matis\\agents\\_textures\\actors\\ma_hom_underwear_avtbras", "tryker\\agents\\_textures\\actors\\tr_hom_underwear_avtbras"); + NLMISC::strFindReplace(stdPath, "matis\\agents\\_textures\\actors\\ma_hom_underwear_epaule", "tryker\\agents\\_textures\\actors\\tr_hom_underwear_epaule"); + NLMISC::strFindReplace(stdPath, "matis\\agents\\_textures\\actors\\ma_hom_underwear_hand-downside", "tryker\\agents\\_textures\\actors\\tr_hom_underwear_hand-downside"); + NLMISC::strFindReplace(stdPath, "matis\\agents\\_textures\\actors\\ma_hom_underwear_hand-upside", "tryker\\agents\\_textures\\actors\\tr_hom_underwear_hand-upside"); + NLMISC::strFindReplace(stdPath, "matis\\agents\\_textures\\actors\\ma_hom_underwear_molet", "tryker\\agents\\_textures\\actors\\tr_hom_underwear_molet"); + NLMISC::strFindReplace(stdPath, "matis\\agents\\_textures\\actors\\ma_hof_underwear_hand-downside", "tryker\\agents\\_textures\\actors\\tr_hof_underwear_hand-downside"); + NLMISC::strFindReplace(stdPath, "matis\\agents\\_textures\\actors\\ma_hof_underwear_hand-upside", "tryker\\agents\\_textures\\actors\\tr_hof_underwear_hand-upside"); + + NLMISC::strFindReplace(stdPath, "tr_hof_underwear_torso", "tr_hof_underwear_torse"); + NLMISC::strFindReplace(stdPath, "tr_hof_underwear_hand-", "tr_hof_underwear_hand_"); + + NLMISC::strFindReplace(stdPath, "fy_hom_armor00_avbras.", "fy_hom_armor00_avbras_c1."); + NLMISC::strFindReplace(stdPath, "fy_hom_armor00_bottes.", "fy_hom_armor00_bottes_c1."); + NLMISC::strFindReplace(stdPath, "fy_hom_armor00_bras.", "fy_hom_armor00_bras_c1."); + NLMISC::strFindReplace(stdPath, "fy_hom_armor00_cuissear.", "fy_hom_armor00_cuissear_c1."); + NLMISC::strFindReplace(stdPath, "fy_hom_armor00_cuisseav.", "fy_hom_armor00_cuisseav_c1."); + NLMISC::strFindReplace(stdPath, "fy_hom_armor00_dos.", "fy_hom_armor00_dos_c1."); + NLMISC::strFindReplace(stdPath, "fy_hom_armor00_hand-downside.", "fy_hom_armor00_hand-downside_c1."); + NLMISC::strFindReplace(stdPath, "fy_hom_armor00_hand-upside.", "fy_hom_armor00_hand-upside_c1."); + NLMISC::strFindReplace(stdPath, "fy_hom_armor00_pieds.", "fy_hom_armor00_pieds_c1."); + NLMISC::strFindReplace(stdPath, "fy_hom_armor00_torse.", "fy_hom_armor00_torse_c1."); + + NLMISC::strFindReplace(stdPath, "fy-hof-gilet02-dos", "fy_hof_gilet02_arriere_n"); + NLMISC::strFindReplace(stdPath, "fy-hof-pantalon02-arriere", "fy_hof_pantalon02_arriere_n"); + NLMISC::strFindReplace(stdPath, "fy-hof-pantalon02-avant", "fy_hof_pantalon02_avant_n"); + NLMISC::strFindReplace(stdPath, "fy-hom-blouson02-avantbras", "fy_hom_blouson02_avbras_n"); + NLMISC::strFindReplace(stdPath, "fy-hom-blouson02-bras", "fy_hom_blouson02_bras_n"); + NLMISC::strFindReplace(stdPath, "fy-hom-blouson02-dos", "fy_hom_blouson02_arriere_n"); + NLMISC::strFindReplace(stdPath, "fy-hom-blouson02-torse", "fy_hom_blouson02_avant_n"); + NLMISC::strFindReplace(stdPath, "fy-hom-pantalon02-mollet", "fy_hom_pantalon02_mollet_n"); + NLMISC::strFindReplace(stdPath, "fy-hom-shoes02", "fy_hom_shoes02_shoes_n"); + NLMISC::strFindReplace(stdPath, "fyhof-gilet02-torse", "fy_hof_gilet02_torse_n"); + + NLMISC::strFindReplace(stdPath, "ge_hom_armor02_armpad", "ge_hom_armor02_avbras"); + NLMISC::strFindReplace(stdPath, "ge_hom_armor02_bottes", "ge_hom_armor02_pied"); + NLMISC::strFindReplace(stdPath, "ge_hom_armor02_cuisse-arr", "ge_hom_armor02_cuisse_arr"); + NLMISC::strFindReplace(stdPath, "ge_hom_armor02_cuisse-avt", "ge_hom_armor02_cuisse_avt"); + NLMISC::strFindReplace(stdPath, "ge_hom_armor02_hand-down", "ge_hom_armor02_hand_down"); + NLMISC::strFindReplace(stdPath, "ge_hom_armor02_hand-up", "ge_hom_armor02_hand_up"); + NLMISC::strFindReplace(stdPath, "ge_hom_armor02_torse", "ge_hom_armor02_torso"); + + NLMISC::strFindReplace(stdPath, "fy_lovejail.", "fy_lovejail_su."); + NLMISC::strFindReplace(stdPath, "\\caissebonusaction.", "\\g_caissebonus."); + NLMISC::strFindReplace(stdPath, "\\sactoile.", "\\g_sactoile."); + NLMISC::strFindReplace(stdPath, "\\ge_mission_stele_kami0.", "\\ge_mission_stele_kami."); + NLMISC::strFindReplace(stdPath, "\\ge_mission_reward_karavan_bigshield.", "\\ge_mission_reward_karavan_bigshield_c1."); + + NLMISC::strFindReplace(stdPath, "\\tr_hom_underwear_cuisse_arr.", "\\tr_hom_underwear_cuisse-arr."); + NLMISC::strFindReplace(stdPath, "\\tr_hom_underwear_cuisse_avt.", "\\tr_hom_underwear_cuisse-avt."); + + NLMISC::strFindReplace(stdPath, "interfaces_visage", "visage_interface"); + + if (stdPath.find("\\trame.") != std::string::npos) + stdPath = standardizePath(databaseDirectory + "/stuff/lod_actors/texture_lod/trame.png", false); + if (stdPath.find("\\tr_hof_visage_c1.") != std::string::npos) + stdPath = standardizePath(databaseDirectory + "/stuff/tryker/agents/_textures/actors/tr_hof_visage_c1.png", false); + if (stdPath.find("\\tr_hof_visage_c2.") != std::string::npos) + stdPath = standardizePath(databaseDirectory + "/stuff/tryker/agents/_textures/actors/tr_hof_visage_c2.png", false); + if (stdPath.find("\\tr_hof_visage_c3.") != std::string::npos) + stdPath = standardizePath(databaseDirectory + "/stuff/tryker/agents/_textures/actors/tr_hof_visage_c3.png", false); + if (stdPath.find("\\ma_hof_cheveux_medium02.") != std::string::npos) + stdPath = standardizePath(databaseDirectory + "/stuff/matis/agents/_textures/actors/ma_hof_cheveux_medium02.png", false); + + /*if (stdPath.size() > path.size()) + { + nlwarning("Path size becomes too large: '%s' -> '%s'", path.c_str(), stdPath.c_str()); + return path; + }*/ + + if (NLMISC::CFile::getFilename(stdPath) == stdPath) + { + breakable + { + if (fileNameCache.find(stdPath) == fileNameCache.end() || KnownFileCache.find(stdPath) == KnownFileCache.end()) + { + if (stdPath[stdPath.size() - 3] == 't' && stdPath[stdPath.size() - 2] == 'g' && stdPath[stdPath.size() - 1] == 'a') + { + stdPath[stdPath.size() - 3] = 'p'; + stdPath[stdPath.size() - 2] = 'n'; + stdPath[stdPath.size() - 1] = 'g'; + if (fileNameCache.find(stdPath) != fileNameCache.end()) + break; + } + //#nlwarning("File name not known: '%s' ('%s')", path.c_str(), stdPath.c_str()); + // MissingFiles.insert(path); + return stdPath; + } + } + return stdPath; + } + else + { + if (stdPath.find(databaseDirectory) == std::string::npos) + { + if (stdPath[1] == ':' || (stdPath[0] == '\\' && stdPath[1] == '\\')) + { + if (KnownFileCache.find(NLMISC::CFile::getFilename(stdPath)) != KnownFileCache.end()) + return KnownFileCache[NLMISC::CFile::getFilename(stdPath)]; + + if (stdPath[stdPath.size() - 3] == 't' && stdPath[stdPath.size() - 2] == 'g' && stdPath[stdPath.size() - 1] == 'a') + { stdPath[stdPath.size() - 3] = 'p'; stdPath[stdPath.size() - 2] = 'n'; stdPath[stdPath.size() - 1] = 'g'; } + if (KnownFileCache.find(NLMISC::CFile::getFilename(stdPath)) != KnownFileCache.end()) + return KnownFileCache[NLMISC::CFile::getFilename(stdPath)]; + + if (stdPath[stdPath.size() - 3] == 'p' && stdPath[stdPath.size() - 2] == 'n' && stdPath[stdPath.size() - 1] == 'g') + { stdPath[stdPath.size() - 3] = 't'; stdPath[stdPath.size() - 2] = 'g'; stdPath[stdPath.size() - 1] = 'a'; } + if (KnownFileCache.find(NLMISC::CFile::getFilename(stdPath)) != KnownFileCache.end()) + return KnownFileCache[NLMISC::CFile::getFilename(stdPath)]; + + //#nlwarning("Path not in database: '%s' ('%s')", path.c_str(), stdPath.c_str()); + MissingFiles.insert(path); + return stdPath; + } + else + { + // invalid path, don't care too much + return stdPath; + } + } + + breakable + { + if (!NLMISC::CFile::fileExists(nativeDatabasePath(stdPath))) + { + if (stdPath[stdPath.size() - 3] == 't' && stdPath[stdPath.size() - 2] == 'g' && stdPath[stdPath.size() - 1] == 'a') + { + stdPath[stdPath.size() - 3] = 'p'; + stdPath[stdPath.size() - 2] = 'n'; + stdPath[stdPath.size() - 1] = 'g'; + if (NLMISC::CFile::fileExists(nativeDatabasePath(stdPath))) + break; + } + { + std::string stdPathVv2 = standardizePath(NLMISC::CFile::getPath(stdPath) + "/vv2/" + NLMISC::CFile::getFilename(stdPath), false); + bool vv2works = false; + if (NLMISC::CFile::fileExists(nativeDatabasePath(stdPathVv2))) + { + vv2works = true; + } + else + { + if (stdPathVv2[stdPathVv2.size() - 3] == 'p' && stdPathVv2[stdPathVv2.size() - 2] == 'n' && stdPathVv2[stdPathVv2.size() - 1] == 'g') + { + stdPathVv2[stdPathVv2.size() - 3] = 't'; + stdPathVv2[stdPathVv2.size() - 2] = 'g'; + stdPathVv2[stdPathVv2.size() - 1] = 'a'; + if (NLMISC::CFile::fileExists(nativeDatabasePath(stdPathVv2))) + { + vv2works = true; + } + } + } + if (vv2works) + { + // try with vv2 + /*if (stdPathVv2.size() > path.size()) + { + nlwarning("Path with vv2 size becomes too large: '%s' -> '%s'", path.c_str(), stdPathVv2.c_str()); + return stdPath; + } + else + {*/ + stdPath = stdPathVv2; + break; + //} + } + } + // try find + if (KnownFileCache.find(NLMISC::CFile::getFilename(stdPath)) != KnownFileCache.end()) + return KnownFileCache[NLMISC::CFile::getFilename(stdPath)]; + + if (stdPath[stdPath.size() - 3] == 't' && stdPath[stdPath.size() - 2] == 'g' && stdPath[stdPath.size() - 1] == 'a') + { stdPath[stdPath.size() - 3] = 'p'; stdPath[stdPath.size() - 2] = 'n'; stdPath[stdPath.size() - 1] = 'g'; } + if (KnownFileCache.find(NLMISC::CFile::getFilename(stdPath)) != KnownFileCache.end()) + return KnownFileCache[NLMISC::CFile::getFilename(stdPath)]; + + if (stdPath[stdPath.size() - 3] == 'p' && stdPath[stdPath.size() - 2] == 'n' && stdPath[stdPath.size() - 1] == 'g') + { stdPath[stdPath.size() - 3] = 't'; stdPath[stdPath.size() - 2] = 'g'; stdPath[stdPath.size() - 1] = 'a'; } + if (KnownFileCache.find(NLMISC::CFile::getFilename(stdPath)) != KnownFileCache.end()) + return KnownFileCache[NLMISC::CFile::getFilename(stdPath)]; + + //#nlwarning("Path file does not exist: '%s' ('%s')", path.c_str(), stdPath.c_str()); + MissingFiles.insert(path); + return stdPath; + } + } + } + + fileNameCache.insert(NLMISC::CFile::getFilename(stdPath)); + return stdPath; +} + +void doFileInitialize(const std::string &filePath) +{ + // nldebug("File: '%s'", filePath.c_str()); + // nldebug("Native: '%s'", nativeDatabasePath(filePath).c_str()); + + KnownFileCache[NLMISC::CFile::getFilename(filePath)] = standardizePath(filePath, false); +} + +// maxRewritePaths W:/database/interfaces/anims_max + +void doDirectoryInitialize(const std::string &directoryPath) +{ + nldebug("Directory: '%s'", directoryPath.c_str()); + + std::string dirPath = standardizePath(directoryPath, true); + std::vector dirContents; + + NLMISC::CPath::getPathContent(nativeDatabasePath(dirPath), false, true, true, dirContents); + + // nldebug("Native: '%s'", nativeDatabasePath(dirPath).c_str()); + // nldebug("Contents: %i", dirContents.size()); + + for (std::vector::iterator it = dirContents.begin(), end = dirContents.end(); it != end; ++it) + { + std::string subPath = standardizePath(unnativeDatabasePath(*it), false); + // nldebug("Path: '%s'", subPath.c_str()); + // nldebug("Native: '%s'", nativeDatabasePath(subPath + " ").c_str()); + + if (NLMISC::CFile::isDirectory(nativeDatabasePath(subPath))) + { + if (subPath.find("\\.") == std::string::npos) + doDirectoryInitialize(subPath); + } + else + doFileInitialize(subPath); + } +} + +void runInitialize() +{ + nlinfo("DatabaseDirectory: '%s'", DatabaseDirectory); + + doDirectoryInitialize(std::string(SrcDirectoryRecursiveInit)); +} + +// Scary stuff +void doFileScanner(const std::string &filePath) +{ + if (filePath[filePath.size() - 3] == 'm' && filePath[filePath.size() - 2] == 'a' && filePath[filePath.size() - 1] == 'x') + { + nldebug("File: '%s'", filePath.c_str()); + + std::vector buffer; + buffer.resize(NLMISC::CFile::getFileSize(nativeDatabasePath(filePath))); + + // read + { + NLMISC::CIFile ifile; + ifile.open(nativeDatabasePath(filePath), false); + ifile.serialBuffer((uint8 *)(&buffer[0]), buffer.size()); + ifile.close(); + } + + // find paths + for (std::vector::size_type i = 256; i < buffer.size(); ++i) // skip the first 256 lol :) + { + if (((NLMISC::toLower(buffer[i - 1]) == 'x' && NLMISC::toLower(buffer [i - 2]) == 'a' && NLMISC::toLower(buffer[i - 3]) == 'm') + || (NLMISC::toLower(buffer[i - 1]) == 'a' && NLMISC::toLower(buffer [i - 2]) == 'g' && NLMISC::toLower(buffer[i - 3]) == 't') + || (NLMISC::toLower(buffer[i - 1]) == 'g' && NLMISC::toLower(buffer [i - 2]) == 'n' && NLMISC::toLower(buffer[i - 3]) == 'p')) + && (NLMISC::toLower(buffer[i - 4]) == '.')) + { + // buffer[i] is the character after the path! :) + std::vector::size_type beginPath = 0; + for (std::vector::size_type j = i - 4; j > 0; --j) + { + if (!isCharacter(buffer[j])) + { + if ((buffer[j + 1] == '\\' && buffer[j + 2] == '\\') || buffer[j] == 0) + { + beginPath = j + 1; + break; + } + // nlwarning("Invalid characters '%i' in path at %i, len %i!", (uint32)buffer[j], (uint32)j, (uint32)(i - j)); + // beginPath = j + 1; // test + break; + } + if (buffer[j] == ':') + { + beginPath = j - 1; + break; + } + } + if (beginPath != 0) + { + std::vector::size_type sizePath = i - beginPath; + std::string foundPath = std::string(&buffer[beginPath], sizePath); //std::string(buffer.at(beginPath), buffer.at(i)); + //nldebug("Found path: '%s' from %i to %i", foundPath.c_str(), (uint32)beginPath, (uint32)i); + std::string fixedPath = rewritePath(foundPath, DatabaseDirectory); + //nldebug("Rewrite to: '%s'", fixedPath.c_str()); + } + } + } + + //NLMISC::CFile::re + + // ... + } +} + +void doDirectoryScanner(const std::string &directoryPath) +{ + nldebug("Directory: '%s'", directoryPath.c_str()); + + std::string dirPath = standardizePath(directoryPath, true); + std::vector dirContents; + + NLMISC::CPath::getPathContent(nativeDatabasePath(dirPath), false, true, true, dirContents); + + for (std::vector::iterator it = dirContents.begin(), end = dirContents.end(); it != end; ++it) + { + std::string subPath = standardizePath(unnativeDatabasePath(*it), false); + + if (NLMISC::CFile::isDirectory(nativeDatabasePath(subPath))) + { + if (subPath.find("\\.") == std::string::npos) + doDirectoryScanner(subPath); + } + else + doFileScanner(subPath); + } +} + +void runScanner() +{ + nlinfo("DatabaseDirectory: '%s'", DatabaseDirectory); + + doDirectoryScanner(SrcDirectoryRecursiveHandle); + + for (std::set::iterator it = MissingFiles.begin(), end = MissingFiles.end(); it != end; ++it) + nlinfo("Missing: '%s'", (*it).c_str()); +} + +void handleFile(const std::string &path); + +void doFileHandler(const std::string &filePath) +{ + if (filePath[filePath.size() - 3] == 'm' && filePath[filePath.size() - 2] == 'a' && filePath[filePath.size() - 1] == 'x') + { + nldebug("File: '%s'", filePath.c_str()); + + handleFile(nativeDatabasePath(filePath)); + } +} + +void doDirectoryHandler(const std::string &directoryPath) +{ + nldebug("Directory: '%s'", directoryPath.c_str()); + + std::string dirPath = standardizePath(directoryPath, true); + std::vector dirContents; + + NLMISC::CPath::getPathContent(nativeDatabasePath(dirPath), false, true, true, dirContents); + + for (std::vector::iterator it = dirContents.begin(), end = dirContents.end(); it != end; ++it) + { + std::string subPath = standardizePath(unnativeDatabasePath(*it), false); + + if (NLMISC::CFile::isDirectory(nativeDatabasePath(subPath))) + { + if (subPath.find("\\.") == std::string::npos) + doDirectoryHandler(subPath); + } + else + doFileHandler(subPath); + } +} + +void runHandler() +{ + nlinfo("DatabaseDirectory: '%s'", DatabaseDirectory); + + doDirectoryHandler(SrcDirectoryRecursiveHandle); + + for (std::set::iterator it = MissingFiles.begin(), end = MissingFiles.end(); it != end; ++it) + nlinfo("Missing: '%s'", (*it).c_str()); +} + +void serializeStorageContainer(PIPELINE::MAX::CStorageContainer *storageContainer, GsfInfile *infile, const char *streamName) +{ + GsfInput *input = gsf_infile_child_by_name(infile, streamName); + if (!input) + { + nlerror("GSF Could not read stream %s", streamName); + return; + } + { + PIPELINE::MAX::CStorageStream instream(input); + storageContainer->serial(instream); + } + g_object_unref(input); +} + +void serializeStorageContainer(PIPELINE::MAX::CStorageContainer *storageContainer, GsfOutfile *outfile, const char *streamName) +{ + //nldebug("write"); + GsfOutput *output = GSF_OUTPUT(gsf_outfile_new_child(outfile, streamName, false)); + if (!output) + { + nlerror("GSF Could not write stream %s", streamName); + return; + } + { + PIPELINE::MAX::CStorageStream outstream(output); + storageContainer->serial(outstream); + } + gsf_output_close(output); + g_object_unref(G_OBJECT(output)); +} + +void serializeRaw(std::vector &rawOutput, GsfInfile *infile, const char *streamName) +{ + GsfInput *input = gsf_infile_child_by_name(infile, streamName); + if (!input) + { + nlerror("GSF Could not read stream %s", streamName); + return; + } + { + PIPELINE::MAX::CStorageStream instream(input); + rawOutput.resize(instream.size()); + instream.serialBuffer(&rawOutput[0], rawOutput.size()); + } + g_object_unref(input); +} + +void serializeRaw(std::vector &rawOutput, GsfOutfile *outfile, const char *streamName) +{ + GsfOutput *output = GSF_OUTPUT(gsf_outfile_new_child(outfile, streamName, false)); + if (!output) + { + nlerror("GSF Could not write stream %s", streamName); + return; + } + { + PIPELINE::MAX::CStorageStream outstream(output); + outstream.serialBuffer(&rawOutput[0], rawOutput.size()); + } + gsf_output_close(output); + g_object_unref(G_OBJECT(output)); +} + +std::string cleanString(const std::string &str) +{ + std::string res = str; + trim(res); + // \\Amiga\3D (10 chars) + if (res.size() > 10) + { + if (res.substr(res.size() - 10) == "\\\\Amiga\\3D") + res = res.substr(0, res.size() - 10); + } + if (res.size() > 1) + { + if (res.substr(res.size() - 1) == "0") + res = res.substr(0, res.size() - 1); + } + if (res.size() > 4 && res[res.size() - 1] == '.') + { + if (res.substr(res.size() - 4) == "max.") // fix a stupid typo + res = res.substr(0, res.size() - 1); + } + return res; +} + +std::string rewritePathFinal(const std::string &str) +{ + std::string strtrimmed = cleanString(str); + std::string result = rewritePath(strtrimmed, DatabaseDirectory); + if (NLMISC::CFile::getFilename(result) != result && !NLMISC::CFile::fileExists(nativeDatabasePath(result)) && + ((result[result.size() - 3] == 't' && result[result.size() - 2] == 'g' && result[result.size() - 1] == 'a') || (result[result.size() - 3] == 'p' && result[result.size() - 2] == 'n' && result[result.size() - 1] == 'g')) + ) + { + // nlwarning("Replacing missing '%s' with '%s'", result.c_str(), FallbackTga); + if (UseFallbackTga) + { + return FallbackTga; + } + else + { + return NLMISC::CFile::getFilename(result); + } + } + if (DisplayReplaces) + { + nldebug("Replacing '%s' with '%s'", str.c_str(), result.c_str()); + } + return result; +} + +bool isImportantFilePath(const std::string &str) +{ + std::string strtrimmed = cleanString(str); + if (strtrimmed.size() >= 4) + { + std::string strlw = NLMISC::toLower(strtrimmed); + return (strlw[strlw.size() - 3] == 'm' && strlw[strlw.size() - 2] == 'a' && strlw[strlw.size() - 1] == 'x') + || (strlw[strlw.size() - 3] == 't' && strlw[strlw.size() - 2] == 'g' && strlw[strlw.size() - 1] == 'a') + || (strlw[strlw.size() - 3] == 'p' && strlw[strlw.size() - 2] == 'n' && strlw[strlw.size() - 1] == 'g'); + } + return false; +} + +bool hasImportantFilePath(CStorageRaw *raw) +{ + if (raw->Value.size() >= 4) + { + // Find any occurences of .max, .png or .tga in ascii or utf16 + for (uint i = 0; i < raw->Value.size() - 3; ++i) + { + if (NLMISC::toLower(((char *)&raw->Value[0])[i]) == '.' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 1]) == 'm' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 2]) == 'a' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 3]) == 'x') + return true; + if (NLMISC::toLower(((char *)&raw->Value[0])[i]) == '.' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 1]) == 't' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 2]) == 'g' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 3]) == 'a') + return true; + if (NLMISC::toLower(((char *)&raw->Value[0])[i]) == '.' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 1]) == 'p' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 2]) == 'n' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 3]) == 'g') + return true; + } + } + if (raw->Value.size() >= 6) + { + for (uint i = 0; i < raw->Value.size() - 6; ++i) + { + if (NLMISC::toLower(((char *)&raw->Value[0])[i]) == '.' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 2]) == 'm' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 4]) == 'a' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 6]) == 'x') + return true; + if (NLMISC::toLower(((char *)&raw->Value[0])[i]) == '.' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 2]) == 't' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 4]) == 'g' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 6]) == 'a') + return true; + if (NLMISC::toLower(((char *)&raw->Value[0])[i]) == '.' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 2]) == 'p' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 4]) == 'n' + && NLMISC::toLower(((char *)&raw->Value[0])[i + 6]) == 'g') + return true; + } + } + return false; +} + +void fixChunk(uint16 id, IStorageObject *chunk) +{ + CStorageValue *asString = dynamic_cast *>(chunk); + if (asString) + { + // nldebug("String: %s", asString->Value.c_str()); + if (isImportantFilePath(asString->Value)) + asString->Value = rewritePathFinal(asString->Value); + return; + } + CStorageValue *asUCString = dynamic_cast *>(chunk); + if (asUCString) + { + // nldebug("UCString: %s", asUCString->Value.toUtf8().c_str()); + if (isImportantFilePath(asUCString->Value.toString())) + asUCString->Value.fromUtf8(rewritePathFinal(asUCString->Value.toString())); + return; + } + CStorageRaw *asRaw = dynamic_cast(chunk); + if (asRaw) + { + switch (id) + { + case 256: + case 4656: + case 16385: + case 288: // .max xref in classdata + if (hasImportantFilePath(asRaw)) + { + // generic ucstring really + nlassert(asRaw->Value.size() % 2 == 0); + ucstring str; + str.resize(asRaw->Value.size() / 2); + memcpy(&str[0], &asRaw->Value[0], asRaw->Value.size()); + // nldebug("[%s]", str.toString().c_str()); + nlassert(isImportantFilePath(str.toString())); + str.fromUtf8(rewritePathFinal(str.toString())); + asRaw->Value.resize(str.size() * 2); + memcpy(&asRaw->Value[0], &str[0], asRaw->Value.size()); + break; + } + case 10: + if (hasImportantFilePath(asRaw)) + { + // 10 00 08 00 00 00 02 00 80 00 40 // 11 bytes O_O + // 4d 00 00 00 + // 57 3a 5c 44 61 74 61 62 61 73 + // 65 5c 73 74 75 66 66 5c 74 72 + // 79 6b 65 72 5c 61 67 65 6e 74 + // 73 5c 5f 74 65 78 74 75 72 65 + // 73 5c 61 63 74 6f 72 73 5c 54 + // 52 5f 48 4f 46 5f 63 69 76 69 + // 6c 30 31 5f 74 6f 72 73 6f 5f + // 43 31 2e 74 67 61 00 + bool overrideFF = true; // Patch for some ligo max files + if (overrideFF && asRaw->Value.size() > 4 && asRaw->Value[asRaw->Value.size() - 4] == 0xFF) + { + nlwarning("0xFFFFFFFF"); + } + else if (!(asRaw->Value[asRaw->Value.size() - 1] == 0)) + { + nlinfo("Id: %i, size: %i", (uint32)id, asRaw->Value.size()); + asRaw->toString(std::cout); + nldebug("x"); + nlwarning("not null term"); + if (HaltOnIssue) + { + std::string x; + std::cin >> x; + } + break; + } + uint32 size = ((uint32 *)&asRaw->Value[11])[0]; + if (!(asRaw->Value.size() == size + 4 + 11)) + { + nlinfo("Id: %i, size: %i", (uint32)id, asRaw->Value.size()); + asRaw->toString(std::cout); + nldebug("x"); + nlwarning("size '%i' does not match '%i', use different algo :)", size, asRaw->Value.size() - 4 - 11); + uint8 nonsense[11]; + uint32 counter; + std::vector strings; + { + NLMISC::CMemStream mem; + asRaw->serial(mem); + mem.invert(); + mem.serialBuffer(nonsense, 11); + mem.serial(counter); + uint i = 0; + while ((sint)mem.getPos() != (sint)mem.size()) + { + //nldebug("pos %i", mem.getPos()); + //nldebug("size %i", mem.size()); + char funny; + mem.serial(funny); + nlassert(funny == '@'); + sint32 size; + mem.serial(size); + //nldebug("size %i", size); + if (!overrideFF && size == -1) + { + nldebug("size %i", size); + nlwarning("bad size"); + if (HaltOnIssue) + { + std::string x; + std::cin >> x; + } + return; + } + std::string v; + if (overrideFF && size == -1) + { + v.resize(1); + *(uint8 *)&v[0] = 0; + } + else + { + v.resize(size); + mem.serialBuffer((uint8 *)&v[0], size); + } + if (!(v[v.size() - 1] == 0)) + { + nlinfo("Id: %i, size: %i", (uint32)id, asRaw->Value.size()); + asRaw->toString(std::cout); + nldebug("x"); + nlwarning("not null term inside array stuff %i '%s'", i, v.c_str()); + if (HaltOnIssue) + { + std::string x; + std::cin >> x; + } + return; + } + v.resize(v.size() - 1); + // nldebug("%s", v.c_str()); + strings.push_back(v); + ++i; + // nldebug("ok"); + } + nlassert(strings.size() == counter); + asRaw->Value.resize(0); + } + bool foundone = false; + for (uint i = 0; i < strings.size(); ++i) + { + if (isImportantFilePath(strings[i])) + { + foundone = true; + strings[i] = rewritePathFinal(strings[i]); + } + } + nlassert(foundone); + { + //nldebug("go"); + NLMISC::CMemStream mem; + mem.serialBuffer(nonsense, 11); + mem.serial(counter); + for (uint i = 0; i < strings.size(); ++i) + { + //nldebug("one"); + char funny = '@'; + mem.serial(funny); + strings[i].resize(strings[i].size() + 1); + strings[i][strings[i].size() - 1] = 0; + uint32 size = strings[i].size(); + mem.serial(size); + mem.serialBuffer((uint8 *)&strings[i][0], size); + } + asRaw->setSize(mem.getPos()); + mem.invert(); + asRaw->serial(mem); + } + //std::string x; + //std::cin >> x; + return; + } + std::string str; + str.resize(size - 1); + memcpy(&str[0], &asRaw->Value[15], str.size()); + // nldebug("test '%s'", str.c_str()); + // asRaw->toString(std::cout); + if (!isImportantFilePath(str)) + { + nlinfo("Id: %i, size: %i", (uint32)id, asRaw->Value.size()); + asRaw->toString(std::cout); + nldebug("x"); + nlwarning("not important"); + if (HaltOnIssue) + { + std::string x; + std::cin >> x; + } + break; + } + str = rewritePathFinal(str); + asRaw->Value.resize(str.size() + 11 + 4 + 1); + memcpy(&asRaw->Value[15], &str[0], str.size()); + ((uint32 *)&asRaw->Value[11])[0] = str.size() + 1; + asRaw->Value[asRaw->Value.size() - 1] = 0; + break; + } + case 304: + if (hasImportantFilePath(asRaw)) + { + // null term c string + nlassert(asRaw->Value[asRaw->Value.size() - 1] == 0); + std::string str; + str.resize(asRaw->Value.size() - 1); + memcpy(&str[0], &asRaw->Value[0], str.size()); + if (!isImportantFilePath(str)) + { + nlinfo("Id: %i", (uint32)id); + asRaw->toString(std::cout); + nlerror("not important"); + } + str = rewritePathFinal(str); + asRaw->Value.resize(str.size() + 1); + memcpy(&asRaw->Value[0], &str[0], str.size()); + asRaw->Value[asRaw->Value.size() - 1] = 0; + break; + } + case 9730: + if (asRaw->Value.size() > 0 && asRaw->Value[0] == 'I') + { + // ignore Init.max + break; + } + default: + if (hasImportantFilePath(asRaw)) + { + nlinfo("Id: %i", (uint32)id); + asRaw->toString(std::cout); + nlwarning("Found important file path"); + if (HaltOnIssue) + { + std::string x; + std::cin >> x; + } + return; + } + break; + } + } +} + +void fixChunks(CStorageContainer *container) +{ + for (CStorageContainer::TStorageObjectConstIt it = container->chunks().begin(), end = container->chunks().end(); it != end; ++it) + { + if (it->second->isContainer()) + { + fixChunks(static_cast(it->second)); + } + else + { + fixChunk(it->first, it->second); + } + } +} + +void handleFile(const std::string &path) +{ + GError *err = NULL; + + GsfDocMetaData *metadata = gsf_doc_meta_data_new(); + nlassert(metadata); + + GsfInput *src = gsf_input_stdio_new(path.c_str(), &err); + if (err) { nlerror("GSF Failed to open %s", path.c_str()); return; } + + GsfInfile *infile = gsf_infile_msole_new(src, NULL); + if (!infile) { nlerror("GSF Failed to recognize %s", path.c_str()); return; } + g_object_unref(src); + + uint8 classId[16]; + if (!gsf_infile_msole_get_class_id((GsfInfileMSOle *)infile, classId)) + nlerror("GSF Did not find classId"); + + PIPELINE::MAX::CStorageContainer videoPostQueue; + serializeStorageContainer(&videoPostQueue, infile, "VideoPostQueue"); + PIPELINE::MAX::CStorageContainer config; + serializeStorageContainer(&config, infile, "Config"); + PIPELINE::MAX::CStorageContainer classData; + serializeStorageContainer(&classData, infile, "ClassData"); + + std::vector summaryInformation; + serializeRaw(summaryInformation, infile, "\05SummaryInformation"); + + std::vector documentSummaryInformation; + serializeRaw(documentSummaryInformation, infile, "\05DocumentSummaryInformation"); // Can't read this, don't care. + + PIPELINE::MAX::CDllDirectory dllDirectory; + serializeStorageContainer(&dllDirectory, infile, "DllDirectory"); + dllDirectory.parse(VersionUnknown); + + PIPELINE::MAX::CClassDirectory3 classDirectory3(&dllDirectory); + serializeStorageContainer(&classDirectory3, infile, "ClassDirectory3"); + classDirectory3.parse(VersionUnknown); + + PIPELINE::MAX::CScene scene(&SceneClassRegistry, &dllDirectory, &classDirectory3); + serializeStorageContainer(&scene, infile, "Scene"); + + if (DebugParser) + { + // Not parsing the scene for this function. + scene.parse(VersionUnknown); + scene.clean(); + } + + /* + PIPELINE::MAX::CStorageContainer dllDirectory; + serializeStorageContainer(&dllDirectory, infile, "DllDirectory"); + + PIPELINE::MAX::CStorageContainer classDirectory3; + serializeStorageContainer(&classDirectory3, infile, "ClassDirectory3"); + + PIPELINE::MAX::CStorageContainer scene; + serializeStorageContainer(&scene, infile, "Scene"); + */ + + if (DisplayStream) + { + videoPostQueue.toString(std::cout); + config.toString(std::cout); + classData.toString(std::cout); + dllDirectory.toString(std::cout); + classDirectory3.toString(std::cout); + scene.toString(std::cout); + } + + if (DebugParser) + { + // Not parsing the scene for this function. + scene.build(VersionUnknown); + scene.disown(); + } + + g_object_unref(infile); + + if (ReplacePaths) + { + fixChunks(&classData); + fixChunks(&scene); + } + if (ReplaceMapExt) + { + // Parse the scene + scene.parse(VersionUnknown); + NLMISC::CClassId editMeshClassId = NLMISC::CClassId(0x00000050, 0x00000000); + NLMISC::CClassId editableMeshClassId = NLMISC::CClassId(0xe44f10b3, 0x00000000); + // from: (0x2ec82081, 0x045a6271) + NLMISC::CClassId fromClassId = NLMISC::CClassId(0x2ec82081, 0x045a6271); + // Find all object space modifier derived containing map extender + for (CStorageContainer::TStorageObjectConstIt it = scene.container()->chunks().begin(), end = scene.container()->chunks().end(); it != end; ++it) + { + if (it->first == 0x2032) // Derived Object + { + // nldebug("Found derived object"); + CReferenceMaker *derivedObject = dynamic_cast(it->second); + nlassert(derivedObject); + + // Find map extender in the modifier stack + uint mapExtenderIndex = 0; + CReferenceMaker *mapExtender = NULL; + for (uint i = 0; i < derivedObject->nbReferences(); ++i) + { + if (derivedObject->getReference(i) && derivedObject->getReference(i)->classDesc()->classId() == fromClassId) + { + nldebug("Found map extender at '%i' / '%i'!", i, derivedObject->nbReferences()); + mapExtenderIndex = i; + mapExtender = derivedObject->getReference(i); + + bool deleteDerivedGeom = false; + CStorageContainer *derivedData = dynamic_cast(derivedObject->findStorageObject(0x2500, mapExtenderIndex)); + nlassert(derivedData); + CStorageContainer *derivedGeom = dynamic_cast(derivedData->findStorageObject(0x2512)); + if (!derivedGeom) + { + CStorageRaw *derivedGeomRaw = dynamic_cast(derivedData->findStorageObject(0x2512)); + if (derivedGeomRaw) + { + nlwarning("Derived geometry raw instead of as container"); + NLMISC::CMemStream memGeom; + derivedGeomRaw->serial(memGeom); + uint size = memGeom.getPos(); + memGeom.invert(); + derivedGeom = new CStorageContainer(); + deleteDerivedGeom = true; + derivedGeom->serial(memGeom, size); + } + else + { + derivedData->toString(std::cout); + nlwarning("derived geometry missing!!!"); + if (HaltOnIssue) + { + std::string x; + std::cin >> x; + } + continue; + } + } + CStorageRaw *derivedVertices = dynamic_cast(derivedGeom->findStorageObject(0x03e9)); + if (!derivedVertices) + { + derivedGeom->toString(std::cout); + nlwarning("derived vertices missing!!!"); + if (HaltOnIssue) + { + std::string x; + std::cin >> x; + } + continue; + } + CStorageRaw *derivedIndices = dynamic_cast(derivedGeom->findStorageObject(0x03eb)); + if (!derivedIndices) + { + derivedGeom->toString(std::cout); + nlwarning("derived indices missing!!!"); + if (HaltOnIssue) + { + std::string x; + std::cin >> x; + } + continue; + } + + CStorageContainer::TStorageObjectContainer &mapChunks = const_cast(mapExtender->chunks()); + + // CStorageContainer::TStorageObjectWithId + + nlassert(derivedVertices->Value.size() % 12 == 0); + nlassert(derivedIndices->Value.size() % 12 == 0); + uint32 nbVertices = derivedVertices->Value.size() / 12; + uint32 nbFaces = derivedIndices->Value.size() / 12; + nldebug("Vertices: %i", nbVertices); + nldebug("Faces: %i", nbFaces); + + // Write vertex chunks + CStorageValue *chunkVertCount = new CStorageValue(); + chunkVertCount->Value = nbVertices; + mapChunks.push_back(CStorageContainer::TStorageObjectWithId(0x0100, chunkVertCount)); + + CStorageRaw *chunkVerts = new CStorageRaw(); + NLMISC::CMemStream memVerts; + derivedVertices->serial(memVerts); + chunkVerts->setSize(memVerts.getPos()); + memVerts.invert(); + chunkVerts->serial(memVerts); + mapChunks.push_back(CStorageContainer::TStorageObjectWithId(0x0110, chunkVerts)); + + // Write face chunks + CStorageValue *chunkFaceCount = new CStorageValue(); + chunkFaceCount->Value = nbFaces; + mapChunks.push_back(CStorageContainer::TStorageObjectWithId(0x0230, chunkFaceCount)); + + CStorageRaw *chunkFaces = new CStorageRaw(); + NLMISC::CMemStream memFaces; + derivedIndices->serial(memFaces); + chunkFaces->setSize(memFaces.getPos()); + memFaces.invert(); + chunkFaces->serial(memFaces); + mapChunks.push_back(CStorageContainer::TStorageObjectWithId(0x0240, chunkFaces)); + + // Write geom points + CStorageValue *chunkGeomPointCount = new CStorageValue(); + chunkGeomPointCount->Value = nbVertices; // derived vertices? + mapChunks.push_back(CStorageContainer::TStorageObjectWithId(0x0320, chunkGeomPointCount)); + + CStorageRaw *chunkGeomPoints = new CStorageRaw(); + NLMISC::CMemStream memGeomPoints; + derivedVertices->serial(memGeomPoints); // derived vertices? + chunkGeomPoints->setSize(memGeomPoints.getPos()); + memGeomPoints.invert(); + chunkGeomPoints->serial(memGeomPoints); + mapChunks.push_back(CStorageContainer::TStorageObjectWithId(0x0330, chunkGeomPoints)); + + if (deleteDerivedGeom) + delete derivedGeom; + + // /*break;*/ + nldebug("Converted!"); + } + } + + if (mapExtender) + { + uint editMeshIndex; + CReferenceMaker *editMesh = NULL; + for (uint i = 0; i < derivedObject->nbReferences(); ++i) + { + if (derivedObject->getReference(i) && derivedObject->getReference(i)->classDesc()->classId() == editMeshClassId) + { + nldebug("Found edit mesh at '%i' / '%i'!", i, derivedObject->nbReferences()); + editMeshIndex = i; + editMesh = derivedObject->getReference(i); + + // Ensure no selection + + CStorageContainer::TStorageObjectContainer &meshChunks = const_cast(editMesh->chunks()); + + // Ensure no selection + for (CStorageContainer::TStorageObjectIterator it = meshChunks.begin(), end = meshChunks.end(); it != end; ) + { + CStorageContainer::TStorageObjectIterator next = it; ++next; + switch (it->first) + { + case 0x2800: + nldebug("Override selection"); + { + delete it->second; + CStorageValue *v = new CStorageValue(); + v->Value = 0; + it->second = v; + } + break; + } + it = next; + } + + // /*break;*/ + } + } + + uint editableMeshIndex; + CReferenceMaker *editableMesh = NULL; + for (uint i = 0; i < derivedObject->nbReferences(); ++i) + { + if (derivedObject->getReference(i) && derivedObject->getReference(i)->classDesc()->classId() == editableMeshClassId) + { + nldebug("Found editable mesh at '%i' / '%i'!", i, derivedObject->nbReferences()); + editableMeshIndex = i; + editableMesh = derivedObject->getReference(i); + + CStorageContainer::TStorageObjectContainer &meshChunks = const_cast(editableMesh->chunks()); + + // Ensure no selection + for (CStorageContainer::TStorageObjectIterator it = meshChunks.begin(), end = meshChunks.end(); it != end; ) + { + CStorageContainer::TStorageObjectIterator next = it; ++next; + switch (it->first) + { + case 0x2845: + case 0x2846: + case 0x2847: + case 0x2849: + case 0x2850: + case 0x3001: + case 0x3003: + case 0x3004: + nldebug("Erase selection"); + meshChunks.erase(it); + break; + case 0x4038: + nldebug("Override selection"); + { + delete it->second; + CStorageValue *v = new CStorageValue(); + v->Value = 0; + it->second = v; + } + break; + } + it = next; + } + + // /*break;*/ + } + } + + if (editableMesh && editableMeshIndex + 1 != derivedObject->nbReferences()) + { + nlwarning("Editable mesh not at bottom of the stack, this is unpossible!"); + std::string x; + std::cin >> x; + continue; + } +/* + if (editableMesh == NULL || editMesh == NULL) + { + derivedObject->toString(std::cout); + nlwarning("editable mesh or edit mesh not found"); + std::string x; + std::cin >> x; + continue; + } + + // + //derivedObject->toString(std::cout); + //editableMesh->toString(std::cout); + + // derivedObject -> 0x2500 -> 0x2512 -> 0x03e9 / 0x03eb + // editableMesh -> 0x08fe (geom) -> 0x0916 / 0x0918 + + CStorageContainer *editableMeshGeometry = dynamic_cast(editableMesh->findStorageObject(0x08fe)); + // nlassert(editableMeshGeometry); + if (!editableMeshGeometry) + { + nlwarning("broken"); + std::string x; + std::cin >> x; + continue; + } + CStorageRaw *editableVertices = dynamic_cast(editableMeshGeometry->findStorageObject(0x0916)); + nlassert(editableVertices); + CStorageRaw *editableIndices = dynamic_cast(editableMeshGeometry->findStorageObject(0x0918)); + nlassert(editableIndices); + + //return new CStorageArraySizePre(); + if (derivedIndices->Value.size() != editableIndices->Value.size()) + { + editableMesh->toString(std::cout); + derivedObject->toString(std::cout); + nlwarning("size mismatch"); + std::string x; + std::cin >> x; + continue; + } + + editableVertices->Value.clear(); + editableIndices->Value.clear(); + + nlassert(derivedVertices->Value.size() % 12 == 0); + uint32 nbVertices = derivedVertices->Value.size() / 12; + NLMISC::CMemStream memVertices; + memVertices.serial(nbVertices); + derivedVertices->serial(memVertices); + memVertices.invert(); + editableVertices->setSize(derivedVertices->Value.size() + 4); + editableVertices->serial(memVertices); + + NLMISC::CMemStream memIndices; + derivedIndices->serial(memIndices); + memIndices.invert(); + editableIndices->setSize(derivedIndices->Value.size()); + editableIndices->serial(memIndices); + nldebug("ok!");*/ + } + } + } + // to: (0x02df2e3a, 0x72ba4e1f) + NLMISC::CClassId toClassId = NLMISC::CClassId(0x02df2e3a, 0x72ba4e1f); // uvw unwrap + // NLMISC::CClassId toClassId = NLMISC::CClassId(0x5c5b50f7,0x60397ca1); // converttomesh :| + // NLMISC::CClassId toClassId = NLMISC::CClassId(0x31f9c666, 0x03b4a577); // uvw mapping add + // dllname to: uvwunwrap.dlm + for (CStorageContainer::TStorageObjectConstIt it = classDirectory3.chunks().begin(), end = classDirectory3.chunks().end(); it != end; ++it) + { + CClassEntry *classEntry = dynamic_cast(it->second); + if (classEntry) + { + //nldebug("class entry %s", classEntry->classId().toString().c_str()); + if (classEntry->classId() == fromClassId) + { + nldebug("Found class id to replace!"); + classEntry->overrideClassId(toClassId); + CDllEntry *dllEntry = const_cast(dllDirectory.get(classEntry->dllIndex())); + dllEntry->overrideDllFilename(ucstring("uvwunwrap.dlm")); + } + } + //else nldebug("not class entry"); + } + // Disown the scene + scene.disown(); + } + + dllDirectory.disown(); + classDirectory3.disown(); + if (WriteModified) + { + const char *outpath = (WriteDummy ? "testdummy.max" : path.c_str()); + GsfOutput *output; + GsfOutfile *outfile; + + output = gsf_output_stdio_new(outpath, &err); + if (err) { nlerror("GSF Failed to create %s", outpath); return; } + outfile = gsf_outfile_msole_new(output); + g_object_unref(G_OBJECT(output)); + + serializeStorageContainer(&videoPostQueue, outfile, "VideoPostQueue"); + serializeStorageContainer(&scene, outfile, "Scene"); + serializeStorageContainer(&dllDirectory, outfile, "DllDirectory"); + serializeStorageContainer(&config, outfile, "Config"); + serializeStorageContainer(&classDirectory3, outfile, "ClassDirectory3"); + serializeStorageContainer(&classData, outfile, "ClassData"); + serializeRaw(summaryInformation, outfile, "\05SummaryInformation"); + serializeRaw(documentSummaryInformation, outfile, "\05DocumentSummaryInformation"); + + if (!gsf_outfile_msole_set_class_id((GsfOutfileMSOle *)outfile, classId)) + nlerror("GSF Cannot write class id"); + + gsf_output_close(GSF_OUTPUT(outfile)); + g_object_unref(G_OBJECT(outfile)); + + if (WriteDummy) + { + nlinfo("Dummy written, press key for next"); + std::string x; + std::cin >> x; + } + } + + g_object_unref(metadata); +} + +// int __stdcall WinMain(void *, void *, void *, int) +int main(int argc, char **argv) +{ + // Initialise gsf + printf("Pipeline Max Rewrite Assets\n"); + char const *me = (argv[0] ? argv[0] : "pipeline_max_rewrite_assets"); + g_set_prgname(me); + gsf_init(); + + // Register all plugin classes + CBuiltin::registerClasses(&SceneClassRegistry); + CUpdate1::registerClasses(&SceneClassRegistry); + CEPoly::registerClasses(&SceneClassRegistry); + + //handleFile("/srv/work/database/interfaces/anims_max/cp_fy_hof_species.max"); + runInitialize(); + runHandler(); + //handleFile(nativeDatabasePath("w:\\database\\landscape\\ligo\\desert\\max\\zonematerial-converted-brandon.max")); // overrideFF + //handleFile(nativeDatabasePath("w:\\database\\landscape\\ligo\\desert\\max\\zonematerial-converted-154_dz.max")); // overrideFF + //handleFile(nativeDatabasePath("w:\\database\\landscape\\ligo\\lacustre\\max\\zonematerial-converted-village_a.max")); + //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\ge_mission_reward_karavan_bigshield.max")); + //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\ge_acc_pick_o.max")); + //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\ge_zo_wea_trib_masse1m.max")); + //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\ge_fy_wea_trib_grand_bouclier.max")); + //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\ge_mission_entrepot.max")); + //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\mesh_wip\\all_trib_weapons.max")); + //handleFile("/srv/work/database/landscape/ligo/jungle/max/zonematerial-foret-ruine_boss.max"); + //handleFile("/srv/work/database/stuff/fyros/agents/actors/male/animation/anims_non_utilisees/fy_hom_assis_boire_verre.max"); + //handleFile("/home/kaetemi/3dsMax/scenes/test_clear_add_uvw.max"); + //runScanner(); + + gsf_shutdown(); + + return 0; +} + From 440d0a5f311986683e994dddc10a56a59374167c Mon Sep 17 00:00:00 2001 From: kaetemi Date: Tue, 23 Apr 2019 03:05:01 +0800 Subject: [PATCH 3/4] Update build settings --- .gitignore | 2 +- azure-pipelines.yml | 16 ++++-- code/CMakeModules/FindGOBJECT2.cmake | 51 +++++++++++++++++++ code/nel/tools/3d/pipeline_max/CMakeLists.txt | 7 +++ .../tools/3d/pipeline_max_dump/CMakeLists.txt | 7 +++ code/nel/tools/3d/pipeline_max_dump/main.cpp | 36 ++++++------- .../CMakeLists.txt | 7 +++ .../3d/pipeline_max_rewrite_assets/main.cpp | 36 ++++++------- 8 files changed, 120 insertions(+), 42 deletions(-) create mode 100644 code/CMakeModules/FindGOBJECT2.cmake diff --git a/.gitignore b/.gitignore index 1d7b8efd4..1f3f7abba 100644 --- a/.gitignore +++ b/.gitignore @@ -160,7 +160,7 @@ code/build/* code/build-2010/* build/* install/* -build_vc* +build_* code/nel/tools/build_gamedata/configuration/buildsite.py # Linux nel compile diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6e0f2b2a7..cfb8b4696 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -12,20 +12,26 @@ jobs: sudo apt-get install gcc-8 g++-8 -y sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60 - sudo apt-get install libmysqlclient-dev -y sudo apt-get install bison autoconf automake -y - sudo apt-get install libpng12-dev libjpeg62-dev -y + sudo apt-get install libpng12-dev -y + sudo apt-get install libjpeg-dev -y + sudo apt-get install libgif-dev libfreetype6-dev -y + sudo apt-get install freeglut3-dev -y sudo apt-get install liblua5.1-dev libluabind-dev libcpptest-dev -y sudo apt-get install libogg-dev libvorbis-dev libopenal-dev -y - sudo apt-get install libgif-dev libfreetype6-dev -y + sudo apt-get install libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev -y + sudo apt-get install libmysqlclient-dev -y sudo apt-get install libxml2-dev -y - sudo apt-get install libcurl4-openssl-dev -y + sudo apt-get install libcurl4-openssl-dev libssl-dev -y + sudo apt-get install libsquish-dev -y + sudo apt-get install liblzma-dev -y + sudo apt-get install libgsf-1-dev -y displayName: 'Dependencies' - script: | mkdir build cmake --version cd build - cmake -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_TOOLS=OFF -DWITH_NEL_TOOLS=OFF ../code + cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_TOOLS=OFF -DWITH_NEL_TOOLS=ON -DWITH_LIBGSF=ON ../code cat CMakeCache.txt displayName: 'CMake' - script: | diff --git a/code/CMakeModules/FindGOBJECT2.cmake b/code/CMakeModules/FindGOBJECT2.cmake new file mode 100644 index 000000000..d0d4cda0d --- /dev/null +++ b/code/CMakeModules/FindGOBJECT2.cmake @@ -0,0 +1,51 @@ +# - Try to find GObject2 +# Find GObject2 headers, libraries and the answer to all questions. +# +# GOBJECT2_FOUND True if GOBJECT2 got found +# GOBJECT2_INCLUDE_DIRS Location of GOBJECT2 headers +# GOBJECT2_LIBRARIES List of libraries to use GOBJECT2 +# +# Copyright (c) 2008 Bjoern Ricks +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +INCLUDE( FindPkgConfig ) + +IF ( GOBJECT2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "REQUIRED" ) +ELSE( GOBJECT2_FIND_REQUIRED ) + SET( _pkgconfig_REQUIRED "" ) +ENDIF ( GOBJECT2_FIND_REQUIRED ) + +IF ( GOBJECT2_MIN_VERSION ) + PKG_SEARCH_MODULE( GOBJECT2 ${_pkgconfig_REQUIRED} gobject-2.0>=${GOBJECT2_MIN_VERSION} ) +ELSE ( GOBJECT2_MIN_VERSION ) + PKG_SEARCH_MODULE( GOBJECT2 ${_pkgconfig_REQUIRED} gobject-2.0 ) +ENDIF ( GOBJECT2_MIN_VERSION ) + + +IF( NOT GOBJECT2_FOUND AND NOT PKG_CONFIG_FOUND ) + FIND_PATH( GOBJECT2_INCLUDE_DIRS gobject/gobject.h PATH_SUFFIXES glib-2.0) + FIND_LIBRARY( GOBJECT2_LIBRARIES gobject-2.0 ) + + # Report results + IF ( GOBJECT2_LIBRARIES AND GOBJECT2_INCLUDE_DIRS ) + SET( GOBJECT2_FOUND 1 ) + IF ( NOT GOBJECT2_FIND_QUIETLY ) + MESSAGE( STATUS "Found GOBJECT2: ${GOBJECT2_LIBRARIES}" ) + ENDIF ( NOT GOBJECT2_FIND_QUIETLY ) + ELSE ( GOBJECT2_LIBRARIES AND GOBJECT2_INCLUDE_DIRS ) + IF ( GOBJECT2_FIND_REQUIRED ) + MESSAGE( SEND_ERROR "Could NOT find GOBJECT2" ) + ELSE ( GOBJECT2_FIND_REQUIRED ) + IF ( NOT GOBJECT2_FIND_QUIETLY ) + MESSAGE( STATUS "Could NOT find GOBJECT2" ) + ENDIF ( NOT GOBJECT2_FIND_QUIETLY ) + ENDIF ( GOBJECT2_FIND_REQUIRED ) + ENDIF ( GOBJECT2_LIBRARIES AND GOBJECT2_INCLUDE_DIRS ) +ENDIF( NOT GOBJECT2_FOUND AND NOT PKG_CONFIG_FOUND ) + +MARK_AS_ADVANCED( GOBJECT2_LIBRARIES GOBJECT2_INCLUDE_DIRS ) diff --git a/code/nel/tools/3d/pipeline_max/CMakeLists.txt b/code/nel/tools/3d/pipeline_max/CMakeLists.txt index f80176150..9bc0086aa 100644 --- a/code/nel/tools/3d/pipeline_max/CMakeLists.txt +++ b/code/nel/tools/3d/pipeline_max/CMakeLists.txt @@ -5,6 +5,12 @@ IF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) MESSAGE(FATAL_ERROR "LIBGSF not found!") ENDIF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) +FIND_PACKAGE(GOBJECT2) + +if (NOT GOBJECT2_FOUND) + MESSAGE(FATAL_ERROR "GOBJECT2 not found!") +ENDIF (NOT GOBJECT2_FOUND) + FIND_PACKAGE(GLIB2) if (NOT GLIB2_FOUND) @@ -25,6 +31,7 @@ NL_TARGET_LIB(pipeline_max TARGET_LINK_LIBRARIES(pipeline_max ${LIBGSF_LIBRARIES} ${GLIB2_LIBRARIES} + ${GOBJECT2_LIBRARIES} nelmisc ) diff --git a/code/nel/tools/3d/pipeline_max_dump/CMakeLists.txt b/code/nel/tools/3d/pipeline_max_dump/CMakeLists.txt index d079d9000..5582079a1 100644 --- a/code/nel/tools/3d/pipeline_max_dump/CMakeLists.txt +++ b/code/nel/tools/3d/pipeline_max_dump/CMakeLists.txt @@ -5,6 +5,12 @@ IF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) MESSAGE(FATAL_ERROR "LIBGSF not found!") ENDIF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) +FIND_PACKAGE(GOBJECT2) + +if (NOT GOBJECT2_FOUND) + MESSAGE(FATAL_ERROR "GOBJECT2 not found!") +ENDIF (NOT GOBJECT2_FOUND) + FIND_PACKAGE(GLIB2) if (NOT GLIB2_FOUND) @@ -25,6 +31,7 @@ ADD_EXECUTABLE(pipeline_max_dump TARGET_LINK_LIBRARIES(pipeline_max_dump ${LIBGSF_LIBRARIES} ${GLIB2_LIBRARIES} + ${GOBJECT2_LIBRARIES} pipeline_max nelmisc ) diff --git a/code/nel/tools/3d/pipeline_max_dump/main.cpp b/code/nel/tools/3d/pipeline_max_dump/main.cpp index 58c366831..e74d0ec11 100644 --- a/code/nel/tools/3d/pipeline_max_dump/main.cpp +++ b/code/nel/tools/3d/pipeline_max_dump/main.cpp @@ -38,26 +38,26 @@ #include #include -#include "../max/storage_stream.h" -#include "../max/storage_object.h" -#include "../max/dll_directory.h" -#include "../max/class_directory_3.h" -#include "../max/class_data.h" -#include "../max/config.h" -#include "../max/scene.h" -#include "../max/scene_class_registry.h" +#include "../pipeline_max/storage_stream.h" +#include "../pipeline_max/storage_object.h" +#include "../pipeline_max/dll_directory.h" +#include "../pipeline_max/class_directory_3.h" +#include "../pipeline_max/class_data.h" +#include "../pipeline_max/config.h" +#include "../pipeline_max/scene.h" +#include "../pipeline_max/scene_class_registry.h" // Testing -#include "../max/builtin/builtin.h" -#include "../max/update1/update1.h" -#include "../max/epoly/epoly.h" +#include "../pipeline_max/builtin/builtin.h" +#include "../pipeline_max/update1/update1.h" +#include "../pipeline_max/epoly/epoly.h" -#include "../max/builtin/storage/app_data.h" -#include "../max/builtin/storage/geom_buffers.h" -#include "../max/builtin/scene_impl.h" -#include "../max/builtin/i_node.h" -#include "../max/update1/editable_mesh.h" -#include "../max/epoly/editable_poly.h" +#include "../pipeline_max/builtin/storage/app_data.h" +#include "../pipeline_max/builtin/storage/geom_buffers.h" +#include "../pipeline_max/builtin/scene_impl.h" +#include "../pipeline_max/builtin/i_node.h" +#include "../pipeline_max/update1/editable_mesh.h" +#include "../pipeline_max/epoly/editable_poly.h" using namespace PIPELINE::MAX; using namespace PIPELINE::MAX::BUILTIN; @@ -71,7 +71,7 @@ using namespace PIPELINE::MAX::EPOLY; //static const char *filename = "/home/kaetemi/3dsMax/scenes/teapot_test_scene.max"; //static const char *filename = "/home/kaetemi/3dsMax/scenes/testplane.max"; //static const char *filename = "/home/kaetemi/3dsMax/scenes/geomobjects.max"; -static const char *filename = "/mnt/tsurugi/ryzom-assets/database/landscape/ligo/desert/max/zonematerial-converted-165_eg.max"; +static const char *filename = "/mnt/tsurugi/ryzom-assets/database/landscape/ligo/desert/pipeline_max/zonematerial-converted-165_eg.max"; static const char *streamname = "Scene"; #define PBMS_GEOM_BUFFERS_POLY_A_VERTEX_CHUNK_ID 0x0100 diff --git a/code/nel/tools/3d/pipeline_max_rewrite_assets/CMakeLists.txt b/code/nel/tools/3d/pipeline_max_rewrite_assets/CMakeLists.txt index 4aa8a6652..556dde895 100644 --- a/code/nel/tools/3d/pipeline_max_rewrite_assets/CMakeLists.txt +++ b/code/nel/tools/3d/pipeline_max_rewrite_assets/CMakeLists.txt @@ -5,6 +5,12 @@ IF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) MESSAGE(FATAL_ERROR "LIBGSF not found!") ENDIF (NOT (LIBGSF_INCLUDE_DIR AND LIBGSF_LIBRARIES)) +FIND_PACKAGE(GOBJECT2) + +if (NOT GOBJECT2_FOUND) + MESSAGE(FATAL_ERROR "GOBJECT2 not found!") +ENDIF (NOT GOBJECT2_FOUND) + FIND_PACKAGE(GLIB2) if (NOT GLIB2_FOUND) @@ -25,6 +31,7 @@ ADD_EXECUTABLE(pipeline_max_rewrite_assets TARGET_LINK_LIBRARIES(pipeline_max_rewrite_assets ${LIBGSF_LIBRARIES} ${GLIB2_LIBRARIES} + ${GOBJECT2_LIBRARIES} pipeline_max nelmisc ) diff --git a/code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp b/code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp index 4a7aca040..fc07a0e18 100644 --- a/code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp +++ b/code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp @@ -47,26 +47,26 @@ #include "nel/misc/file.h" #include "nel/misc/mem_stream.h" -#include "../max/storage_stream.h" -#include "../max/storage_object.h" -#include "../max/dll_directory.h" -#include "../max/class_directory_3.h" -#include "../max/class_data.h" -#include "../max/config.h" -#include "../max/scene.h" -#include "../max/scene_class_registry.h" +#include "../pipeline_max/storage_stream.h" +#include "../pipeline_max/storage_object.h" +#include "../pipeline_max/dll_directory.h" +#include "../pipeline_max/class_directory_3.h" +#include "../pipeline_max/class_data.h" +#include "../pipeline_max/config.h" +#include "../pipeline_max/scene.h" +#include "../pipeline_max/scene_class_registry.h" // Testing -#include "../max/builtin/builtin.h" -#include "../max/update1/update1.h" -#include "../max/epoly/epoly.h" +#include "../pipeline_max/builtin/builtin.h" +#include "../pipeline_max/update1/update1.h" +#include "../pipeline_max/epoly/epoly.h" -#include "../max/builtin/storage/app_data.h" -#include "../max/builtin/storage/geom_buffers.h" -#include "../max/builtin/scene_impl.h" -#include "../max/builtin/i_node.h" -#include "../max/update1/editable_mesh.h" -#include "../max/epoly/editable_poly.h" +#include "../pipeline_max/builtin/storage/app_data.h" +#include "../pipeline_max/builtin/storage/geom_buffers.h" +#include "../pipeline_max/builtin/scene_impl.h" +#include "../pipeline_max/builtin/i_node.h" +#include "../pipeline_max/update1/editable_mesh.h" +#include "../pipeline_max/epoly/editable_poly.h" #include using namespace std; @@ -1506,7 +1506,7 @@ int main(int argc, char **argv) //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\ge_fy_wea_trib_grand_bouclier.max")); //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\ge_mission_entrepot.max")); //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\mesh_wip\\all_trib_weapons.max")); - //handleFile("/srv/work/database/landscape/ligo/jungle/max/zonematerial-foret-ruine_boss.max"); + //handleFile("/srv/work/database/landscape/ligo/jungle/pipeline_max/zonematerial-foret-ruine_boss.max"); //handleFile("/srv/work/database/stuff/fyros/agents/actors/male/animation/anims_non_utilisees/fy_hom_assis_boire_verre.max"); //handleFile("/home/kaetemi/3dsMax/scenes/test_clear_add_uvw.max"); //runScanner(); From e10834fd585815afa06e6ae4e26a8b671d81812b Mon Sep 17 00:00:00 2001 From: kaetemi Date: Tue, 23 Apr 2019 05:37:36 +0800 Subject: [PATCH 4/4] Add option to rewrite file only on changes --- .../3d/pipeline_max_rewrite_assets/main.cpp | 122 +++++++++++++----- 1 file changed, 87 insertions(+), 35 deletions(-) diff --git a/code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp b/code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp index fc07a0e18..e28d87627 100644 --- a/code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp +++ b/code/nel/tools/3d/pipeline_max_rewrite_assets/main.cpp @@ -87,15 +87,16 @@ bool DisplayStream = false; bool DisplayReplaces = false; bool ReplacePaths = true; -bool ReplaceMapExt = true; +bool ReplaceMapExt = false; +bool WritePathChangesOnly = true; bool WriteModified = true; bool WriteDummy = false; bool HaltOnIssue = false; const char *DatabaseDirectory = "w:\\database\\"; -const char *LinuxDatabaseDirectory = "/mnt/tsurugi/ryzom-assets/database/"; +const char *LinuxDatabaseDirectory = "/mnt/y/ryzom-assets/database/"; bool RunningLinux = true; //const char *SrcDirectoryRecursive = "w:\\database\\interfaces\\"; @@ -103,7 +104,8 @@ bool RunningLinux = true; //const char *SrcDirectoryRecursive = "w:\\database\\stuff\\fyros\\city\\newpositionville\\"; const char *SrcDirectoryRecursiveInit = "w:\\database\\"; //const char *SrcDirectoryRecursiveHandle = "w:\\database\\stuff\\generique\\agents\\accessories\\"; -const char *SrcDirectoryRecursiveHandle = "w:\\database\\landscape\\ligo\\primes_racines\\max\\"; +//const char *SrcDirectoryRecursiveHandle = "w:\\database\\landscape\\ligo\\primes_racines\\max\\"; +const char *SrcDirectoryRecursiveHandle = "w:\\database\\stuff\\fyros\\decors\\constructions\\"; bool UseFallbackTga = false; const char *FallbackTga = "w:\\database\\stuff\\lod_actors\\texture_lod\\trame.png"; @@ -204,6 +206,8 @@ inline char stripFrenchLocale(char c0) std::string rewritePath(const std::string &path, const std::string &databaseDirectory) { + // nldebug("Rewrite: %s", path.c_str()); + static std::set fileNameCache; std::string stdPath = standardizePath(path, false); @@ -597,9 +601,6 @@ void runHandler() nlinfo("DatabaseDirectory: '%s'", DatabaseDirectory); doDirectoryHandler(SrcDirectoryRecursiveHandle); - - for (std::set::iterator it = MissingFiles.begin(), end = MissingFiles.end(); it != end; ++it) - nlinfo("Missing: '%s'", (*it).c_str()); } void serializeStorageContainer(PIPELINE::MAX::CStorageContainer *storageContainer, GsfInfile *infile, const char *streamName) @@ -716,6 +717,8 @@ std::string rewritePathFinal(const std::string &str) bool isImportantFilePath(const std::string &str) { + // nldebug("Is important? %s", str.c_str()); + std::string strtrimmed = cleanString(str); if (strtrimmed.size() >= 4) { @@ -775,31 +778,51 @@ bool hasImportantFilePath(CStorageRaw *raw) return false; } -void fixChunk(uint16 id, IStorageObject *chunk) +bool fixChunk(uint16 id, IStorageObject *chunk) { + if (id == 4656) + { + // nldebug("testing 4656: %s", chunk->toString().c_str()); + } + bool changed = false; CStorageValue *asString = dynamic_cast *>(chunk); if (asString) { // nldebug("String: %s", asString->Value.c_str()); if (isImportantFilePath(asString->Value)) - asString->Value = rewritePathFinal(asString->Value); - return; + { + std::string rewritten = rewritePathFinal(asString->Value); + if (rewritten != asString->Value) + { + asString->Value = rewritten; + changed = true; + } + } + return changed; } CStorageValue *asUCString = dynamic_cast *>(chunk); if (asUCString) { // nldebug("UCString: %s", asUCString->Value.toUtf8().c_str()); if (isImportantFilePath(asUCString->Value.toString())) - asUCString->Value.fromUtf8(rewritePathFinal(asUCString->Value.toString())); - return; + { + std::string rewritten = rewritePathFinal(asUCString->Value.toString()); + if (rewritten != asUCString->Value.toString()) + { + asUCString->Value.fromUtf8(rewritten); + changed = true; + } + } + return changed; } CStorageRaw *asRaw = dynamic_cast(chunk); if (asRaw) { switch (id) { - case 256: case 4656: + // nldebug("4656: %s", chunk->toString().c_str()); + case 256: case 16385: case 288: // .max xref in classdata if (hasImportantFilePath(asRaw)) @@ -811,9 +834,14 @@ void fixChunk(uint16 id, IStorageObject *chunk) memcpy(&str[0], &asRaw->Value[0], asRaw->Value.size()); // nldebug("[%s]", str.toString().c_str()); nlassert(isImportantFilePath(str.toString())); - str.fromUtf8(rewritePathFinal(str.toString())); - asRaw->Value.resize(str.size() * 2); - memcpy(&asRaw->Value[0], &str[0], asRaw->Value.size()); + std::string rewritten = rewritePathFinal(str.toString()); + if (rewritten != str.toString()) + { + str.fromUtf8(rewritten); + asRaw->Value.resize(str.size() * 2); + memcpy(&asRaw->Value[0], &str[0], asRaw->Value.size()); + changed = true; + } break; } case 10: @@ -883,7 +911,7 @@ void fixChunk(uint16 id, IStorageObject *chunk) std::string x; std::cin >> x; } - return; + return changed; } std::string v; if (overrideFF && size == -1) @@ -907,7 +935,7 @@ void fixChunk(uint16 id, IStorageObject *chunk) std::string x; std::cin >> x; } - return; + return changed; } v.resize(v.size() - 1); // nldebug("%s", v.c_str()); @@ -924,7 +952,12 @@ void fixChunk(uint16 id, IStorageObject *chunk) if (isImportantFilePath(strings[i])) { foundone = true; - strings[i] = rewritePathFinal(strings[i]); + std::string rewritten = rewritePathFinal(strings[i]); + if (rewritten != strings[i]) + { + strings[i] = rewritten; + changed = true; + } } } nlassert(foundone); @@ -950,7 +983,7 @@ void fixChunk(uint16 id, IStorageObject *chunk) } //std::string x; //std::cin >> x; - return; + return changed; } std::string str; str.resize(size - 1); @@ -970,11 +1003,16 @@ void fixChunk(uint16 id, IStorageObject *chunk) } break; } - str = rewritePathFinal(str); - asRaw->Value.resize(str.size() + 11 + 4 + 1); - memcpy(&asRaw->Value[15], &str[0], str.size()); - ((uint32 *)&asRaw->Value[11])[0] = str.size() + 1; - asRaw->Value[asRaw->Value.size() - 1] = 0; + std::string rewritten = rewritePathFinal(str); + if (rewritten != str) + { + str = rewritten; + asRaw->Value.resize(str.size() + 11 + 4 + 1); + memcpy(&asRaw->Value[15], &str[0], str.size()); + ((uint32 *)&asRaw->Value[11])[0] = str.size() + 1; + asRaw->Value[asRaw->Value.size() - 1] = 0; + changed = true; + } break; } case 304: @@ -991,10 +1029,15 @@ void fixChunk(uint16 id, IStorageObject *chunk) asRaw->toString(std::cout); nlerror("not important"); } - str = rewritePathFinal(str); - asRaw->Value.resize(str.size() + 1); - memcpy(&asRaw->Value[0], &str[0], str.size()); - asRaw->Value[asRaw->Value.size() - 1] = 0; + std::string rewritten = rewritePathFinal(str); + if (rewritten != str) + { + str = rewritten; + asRaw->Value.resize(str.size() + 1); + memcpy(&asRaw->Value[0], &str[0], str.size()); + asRaw->Value[asRaw->Value.size() - 1] = 0; + changed = true; + } break; } case 9730: @@ -1014,26 +1057,29 @@ void fixChunk(uint16 id, IStorageObject *chunk) std::string x; std::cin >> x; } - return; + return changed; } break; } } + return changed; } -void fixChunks(CStorageContainer *container) +bool fixChunks(CStorageContainer *container) { + bool changed = false; for (CStorageContainer::TStorageObjectConstIt it = container->chunks().begin(), end = container->chunks().end(); it != end; ++it) { if (it->second->isContainer()) { - fixChunks(static_cast(it->second)); + changed = (changed || fixChunks(static_cast(it->second))); } else { - fixChunk(it->first, it->second); + changed = (changed || fixChunk(it->first, it->second)); } } + return changed; } void handleFile(const std::string &path) @@ -1115,11 +1161,13 @@ void handleFile(const std::string &path) g_object_unref(infile); + bool pathsChanged = !WritePathChangesOnly; if (ReplacePaths) { - fixChunks(&classData); - fixChunks(&scene); + pathsChanged = pathsChanged || fixChunks(&classData); + pathsChanged = pathsChanged || fixChunks(&scene); } + if (ReplaceMapExt) { // Parse the scene @@ -1443,7 +1491,7 @@ void handleFile(const std::string &path) dllDirectory.disown(); classDirectory3.disown(); - if (WriteModified) + if (WriteModified && (ReplaceMapExt || pathsChanged)) { const char *outpath = (WriteDummy ? "testdummy.max" : path.c_str()); GsfOutput *output; @@ -1506,11 +1554,15 @@ int main(int argc, char **argv) //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\ge_fy_wea_trib_grand_bouclier.max")); //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\ge_mission_entrepot.max")); //handleFile(nativeDatabasePath("w:\\database\\stuff\\generique\\agents\\accessories\\mesh_wip\\all_trib_weapons.max")); + //handleFile(nativeDatabasePath("w:\\database\\stuff\\fyros\\decors\\constructions\\fy_cn_smokehouse.max")); //handleFile("/srv/work/database/landscape/ligo/jungle/pipeline_max/zonematerial-foret-ruine_boss.max"); //handleFile("/srv/work/database/stuff/fyros/agents/actors/male/animation/anims_non_utilisees/fy_hom_assis_boire_verre.max"); //handleFile("/home/kaetemi/3dsMax/scenes/test_clear_add_uvw.max"); //runScanner(); + for (std::set::iterator it = MissingFiles.begin(), end = MissingFiles.end(); it != end; ++it) + nlinfo("Missing: '%s'", (*it).c_str()); + gsf_shutdown(); return 0;