diff --git a/external/ours/library/CMakeLists.txt b/external/ours/library/CMakeLists.txt index 4275a6bf..ad5e650c 100644 --- a/external/ours/library/CMakeLists.txt +++ b/external/ours/library/CMakeLists.txt @@ -2,5 +2,6 @@ add_subdirectory(archive) add_subdirectory(fileInterface) add_subdirectory(localization) +add_subdirectory(localizationArchive) add_subdirectory(unicode) add_subdirectory(unicodeArchive) diff --git a/external/ours/library/localizationArchive/CMakeLists.txt b/external/ours/library/localizationArchive/CMakeLists.txt new file mode 100644 index 00000000..85a1ba5e --- /dev/null +++ b/external/ours/library/localizationArchive/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 2.8) + +project(localizationArchive) + +if(WIN32) + add_definitions(/D_CRT_SECURE_NO_WARNINGS) +endif() + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/public) + +add_subdirectory(src) diff --git a/external/ours/library/localizationArchive/include/public/localizationArchive/FirstLocalizationArchive.h b/external/ours/library/localizationArchive/include/public/localizationArchive/FirstLocalizationArchive.h new file mode 100644 index 00000000..7f411565 --- /dev/null +++ b/external/ours/library/localizationArchive/include/public/localizationArchive/FirstLocalizationArchive.h @@ -0,0 +1 @@ +#include "../../src/shared/FirstLocalizationArchive.h" diff --git a/external/ours/library/localizationArchive/include/public/localizationArchive/StringIdArchive.h b/external/ours/library/localizationArchive/include/public/localizationArchive/StringIdArchive.h new file mode 100644 index 00000000..b7f0b7ea --- /dev/null +++ b/external/ours/library/localizationArchive/include/public/localizationArchive/StringIdArchive.h @@ -0,0 +1 @@ +#include "../../src/shared/StringIdArchive.h" diff --git a/external/ours/library/localizationArchive/src/CMakeLists.txt b/external/ours/library/localizationArchive/src/CMakeLists.txt new file mode 100644 index 00000000..480bd801 --- /dev/null +++ b/external/ours/library/localizationArchive/src/CMakeLists.txt @@ -0,0 +1,29 @@ + + +set(SHARED_SOURCES + shared/FirstLocalizationArchive.h + shared/StringIdArchive.cpp + shared/StringIdArchive.h +) + +if(WIN32) + set(PLATFORM_SOURCES + win32/FirstLocalizationArchive.cpp + ) + + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/win32) +else() + set(PLATFORM_SOURCES "") +endif() + +include_directories( + ${CMAKE_CURRENT_SOURCE_DIR}/shared + ${SWG_EXTERNALS_SOURCE_DIR}/ours/library/archive/include + ${SWG_EXTERNALS_SOURCE_DIR}/ours/library/localization/include + ${SWG_EXTERNALS_SOURCE_DIR}/ours/library/unicode/include +) + +add_library(localizationArchive + ${SHARED_SOURCES} + ${PLATFORM_SOURCES} +) diff --git a/external/ours/library/localizationArchive/src/shared/FirstLocalizationArchive.h b/external/ours/library/localizationArchive/src/shared/FirstLocalizationArchive.h new file mode 100644 index 00000000..58e1baad --- /dev/null +++ b/external/ours/library/localizationArchive/src/shared/FirstLocalizationArchive.h @@ -0,0 +1,23 @@ +//====================================================================== +// +// FirstLocalizationArchive.h +// copyright (c) 2002 Sony Online Entertainment +// +//====================================================================== + +#ifndef INCLUDED_FirstLocalizationArchive_H +#define INCLUDED_FirstLocalizationArchive_H + +//====================================================================== + +#ifdef WIN32 +// C4702 unreachable code +#pragma warning (disable:4702) +#endif + +#include "Unicode.h" +#include "Archive/Archive.h" + +//====================================================================== + +#endif diff --git a/external/ours/library/localizationArchive/src/shared/StringIdArchive.cpp b/external/ours/library/localizationArchive/src/shared/StringIdArchive.cpp new file mode 100644 index 00000000..b4054a25 --- /dev/null +++ b/external/ours/library/localizationArchive/src/shared/StringIdArchive.cpp @@ -0,0 +1,57 @@ +//====================================================================== +// +// StringIdArchive.cpp +// copyright (c) 2002 Sony Online Entertainment +// +//====================================================================== + +#include "localizationArchive/FirstLocalizationArchive.h" +#include "localizationArchive/StringIdArchive.h" + +#include "StringId.h" +#include "Archive/Archive.h" +#include "Archive/ByteStream.h" + +//====================================================================== + +namespace Archive +{ + /** + * Retrieves a StringId from the a data buffer. + * + * @param source the source buffer + */ + void get(ReadIterator & source, StringId & target) + { + unsigned long index = 0; + std::string table; + std::string name; + + Archive::get(source, table); + Archive::get(source, index); + Archive::get(source, name); + + target.setTable (table); + target.setText (name); + + //-- getting the index over the wire is potentially problematic + target.setTextIndex (0); + } + + //---------------------------------------------------------------------- + + /** + * Add a StringId to a data buffer. + * + * @param target the buffer to fill + */ + + void put(ByteStream & target, const StringId & source) + { + Archive::put(target, source.getTable ()); + Archive::put(target, source.getTextIndex ()); + Archive::put(target, source.getText ()); + } +} + +//====================================================================== diff --git a/external/ours/library/localizationArchive/src/shared/StringIdArchive.h b/external/ours/library/localizationArchive/src/shared/StringIdArchive.h new file mode 100644 index 00000000..6a77dcf0 --- /dev/null +++ b/external/ours/library/localizationArchive/src/shared/StringIdArchive.h @@ -0,0 +1,28 @@ +// StringIdArchive.h +// copyright 2001 Verant Interactive + +#ifndef _INCLUDED_StringIdArchive_H +#define _INCLUDED_StringIdArchive_H + +//----------------------------------------------------------------------- + +class StringId; + +namespace Archive +{ + class ReadIterator; + class ByteStream; +} + +//----------------------------------------------------------------------- + +namespace Archive +{ + void get(ReadIterator & source, StringId & target); + + void put(ByteStream & target, const StringId & source); +} + +//----------------------------------------------------------------------- + +#endif diff --git a/external/ours/library/localizationArchive/src/win32/FirstLocalizationArchive.cpp b/external/ours/library/localizationArchive/src/win32/FirstLocalizationArchive.cpp new file mode 100644 index 00000000..475bd6c7 --- /dev/null +++ b/external/ours/library/localizationArchive/src/win32/FirstLocalizationArchive.cpp @@ -0,0 +1,10 @@ +//====================================================================== +// +// FirstLocalizationArchive.cpp +// copyright (c) 2002 Sony Online Entertainment +// +//====================================================================== + +#include "localizationArchive/FirstLocalizationArchive.h" + +//======================================================================