diff --git a/.gitignore b/.gitignore index d90a051..4758b09 100644 --- a/.gitignore +++ b/.gitignore @@ -40,11 +40,12 @@ local.properties *.suo *.user *.sln.docstates +*.vcxproj # Build results -[Dd]ebug*/ -[Rr]elease*/ +[Dd]ebug/ +[Rr]elease/ x64/ build/ [Bb]in/ diff --git a/CMakeLists.txt b/CMakeLists.txt index c1fbfc5..0470fe9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,77 +16,54 @@ option(PROJECT_STATIC_RUNTIME "Build with static runtime libs (/MT)" ON) option(CBASH_NO_BOOST_ZLIB "Build with external Zlib" OFF) set (Boost_USE_STATIC_LIBS ON) +set (Boost_DEBUG ON) set (Boost_USE_MULTITHREADED ON) set (Boost_USE_STATIC_RUNTIME PROJECT_STATIC_RUNTIME) -file (GLOB_RECURSE CBASH_GEN_HDRS "${CMAKE_SOURCE_DIR}/src/*.h" ) - -file (GLOB_RECURSE CBASH_FONV "${CMAKE_SOURCE_DIR}/src/FalloutNewVegas/*.cpp") -file (GLOB_RECURSE CBASH_OBLIVION "${CMAKE_SOURCE_DIR}/src/Oblivion/*.cpp") -file (GLOB_RECURSE CBASH_SKYRIM "${CMAKE_SOURCE_DIR}/src/Skyrim/*.cpp") - -set (CBASH_SRC "${CMAKE_SOURCE_DIR}/src/CBash.cpp" - "${CMAKE_SOURCE_DIR}/src/Collection.cpp" - "${CMAKE_SOURCE_DIR}/src/Common.cpp" - "${CMAKE_SOURCE_DIR}/src/GenericChunks.cpp" - "${CMAKE_SOURCE_DIR}/src/GenericRecord.cpp" - "${CMAKE_SOURCE_DIR}/src/ModFile.cpp" - "${CMAKE_SOURCE_DIR}/src/TES4Record.cpp" - "${CMAKE_SOURCE_DIR}/src/TES4RecordAPI.cpp" - "${CMAKE_SOURCE_DIR}/src/Visitors.cpp" - "${CMAKE_SOURCE_DIR}/src/CBash.rc" +IF (MSVC) + set (Boost_COMPILER "-vc140") +ENDIF () + + +file (GLOB_RECURSE CBASH_FONV "${CMAKE_CURRENT_SOURCE_DIR}/src/FalloutNewVegas/*.cpp") +file (GLOB_RECURSE CBASH_OBLIVION "${CMAKE_CURRENT_SOURCE_DIR}/src/Oblivion/*.cpp") +file (GLOB_RECURSE CBASH_SKYRIM "${CMAKE_CURRENT_SOURCE_DIR}/src/Skyrim/*.cpp") +file (GLOB_RECURSE CBASH_SKYBLIVION "${CMAKE_CURRENT_SOURCE_DIR}/src/Skyblivion/*.cpp") + +set (CBASH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/CBash.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/Collection.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/Common.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/GenericChunks.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/GenericRecord.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/ModFile.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/TES4Record.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/TES4RecordAPI.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/Logger.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/Visitors.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/src/CBash.rc" ${CBASH_FONV} ${CBASH_OBLIVION} ${CBASH_SKYRIM} + ${CBASH_SKYBLIVION} ) - -file(GLOB_RECURSE TMP_FILES_HDRS - "${CMAKE_SOURCE_DIR}/src/*.h" -) - -foreach(f ${TMP_FILES_HDRS}) - # Get the path of the file relative to ${DIRECTORY}, - # then alter it (not compulsory) - file(RELATIVE_PATH SRCGR "${CMAKE_SOURCE_DIR}/src/" ${f}) - set(SRCGR "Headers/${SRCGR}") - - # Extract the folder, ie remove the filename part - string(REGEX REPLACE "(.*)(/[^/]*)$" "\\1" SRCGR ${SRCGR}) - - # Source_group expects \\ (double antislash), not / (slash) - string(REPLACE / \\ SRCGR ${SRCGR}) - source_group("${SRCGR}" FILES ${f}) -endforeach() - -file(GLOB_RECURSE TMP_FILES - "${CMAKE_SOURCE_DIR}/src/*.cpp" -) -foreach(f ${TMP_FILES}) - # Get the path of the file relative to ${DIRECTORY}, - # then alter it (not compulsory) - file(RELATIVE_PATH SRCGR "${CMAKE_SOURCE_DIR}/src/" ${f}) - set(SRCGR "Source Files/${SRCGR}") - # Extract the folder, ie remove the filename part - string(REGEX REPLACE "(.*)(/[^/]*)$" "\\1" SRCGR ${SRCGR}) - # Source_group expects \\ (double antislash), not / (slash) - string(REPLACE / \\ SRCGR ${SRCGR}) - source_group("${SRCGR}" FILES ${f}) -endforeach() - IF (CBASH_NO_BOOST_ZLIB) add_definitions(-DCBASH_NO_BOOST_ZLIB) - find_package(Boost REQUIRED COMPONENTS iostreams) + find_package(Boost REQUIRED COMPONENTS iostreams regex) find_package(ZLIB REQUIRED) set (CBASH_LIBS ${ZLIB_LIBRARY}) ELSE () - find_package(Boost REQUIRED COMPONENTS iostreams zlib) + find_package(Boost REQUIRED COMPONENTS iostreams zlib regex) find_package(ZLIB) set (CBASH_LIBS "") ENDIF () +IF (NOT ${ZLIB_FOUND}) + message(FATAL_ERROR "ZLIB was not found, target correct ZLIB_ROOT or use a common path") +ENDIF () + # Include source and library directories. -include_directories ("${CMAKE_SOURCE_DIR}/include/cbash" +include_directories ("${CMAKE_CURRENT_SOURCE_DIR}/include/cbash" ${Boost_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR}) @@ -106,12 +83,7 @@ IF (CMAKE_SYSTEM_NAME MATCHES "Windows") ENDIF () IF (MSVC) - IF (MSVC_VERSION EQUAL 1800) - set (CMAKE_GENERATOR_TOOLSET "v120_xp" CACHE STRING "Platform Toolset" FORCE) - ELSEIF (MSVC_VERSION EQUAL 1700) - set (CMAKE_GENERATOR_TOOLSET "v110_xp" CACHE STRING "Platform Toolset" FORCE) - ENDIF () - + # set (CMAKE_GENERATOR_TOOLSET "v141" CACHE STRING "Platform Toolset" FORCE) # Force static C++ runtime linkage. IF (PROJECT_STATIC_RUNTIME) FOREACH(flag @@ -133,5 +105,5 @@ ENDIF () ############################## # Build CBash. -add_library (CBash ${CBASH_SRC} ${CBASH_GEN_HDRS} ) +add_library (CBash STATIC ${CBASH_SRC}) target_link_libraries (CBash ${Boost_LIBRARIES} ${CBASH_LIBS}) diff --git a/README.md b/README.md index 856681b..f304647 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,8 @@ # CBash -CBash is a C/C++ library for reading and writing TES IV: Oblivion, TES V: Skyrim and Fallout: New Vegas plugin files. It's used by the [Wrye Bash](https://github.com/wrye-bash/wrye-bash) modding utility to build its Bashed Patch plugins. +CBash is a library for reading and writing TES IV: Oblivion, TES V: Skyrim and Fallout: New Vegas plugin files. It's used by the [Wrye Bash](https://github.com/wrye-bash/wrye-bash) modding utility to build its Bashed Patch plugins. -For bugs and feature request, feel free to open a new Issue in the Issue tracker. For other discussions, open a new thread [here](http://ost.io/@lojack5/CBash "ost.io"), for example asking questions about what specific parts of the code do, etc. - -Instructions on how to build CBash can be found [here](docs/BUILD.md). If linking to a static build of CBash, be sure to define `CBASH_STATIC`. Otherwise, if linking to a dynamic build, define `CBASH_DLL`. +Instructions on how to build CBash can be found [here](docs/BUILD.md). The plugin file formats are documented at the following locations: @@ -12,6 +10,6 @@ The plugin file formats are documented at the following locations: * Skyrim: [UESP.net](http://www.uesp.net/wiki/Tes5Mod:Mod_File_Format) * Fallout: New Vegas: [FOPDoc](https://github.com/WrinklyNinja/fopdoc) -The CBash API is currently sparsely documented. There is some Doxygen-style documentation of the API in the [include headers](include/cbash). +The CBash API is currently sparsely documented. There is some Doxygen-style documentation of the API functions exposed in [CBash.h](CBash.h), but some details of the field-related functions' arguments can only be found by reading the source of the `.cpp` files for the record type you are trying to access the fields of. CBash's record and field support is incomplete. For information on what has and has not ben implemented, see the [wiki](https://github.com/lojack5/CBash/wiki). diff --git a/docs/BUILD.MANUAL.md b/docs/BUILD.MANUAL.md index 3f95f1e..a0ad091 100644 --- a/docs/BUILD.MANUAL.md +++ b/docs/BUILD.MANUAL.md @@ -4,47 +4,26 @@ These instructions are for building CBash on Windows by manually creating a Micr An example of the end result can be found [here](https://drive.google.com/file/d/0B1ddaVyxNcp-ZmpyUENiRFkyUEE/edit?usp=sharing "Google Drive"), though these files are out-of-date compared to the current code, so it's best to create your own solution. -### Create the Project File 1. Create a new Win32 Application project. In the creation wizard be sure to select DLL, and tick the Empty Project option. 2. Now add all the CBash source files to the project. Personally I make the source layout look mostly identical to the actual file layout on disk. So I have a `Skyrim`, `Fallout New Vegas`, and `Oblivion` sub-filters for each of the `Source Files` and `Header Files`. Then under those a sub-filter called `Records`, and under that one called `API`. Just throw every `*.h` and `*.cpp` file into their appropriate filters in the solution explorer. Make sure to include the header files in the `include/cbash` folder too. Finally add `CBash.rc` into the `Resource Files` section. Alternatively, you can try running [this](https://github.com/lojack5/utilities/blob/master/project_update.py) Python script, which should correctly add all required files to the project. **Note:** That script is written only for Visual Studio 2013, I don't know how or if it will work for other versions. - - -### Configuration for Building as a Dynamic Library (DLL): -The following steps are actually common to both configuring to build a CBash statically and dynamically, but this guide is assuming you'll setup the dynamic build first, then copy the configurations and edit them to setup the static builds. - -1. Change Project settings for `All Configurations`. The next few steps will all be changing settings under the following section: +3. Change Project settings for `All Configurations`. The next few steps will all be changing settings under the following section: * Right Click on your project in Visual Studio, select Properties. * In the Property Pages window that pops up, select `All Configurations` from the Configuration drop down. * All changes will be made under the `Configuration Properties` sub tree on the left. -2. Additional Directories: +4. Additional Directories: * Go to `VC++ Directories`. * Edit `Include Directories` so that it includes the path to Boost, zlib and the `include/cbash` directory. * Edit `Library Directories` so that it includes the path to Boost. * If you built the zlib binaries and are going to use those instead of Boost's, add that of course. -3. Output Files: +4. Output Files: * Go to `C/C++ -> Output Files`. * Edit both `ASM List Location` and `Object File Name` to `$(IntDir)\%(RelativeDir)`. Note there is no backslash at the end. This setting is so files with the same name won't end up making object files that overwrite each other. -4. Preprocessor: +5. Preprocessor: * Go to `C/C++ -> Preprocessor` * Edit `Preprocessor Definitions` to include `_CRT_SECURE_NO_WARNINGS`. This will stop the compiler from throwing errors for using things like `strncat`. - - -### Configuration for Building as a Static Library (LIB): -After following the above steps, copy the existing configurations and edit them to build as static libraries. To do this, go to the `Configuration Manager`, and from the `Active solution configuration:` drop down, select ``, give it a new name (for example: Release Static), and copy from the applicable configuration. From there, make the following changes to both new configurations, under `Configuration Properties`. In this case, you do *not* want to have `All Configurations` selected when you're doing this, otherwise you will also be editing the DLL configurations. - -1. Under `General`, change `Configuration Type` to `Static library (.lib)`. -2. Under `C/C++ -> Preprocessor`, remove `_USRDLL` from `Preprocessor Definitions` if it is there. This will ensure `CBashConfig.h` will properly detect that you're building a static library. Optionally, you could define `CBASH_STATIC` here instead. - -**NOTE:** As of Visual Studio 2010, the resulting library (CBash.lib) will not include it's dependencies from other static libraries. This would be Boost's `iostreams`, and `zlib`, depending on how you have CBash setup to link to zlib. There are a few options to deal with this: - 1. Just build it as is, and remember that your project that links statically to CBash will need to have the directories for `iostreams` and `zlib` in the `Additional Library Directories` section of your project, otherwise it will not be able to find these libraries. - 2. Configure CBash to include these two libraries when building: - * Add the file names for `iostreams` and `zlib` to the `Librarian -> General -> Additional Dependencies` section of your config. To aid in determining the exact file names used by the Boost libraries, define `BOOST_LIB_DIAGNOSTIC` somewhere before `CBashConfig.h` is included. This will cause Boost to output which library file names are being pulled in. - * In your project that is linking to CBash, add both of these file names under `Linker -> Input -> Ignore Specific Default Libraries`. This is needed because your project will *still* try to link to these libraries, even though the symbols will now be contained in `CBash.lib`. - - -### Additional Configuration (Optional): +6. Additional Configuration (Optional): * CBash uses boost's `auto_link.hpp` to automatically link to the correct boost zlib binary. If you don't want CBash to use boost's binaries and want to specify your own instead, you need to disable this. Go to `C/C++ -> Preprocessor -> Preprocessor Definitions` and add `CBASH_NO_BOOST_ZLIB` to the list of definitions. Then you will need to add your zlib binary under `Linker -> Input -> Additional Dependencies`. * CBash automatically detects how you are using it by looking for the `_USRDLL` preprocessor definition in your project file. This definition is added by the MSVC project wizard when making a new DLL project, so if CBash isn't detecting this correctly, you have two options: * Add/remove `_USRDLL` from the preprocessor definitions as applicable. diff --git a/include/cbash/CBash.h b/include/cbash/CBash.h index ac03d02..aa5224e 100644 --- a/include/cbash/CBash.h +++ b/include/cbash/CBash.h @@ -38,7 +38,7 @@ @file CBash.h @brief This file declares the C API functions. - @details This documentation was not written by the original developer, and so may be inaccurate. In particular, cb_GetRecordHistory() and cb_IsRecordsFormIDsInvalid() may be documented incorrectly. + @details This documentation was not written by the original developer, and so may be inaccurate. In particular, GetRecordHistory() and IsRecordsFormIDsInvalid() may be documented incorrectly. */ #pragma once @@ -58,19 +58,19 @@ @brief Get CBash's minor version number. @returns Cbash's major version number. */ -DLLEXTERN uint32_t cb_GetVersionMajor(); +DLLEXTERN uint32_t GetVersionMajor(); /** @brief Get CBash's minor version number. @returns Cbash's major version number. */ -DLLEXTERN uint32_t cb_GetVersionMinor(); +DLLEXTERN uint32_t GetVersionMinor(); /** @brief Get CBash's revision (patch) version number. @returns Cbash's revision (patch) version number. */ -DLLEXTERN uint32_t cb_GetVersionRevision(); +DLLEXTERN uint32_t GetVersionRevision(); ///@} /**************************//** @@ -82,14 +82,14 @@ DLLEXTERN uint32_t cb_GetVersionRevision(); @brief Register a callback function for logging messages. @param _LoggingCallback A pointer to a callback function. If `NULL`, messages are printed to `stdout`. The callback function must take a message string argument, and returns the number of characters in the message, or `-1` if an error occurred. */ -DLLEXTERN void cb_RedirectMessages(int32_t (*_LoggingCallback)(const char *)); +DLLEXTERN void RedirectMessages(int32_t (*_LoggingCallback)(const char *)); /** @brief Register a callback function for tracing function calls. @details This function is called by many functions if they encounter an error, and is passed the name of the function it is called from. This makes it potentially useful for debugging purposes. @param _RaiseCallback A pointer to a function that takes a string argument and returns nothing. If `NULL`, no function call tracing occurs. */ -DLLEXTERN void cb_AllowRaising(void (*_RaiseCallback)(const char *)); +DLLEXTERN void AllowRaising(void (*_RaiseCallback)(const char *)); ///@} /**************************//** @@ -101,10 +101,10 @@ DLLEXTERN void cb_AllowRaising(void (*_RaiseCallback)(const char *)); @brief Create a plugin collection. @details Collections are used to manage groups of mod plugins and their data in CBash. @param ModsPath Specifies the path to the folder containing the mod plugins that are to be added to the collection. - @param CollectionType Specifies the type of game the collection is for. - @returns A pointer to the newly-created cb_collection_t object. + @param CollectionType Specifies the type of game the collection is for. Valid game types are given by ::whichGameTypes. + @returns A pointer to the newly-created collection_t object. */ -DLLEXTERN cb_collection_t * cb_CreateCollection(char * const ModsPath, const cb_game_type_t CollectionType); +DLLEXTERN collection_t * CreateCollection(char * const ModsPath, const uint32_t CollectionType); /** @brief Delete a plugin collection. @@ -112,7 +112,7 @@ DLLEXTERN cb_collection_t * cb_CreateCollection(char * const ModsPath, const cb_ @param CollectionID A pointer to the collection to be deleted. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_DeleteCollection(cb_collection_t *CollectionID); +DLLEXTERN int32_t DeleteCollection(collection_t *CollectionID); /** @brief Loads a collection of plugins. @@ -121,7 +121,7 @@ DLLEXTERN int32_t cb_DeleteCollection(cb_collection_t *CollectionID); @param _ProgressCallback A pointer to a function to use as a progress callback. If `NULL`, no progress is reported. The function arguments are the load order position of the plugin currently being loaded, the maximum load order position, and the plugin filename. The function returns a boolean that is currently ignored, but may in future be used to signal cancellation of loading by the client. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_LoadCollection(cb_collection_t *CollectionID, bool (*_ProgressCallback)(const uint32_t, const uint32_t, const char *)); +DLLEXTERN int32_t LoadCollection(collection_t *CollectionID, bool (*_ProgressCallback)(const uint32_t, const uint32_t, const char *)); /** @brief Unloads a collection of plugins. @@ -129,28 +129,28 @@ DLLEXTERN int32_t cb_LoadCollection(cb_collection_t *CollectionID, bool (*_Progr @param CollectionID A pointer to the collection to unload. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_UnloadCollection(cb_collection_t *CollectionID); +DLLEXTERN int32_t UnloadCollection(collection_t *CollectionID); /** @brief Get the game type a collection was created for. @param CollectionID The collection to get the game type for. - @returns The collection game type. + @returns The collection game type. Valid game types are given by ::whichGameTypes. */ -DLLEXTERN int32_t cb_GetCollectionType(cb_collection_t *CollectionID); +DLLEXTERN int32_t GetCollectionType(collection_t *CollectionID); /** @brief Unload all collections of plugins that have been created by CBash. - @details Unloads all loaded collections from memory, without deleting them. Has the same effect as calling cb_UnloadCollection() for each collection that has been created. + @details Unloads all loaded collections from memory, without deleting them. Has the same effect as calling UnloadCollection() for each collection that has been created. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_UnloadAllCollections(); +DLLEXTERN int32_t UnloadAllCollections(); /** @brief Delete all plugin collections created by CBash. - @details Has the same effect as calling cb_UnloadCollection() for each collection that has been created. + @details Has the same effect as calling UnloadCollection() for each collection that has been created. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_DeleteAllCollections(); +DLLEXTERN int32_t DeleteAllCollections(); ///@} /**************************//** @@ -162,10 +162,10 @@ DLLEXTERN int32_t cb_DeleteAllCollections(); @brief Add a plugin to a collection. @param CollectionID The collection to add the plugin to. @param ModName The filename of the plugin to add. - @param ModFlagsField Flags that determine how the plugin is loaded and what can be edited once it has been loaded. + @param ModFlagsField Flags that determine how the plugin is loaded and what can be edited once it has been loaded. These flags are given in ::modFlags. @returns A pointer to the plugin object added to the collection. */ -DLLEXTERN cb_mod_t * cb_AddMod(cb_collection_t *CollectionID, char * const ModName, const cb_mod_flags_t ModFlagsField); +DLLEXTERN mod_t * AddMod(collection_t *CollectionID, char * const ModName, const uint32_t ModFlagsField); /** @brief Load a single plugin. @@ -173,7 +173,7 @@ DLLEXTERN cb_mod_t * cb_AddMod(cb_collection_t *CollectionID, char * const ModNa @param ModID A pointer to the plugin object to load. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_LoadMod(cb_mod_t *ModID); +DLLEXTERN int32_t LoadMod(mod_t *ModID); /** @brief Unload a single plugin. @@ -181,7 +181,7 @@ DLLEXTERN int32_t cb_LoadMod(cb_mod_t *ModID); @param ModID A pointer to the plugin object to unload. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_UnloadMod(cb_mod_t *ModID); +DLLEXTERN int32_t UnloadMod(mod_t *ModID); /** @brief Remove unreferenced masters from a plugin. @@ -189,16 +189,16 @@ DLLEXTERN int32_t cb_UnloadMod(cb_mod_t *ModID); @param ModID A pointer to the plugin object for which unreferenced masters should be removed. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_CleanModMasters(cb_mod_t *ModID); +DLLEXTERN int32_t CleanModMasters(mod_t *ModID); /** @brief Save a single plugin's data to a plugin file. @param ModID A pointer to the plugin object to save. - @param SaveFlagsField Flags that determine how the plugin is saved. + @param SaveFlagsField Flags that determine how the plugin is saved. These flags are given in ::saveFlags. @param DestinationName The output plugin filename. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_SaveMod(cb_mod_t *ModID, const cb_save_flags_t SaveFlagsField, char * const DestinationName); +DLLEXTERN int32_t SaveMod(mod_t *ModID, const uint32_t SaveFlagsField, char * const DestinationName); ///@} /**************************//** @@ -211,31 +211,31 @@ DLLEXTERN int32_t cb_SaveMod(cb_mod_t *ModID, const cb_save_flags_t SaveFlagsFie @param CollectionID The collection to query. @returns The number of mods in the given collection, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetAllNumMods(cb_collection_t *CollectionID); +DLLEXTERN int32_t GetAllNumMods(collection_t *CollectionID); /** @brief Get an array of plugin object pointers for the plugins in a collection. @param CollectionID The collection to query. - @param ModIDs An array of plugin object pointers. The array passed to the function must be preallocated to the correct size, as given by cb_GetAllNumMods(). The array contents are filled by the function to point to the plugin objects within the collection queried. + @param ModIDs An array of plugin object pointers. The array passed to the function must be preallocated to the correct size, as given by GetAllNumMods(). The array contents are filled by the function to point to the plugin objects within the collection queried. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetAllModIDs(cb_collection_t *CollectionID, cb_mod_t ** ModIDs); +DLLEXTERN int32_t GetAllModIDs(collection_t *CollectionID, mod_t ** ModIDs); /** @brief Get the number of mods in a collection's load order. - @details Returns the number of plugins that were added to the collection with the ::CB_IN_LOAD_ORDER flag. + @details Returns the number of plugins that were added to the collection with the ::fIsInLoadOrder flag. @param CollectionID The collection to query. @returns The number of mods in the given collection's load order, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetLoadOrderNumMods(cb_collection_t *CollectionID); +DLLEXTERN int32_t GetLoadOrderNumMods(collection_t *CollectionID); /** @brief Get an array of plugin object pointers for the plugins in a collection's load order. @param CollectionID The collection to query. - @param ModIDs An array of plugin object pointers. The array passed to the function must be preallocated to the correct size, as given by cb_GetLoadOrderNumMods(). The array contents are filled by the function to point to the plugin objects within the collection queried. + @param ModIDs An array of plugin object pointers. The array passed to the function must be preallocated to the correct size, as given by GetLoadOrderNumMods(). The array contents are filled by the function to point to the plugin objects within the collection queried. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetLoadOrderModIDs(cb_collection_t *CollectionID, cb_mod_t ** ModIDs); +DLLEXTERN int32_t GetLoadOrderModIDs(collection_t *CollectionID, mod_t ** ModIDs); /** @brief Get a plugin's filename from its object pointer. @@ -243,7 +243,7 @@ DLLEXTERN int32_t cb_GetLoadOrderModIDs(cb_collection_t *CollectionID, cb_mod_t @param ModID The object pointer of the plugin to look up. @returns The plugin's filename, or `NULL` if an error occurred. */ -DLLEXTERN char * cb_GetFileNameByID(cb_mod_t *ModID); +DLLEXTERN char * GetFileNameByID(mod_t *ModID); /** @brief Get a plugin's filename from its position in the load order. @@ -252,24 +252,24 @@ DLLEXTERN char * cb_GetFileNameByID(cb_mod_t *ModID); @param ModIndex The load order position to look up. @returns The plugin's filename, or `NULL` if an error occurred. */ -DLLEXTERN char * cb_GetFileNameByLoadOrder(cb_collection_t *CollectionID, const uint32_t ModIndex); +DLLEXTERN char * GetFileNameByLoadOrder(collection_t *CollectionID, const uint32_t ModIndex); /** @brief Get a plugin's unghosted filename from its object pointer. - @details Returns the same value as cb_GetFileNameByID() for unghosted plugins, and the filename minus the `.ghost` extension for ghosted plugins. + @details Returns the same value as GetFileNameByID() for unghosted plugins, and the filename minus the `.ghost` extension for ghosted plugins. @param ModID The object pointer of the plugin to look up. @returns The plugin's unghosted filename, or `NULL` if an error occurred. */ -DLLEXTERN char * cb_GetModNameByID(cb_mod_t *ModID); +DLLEXTERN char * GetModNameByID(mod_t *ModID); /** @brief Get a plugin's unghosted filename from its position in the load order. - @details Returns the same value as cb_GetFileNameByLoadOrder() for unghosted plugins, and the filename minus the `.ghost` extension for ghosted plugins. + @details Returns the same value as GetFileNameByLoadOrder() for unghosted plugins, and the filename minus the `.ghost` extension for ghosted plugins. @param CollectionID The collection to query. @param ModIndex The load order position to look up, or `NULL` if an error occurred. @returns The plugin's unghosted filename, or `NULL` if an error occurred. */ -DLLEXTERN char * cb_GetModNameByLoadOrder(cb_collection_t *CollectionID, const uint32_t ModIndex); +DLLEXTERN char * GetModNameByLoadOrder(collection_t *CollectionID, const uint32_t ModIndex); /** @brief Get a plugin's object using its filename. @@ -277,7 +277,7 @@ DLLEXTERN char * cb_GetModNameByLoadOrder(cb_collection_t *CollectionID, const u @param ModName The plugin filename. @returns A pointer to the plugin object, or `NULL` if the plugin was not found. */ -DLLEXTERN cb_mod_t * cb_GetModIDByName(cb_collection_t *CollectionID, char * const ModName); +DLLEXTERN mod_t * GetModIDByName(collection_t *CollectionID, char * const ModName); /** @brief Get a plugin's object using its position in the load order. @@ -285,7 +285,7 @@ DLLEXTERN cb_mod_t * cb_GetModIDByName(cb_collection_t *CollectionID, char * con @param ModIndex The load order position to look up. @returns A pointer to the plugin object, or `NULL` if the plugin was not found. */ -DLLEXTERN cb_mod_t * cb_GetModIDByLoadOrder(cb_collection_t *CollectionID, const uint32_t ModIndex); +DLLEXTERN mod_t * GetModIDByLoadOrder(collection_t *CollectionID, const uint32_t ModIndex); /** @brief Get a plugin's load order position using its filename. @@ -293,66 +293,66 @@ DLLEXTERN cb_mod_t * cb_GetModIDByLoadOrder(cb_collection_t *CollectionID, const @param ModName The plugin filename to look up. @returns The plugin's load order position, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetModLoadOrderByName(cb_collection_t *CollectionID, char * const ModName); +DLLEXTERN int32_t GetModLoadOrderByName(collection_t *CollectionID, char * const ModName); /** @brief Get a plugin's load order position using its object pointer. @param ModID The plugin's object pointer. @returns The plugin's load order position, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetModLoadOrderByID(cb_mod_t *ModID); +DLLEXTERN int32_t GetModLoadOrderByID(mod_t *ModID); /** @brief Get a plugin using a record from it. @param RecordID The record to get the parent plugin of. @returns A plugin pointer, or `NULL` if an error occurred. */ -DLLEXTERN cb_mod_t * cb_GetModIDByRecordID(cb_record_t *RecordID); +DLLEXTERN mod_t * GetModIDByRecordID(record_t *RecordID); /** @brief Get a collection using a record from a plugin in it. @param RecordID The record to get the parent plugin's collection from. @returns A collection pointer, or `NULL` if an error occurred. */ -DLLEXTERN cb_collection_t * cb_GetCollectionIDByRecordID(cb_record_t *RecordID); +DLLEXTERN collection_t * GetCollectionIDByRecordID(record_t *RecordID); /** @brief Get a collection using a plugin in it. @param ModID The plugin to get the parent collection of. @returns A collection pointer, or `NULL` if an error occurred. */ -DLLEXTERN cb_collection_t * cb_GetCollectionIDByModID(cb_mod_t *ModID); +DLLEXTERN collection_t * GetCollectionIDByModID(mod_t *ModID); /** @brief Check if a plugin contains any records. @param ModID The plugin to query. @returns `1` if the plugin is empty, `0` otherwise. */ -DLLEXTERN uint32_t cb_IsModEmpty(cb_mod_t *ModID); +DLLEXTERN uint32_t IsModEmpty(mod_t *ModID); /** @brief Get the number of different record types in a plugin. - @details This function will fail unless the plugin was added to the collection with the ::CB_TRACK_NEW_TYPES flag. + @details This function will fail unless the plugin was added to the collection with the ::fIsTrackNewTypes flag. @param ModID The plugin to query. @returns The number of record types in the plugin, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetModNumTypes(cb_mod_t *ModID); +DLLEXTERN int32_t GetModNumTypes(mod_t *ModID); /** @brief Get an array of different record types in a plugin. - @details This function will fail unless the plugin was added to the collection with the ::CB_TRACK_NEW_TYPES flag. + @details This function will fail unless the plugin was added to the collection with the ::fIsTrackNewTypes flag. @param ModID The plugin to query. - @param RecordTypes An array of record IDs. Each ID is a four-character sequence in in reverse, eg. `TES4` is stored as `4SET`. The array passed to the function must be preallocated to the correct size, as given by cb_GetModNumTypes(). The array contents are filled by the function. + @param RecordTypes An array of record IDs. Each ID is a four-character sequence in in reverse, eg. `TES4` is stored as `4SET`. The array passed to the function must be preallocated to the correct size, as given by GetModNumTypes(). The array contents are filled by the function. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetModTypes(cb_mod_t *ModID, uint32_t * RecordTypes); +DLLEXTERN int32_t GetModTypes(mod_t *ModID, uint32_t * RecordTypes); /** @brief Get the number of empty record groups in a plugin. @param ModID The plugin to query. @returns The number of empty record groups in the plugin, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetModNumEmptyGRUPs(cb_mod_t *ModID); +DLLEXTERN int32_t GetModNumEmptyGRUPs(mod_t *ModID); /** @brief Get the number of orphaned records in a plugin. @@ -360,16 +360,16 @@ DLLEXTERN int32_t cb_GetModNumEmptyGRUPs(cb_mod_t *ModID); @param ModID The plugin to query. @returns The number of orphaned records in the plugin, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetModNumOrphans(cb_mod_t *ModID); +DLLEXTERN int32_t GetModNumOrphans(mod_t *ModID); /** @brief Get an array of orphaned record FormIDs in a plugin. @details Orphaned records are those which reference a parent record that does not exist. @param ModID The plugin to query. - @param FormIDs An outputted array of the FormIDs of the orphaned records in the plugin. The array passed to the function must be preallocated to the correct size, as given by cb_GetModNumOrphans(). The array contents are filled by the function. + @param FormIDs An outputted array of the FormIDs of the orphaned records in the plugin. The array passed to the function must be preallocated to the correct size, as given by GetModNumOrphans(). The array contents are filled by the function. @returns `0` on success, `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetModOrphansFormIDs(cb_mod_t *ModID, cb_formid_t * FormIDs); +DLLEXTERN int32_t GetModOrphansFormIDs(mod_t *ModID, FORMID * FormIDs); ///@} /**************************//** @@ -385,7 +385,7 @@ DLLEXTERN int32_t cb_GetModOrphansFormIDs(cb_mod_t *ModID, cb_formid_t * FormIDs @param IsMGEFCode Whether or not the FormID passed is a MGEF code. MGEF (Magic Effect) records are special cases that are referenced using their EditorIDs rather than their FormIDs, so need special handling. @returns The filename of the plugin referenced by the given FormID, or `NULL` if an error occurred. */ -DLLEXTERN char * cb_GetLongIDName(cb_record_t *RecordID, const uint32_t FormID, const bool IsMGEFCode); +DLLEXTERN char * GetLongIDName(record_t *RecordID, const uint32_t FormID, const bool IsMGEFCode); /** @brief Get a FormID for an object in a plugin. @@ -395,7 +395,7 @@ DLLEXTERN char * cb_GetLongIDName(cb_record_t *RecordID, const uint32_t FormID, @param IsMGEFCode Whether or not the ObjectID passed is for a MGEF code. MGEF (Magic Effect) records are special cases that are referenced using their EditorIDs rather than their FormIDs, so need special handling. @returns The FormID produced, or `NULL` if an error occurred. */ -DLLEXTERN uint32_t cb_MakeShortFormID(cb_mod_t *ModID, const uint32_t ObjectID, const bool IsMGEFCode); +DLLEXTERN uint32_t MakeShortFormID(mod_t *ModID, const uint32_t ObjectID, const bool IsMGEFCode); ///@} /**************************//** @@ -410,10 +410,10 @@ DLLEXTERN uint32_t cb_MakeShortFormID(cb_mod_t *ModID, const uint32_t ObjectID, @param RecordFormID The record FormID. @param RecordEditorID The record EditorID. @param ParentID The parent record for the record to be created. Some record types, usually worldspace-related, have hierarchies of parent and child records. If no parent is desired, `NULL` can be passed. - @param CreateFlags Flags that determine how the record is created. + @param CreateFlags Flags that determine how the record is created. These flags are given in ::createFlags. @returns A pointer to the created record, or `NULL` if an error was encountered. */ -DLLEXTERN cb_record_t * cb_CreateRecord(cb_mod_t *ModID, const uint32_t RecordType, const cb_formid_t RecordFormID, char * const RecordEditorID, cb_record_t *ParentID, const cb_create_flags_t CreateFlags); +DLLEXTERN record_t * CreateRecord(mod_t *ModID, const uint32_t RecordType, const FORMID RecordFormID, char * const RecordEditorID, record_t *ParentID, const uint32_t CreateFlags); /** @brief Copy a record from one plugin into another. @@ -422,10 +422,10 @@ DLLEXTERN cb_record_t * cb_CreateRecord(cb_mod_t *ModID, const uint32_t RecordTy @param DestParentID The parent record for the record copy. Some record types, usually worldspace-related, have hierarchies of parent and child records. If no parent is desired, `NULL` can be passed. @param DestRecordFormID The FormID of the record copy. @param DestRecordEditorID The Editor ID of the record copy. - @param CreateFlags Flags that determine how the record copy is created. + @param CreateFlags Flags that determine how the record copy is created. These flags are given in ::createFlags. @returns A pointer to the record copy, or `NULL` if an error was encountered. */ -DLLEXTERN cb_record_t * cb_CopyRecord(cb_record_t *RecordID, cb_mod_t *DestModID, cb_record_t *DestParentID, const cb_formid_t DestRecordFormID, char * const DestRecordEditorID, const cb_create_flags_t CreateFlags); +DLLEXTERN record_t * CopyRecord(record_t *RecordID, mod_t *DestModID, record_t *DestParentID, const FORMID DestRecordFormID, char * const DestRecordEditorID, const uint32_t CreateFlags); /** @brief Unload a record from memory. @@ -433,7 +433,7 @@ DLLEXTERN cb_record_t * cb_CopyRecord(cb_record_t *RecordID, cb_mod_t *DestModID @param RecordID The record to unload. @returns `1` on success, `0` on failure. */ -DLLEXTERN int32_t cb_UnloadRecord(cb_record_t *RecordID); +DLLEXTERN int32_t UnloadRecord(record_t *RecordID); /** @brief Discards changes made to a record since it was last saved. @@ -441,14 +441,14 @@ DLLEXTERN int32_t cb_UnloadRecord(cb_record_t *RecordID); @param RecordID The record to reset. @returns `1` on success, `0` on failure. */ -DLLEXTERN int32_t cb_ResetRecord(cb_record_t *RecordID); +DLLEXTERN int32_t ResetRecord(record_t *RecordID); /** @brief Delete a record. @param RecordID The record to delete. @returns `1` on success, `0` on failure. */ -DLLEXTERN int32_t cb_DeleteRecord(cb_record_t *RecordID); +DLLEXTERN int32_t DeleteRecord(record_t *RecordID); ///@} /**************************//** @@ -463,7 +463,7 @@ DLLEXTERN int32_t cb_DeleteRecord(cb_record_t *RecordID); @param RecordEditorID The EditorID to look for, used if the FormID given is `NULL`. If this is also `NULL`, the plugin's TES4 record is returned. @returns The specified record, or `NULL` if an error occurred. */ -DLLEXTERN cb_record_t * cb_GetRecordID(cb_mod_t *ModID, const cb_formid_t RecordFormID, char * const RecordEditorID); +DLLEXTERN record_t * GetRecordID(mod_t *ModID, const FORMID RecordFormID, char * const RecordEditorID); /** @brief Get the number of records of a specified type in a plugin. @@ -471,51 +471,51 @@ DLLEXTERN cb_record_t * cb_GetRecordID(cb_mod_t *ModID, const cb_formid_t Record @param RecordType The record type to look for. This should be its 4-byte name in reverse order, eg. to search for `CELL` records, you would pass `'LLEC'`. @returns The number of records of the specified type, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetNumRecords(cb_mod_t *ModID, const uint32_t RecordType); +DLLEXTERN int32_t GetNumRecords(mod_t *ModID, const uint32_t RecordType); /** @brief Get an array of records of a specified type in a plugin. @param ModID The plugin to query. @param RecordType The record type to look for. This should be its 4-byte name in reverse order, eg. to search for `CELL` records, you would pass a `uint32_t RecordType = 'LLEC';`. - @param RecordIDs An array of record pointers, pre-allocated to be of the size given by cb_GetNumRecords(). This function populates the array. + @param RecordIDs An array of record pointers, pre-allocated to be of the size given by GetNumRecords(). This function populates the array. @returns The number of records retrieved, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetRecordIDs(cb_mod_t *ModID, const uint32_t RecordType, cb_record_t ** RecordIDs); +DLLEXTERN int32_t GetRecordIDs(mod_t *ModID, const uint32_t RecordType, record_t ** RecordIDs); /** @brief Check if the given record is winning any conflict with other records. @details A record wins a conflict if it is the last-loaded version of that record in the load order. @param RecordID The record to query. - @param GetExtendedConflicts If true, checks for conflicts in plugins loaded with the ::CB_EXTENDED_CONFLICTS flag, otherwise they are ignored. + @param GetExtendedConflicts If true, checks for conflicts in plugins loaded with the ::fIsExtendedConflicts flag, otherwise they are ignored. @returns `1` if the record is winning, `0` if it is not, and `-1` if an error occurred. */ -DLLEXTERN int32_t cb_IsRecordWinning(cb_record_t *RecordID, const bool GetExtendedConflicts); +DLLEXTERN int32_t IsRecordWinning(record_t *RecordID, const bool GetExtendedConflicts); /** @brief Get the number of conflicting versions of the given record in its parent collection. @param RecordID The record to look for conflicts for. - @param GetExtendedConflicts If true, checks for conflicts in plugins loaded with the ::CB_EXTENDED_CONFLICTS flag, otherwise they are ignored. + @param GetExtendedConflicts If true, checks for conflicts in plugins loaded with the ::fIsExtendedConflicts flag, otherwise they are ignored. @returns The number of conflicting versions of the record, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetNumRecordConflicts(cb_record_t *RecordID, const bool GetExtendedConflicts); +DLLEXTERN int32_t GetNumRecordConflicts(record_t *RecordID, const bool GetExtendedConflicts); /** @brief Get an array of the different versions of the given record in its parent collection. @param RecordID The record to look for conflicts for. - @param RecordIDs An array of record pointers, pre-allocated to be of the size given by cb_GetNumRecordConflicts(). This function populates the array. - @param GetExtendedConflicts If true, checks for conflicts in plugins loaded with the ::CB_EXTENDED_CONFLICTS flag, otherwise they are ignored. + @param RecordIDs An array of record pointers, pre-allocated to be of the size given by GetNumRecordConflicts(). This function populates the array. + @param GetExtendedConflicts If true, checks for conflicts in plugins loaded with the ::fIsExtendedConflicts flag, otherwise they are ignored. @returns The number of records retrieved, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetRecordConflicts(cb_record_t *RecordID, cb_record_t ** RecordIDs, const bool GetExtendedConflicts); +DLLEXTERN int32_t GetRecordConflicts(record_t *RecordID, record_t ** RecordIDs, const bool GetExtendedConflicts); /** @brief Get an array of the different versions of the given record in its parent collection. - @details Unlike cb_GetRecordConflicts(), this function will fail if the given record's parent plugin was loaded with the ::CB_EXTENDED_CONFLICTS flag set, and doesn't include the record passed in the outputted array. + @details Unlike GetRecordConflicts(), this function will fail if the given record's parent plugin was loaded with the ::fIsExtendedConflicts flag set, and doesn't include the record passed in the outputted array. @param RecordID The record to look for conflicts for. - @param RecordIDs An array of record pointers, pre-allocated to be of the size given by cb_GetNumRecordConflicts(). This function populates the array. + @param RecordIDs An array of record pointers, pre-allocated to be of the size given by GetNumRecordConflicts(). This function populates the array. @returns The number of records retrieved, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetRecordHistory(cb_record_t *RecordID, cb_record_t ** RecordIDs); +DLLEXTERN int32_t GetRecordHistory(record_t *RecordID, record_t ** RecordIDs); /** @brief Get the number of Identical To Master records in a plugin. @@ -523,23 +523,23 @@ DLLEXTERN int32_t cb_GetRecordHistory(cb_record_t *RecordID, cb_record_t ** Reco @param ModID The plugin to query. @returns The number of Identical To Master records, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetNumIdenticalToMasterRecords(cb_mod_t *ModID); +DLLEXTERN int32_t GetNumIdenticalToMasterRecords(mod_t *ModID); /** @brief Gets an array of the Identical To Master records in a plugin. @details Identical To Master records are unedited copies of records present in a plugin's masters. @param ModID The plugin to query. - @param RecordIDs An array of record pointers, pre-allocated to be of the size given by cb_GetNumIdenticalToMasterRecords(). This function populates the array. + @param RecordIDs An array of record pointers, pre-allocated to be of the size given by GetNumIdenticalToMasterRecords(). This function populates the array. @returns The number of records the array is populated with, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetIdenticalToMasterRecords(cb_mod_t *ModID, cb_record_t ** RecordIDs); +DLLEXTERN int32_t GetIdenticalToMasterRecords(mod_t *ModID, record_t ** RecordIDs); /** @brief Check if a record's FormID or any of the FormIDs referenced by the record are invalid. @param RecordID The record to check. @returns `1` if the record has or references an invalid FormID, `0` if all the FormIDs it contains are valid, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_IsRecordFormIDsInvalid(cb_record_t *RecordID); +DLLEXTERN int32_t IsRecordsFormIDsInvalid(record_t *RecordID); ///@} /**************************//** @@ -557,7 +557,7 @@ DLLEXTERN int32_t cb_IsRecordFormIDsInvalid(cb_record_t *RecordID); @param ArraySize The size of the OldFormIDs, NewFormIDs and Changes arrays. @returns The total number of updated references, or `-1` if an error occurred. */ -DLLEXTERN int32_t cb_UpdateReferences(cb_mod_t *ModID, cb_record_t *RecordID, cb_formid_t * OldFormIDs, cb_formid_t * NewFormIDs, uint32_t * Changes, const uint32_t ArraySize); +DLLEXTERN int32_t UpdateReferences(mod_t *ModID, record_t *RecordID, FORMID * OldFormIDs, FORMID * NewFormIDs, uint32_t * Changes, const uint32_t ArraySize); ///@} /**************************//** @@ -571,7 +571,7 @@ DLLEXTERN int32_t cb_UpdateReferences(cb_mod_t *ModID, cb_record_t *RecordID, cb @param RecordID The record to query. If `NULL`, all record changes in the collection are discarded. @returns `1` if the record has had its references updated, `0` if not, and `-1` if an error occurred. */ -DLLEXTERN int32_t cb_GetRecordUpdatedReferences(cb_collection_t *CollectionID, cb_record_t *RecordID); +DLLEXTERN int32_t GetRecordUpdatedReferences(collection_t *CollectionID, record_t *RecordID); ///@} /**************************//** @@ -586,11 +586,11 @@ DLLEXTERN int32_t cb_GetRecordUpdatedReferences(cb_collection_t *CollectionID, c @param EditorID The EditorID to set. If the EditorID is already in use by another record in the same plugin, the function will exit with error. @returns `1` if the FormID and/or EditorID was changed, or `-1` if nothing was changed or an error occurred. */ -DLLEXTERN int32_t cb_SetIDFields(cb_record_t *RecordID, const cb_formid_t FormID, char * const EditorID); +DLLEXTERN int32_t SetIDFields(record_t *RecordID, const FORMID FormID, char * const EditorID); /** - @brief Set a record field's value. - @details The parameters \p FieldID, \p ListIndex, \p ListFieldID, \p ListX2Index, \p ListX2FieldID, \p ListX3Index and \p ListX3FieldID take values that vary on a per-record and per-field level. To determine valid values for a particular record field, read the comments in the corresponding functions for the record's `*RecordAPI.cpp` file. + @brief Set a field's value. + @details @param RecordID The record in which the field is found. @param FieldID @param ListIndex @@ -599,15 +599,15 @@ DLLEXTERN int32_t cb_SetIDFields(cb_record_t *RecordID, const cb_formid_t FormID @param ListX2FieldID @param ListX3Index @param ListX3FieldID - @param FieldValue The value to set. Any memory allocated for the data passed can be freed once the function has completed, as CBash makes a copy of the data. - @param ArraySize The length of the data to be set as the field's value. + @param FieldValue The value to set. + @param ArraySize The byte size of the value to set. @returns */ -DLLEXTERN void cb_SetField(cb_record_t *RecordID, FIELD_IDENTIFIERS, void *FieldValue, const uint32_t ArraySize); +DLLEXTERN void SetField(record_t *RecordID, FIELD_IDENTIFIERS, void *FieldValue, const uint32_t ArraySize); /** - @brief Delete a field from a record. - @details The parameters \p FieldID, \p ListIndex, \p ListFieldID, \p ListX2Index, \p ListX2FieldID, \p ListX3Index and \p ListX3FieldID take values that vary on a per-record and per-field level. To determine valid values for a particular record field, read the comments in the corresponding functions for the record's `*RecordAPI.cpp` file. + @brief + @details @param RecordID The record in which the field is found. @param FieldID @param ListIndex @@ -616,8 +616,9 @@ DLLEXTERN void cb_SetField(cb_record_t *RecordID, FIELD_IDENTIFIERS, void *Field @param ListX2FieldID @param ListX3Index @param ListX3FieldID + @returns */ -DLLEXTERN void cb_DeleteField(cb_record_t *RecordID, FIELD_IDENTIFIERS); +DLLEXTERN void DeleteField(record_t *RecordID, FIELD_IDENTIFIERS); ///@} /**************************//** @@ -626,8 +627,8 @@ DLLEXTERN void cb_DeleteField(cb_record_t *RecordID, FIELD_IDENTIFIERS); ///@{ /** - @brief Get the type of a field's value. - @details The parameters \p FieldID, \p ListIndex, \p ListFieldID, \p ListX2Index, \p ListX2FieldID, \p ListX3Index, \p ListX3FieldID and \p WhichAttribute take values that vary on a per-record and per-field level. To determine valid values for a particular record field, read the comments in the corresponding functions for the record's `*RecordAPI.cpp` file. + @brief + @details @param RecordID The record in which the field is found. @param FieldID @param ListIndex @@ -636,14 +637,14 @@ DLLEXTERN void cb_DeleteField(cb_record_t *RecordID, FIELD_IDENTIFIERS); @param ListX2FieldID @param ListX3Index @param ListX3FieldID - @param WhichAttribute For fields that consist of more than one attribute value, this specifies which attribute to get. For single-attribute fields, it is ignored. - @returns A ::cb_field_type_t value. + @param WhichAttribute + @returns */ -DLLEXTERN uint32_t cb_GetFieldAttribute(cb_record_t *RecordID, FIELD_IDENTIFIERS, const uint32_t WhichAttribute); +DLLEXTERN uint32_t GetFieldAttribute(record_t *RecordID, FIELD_IDENTIFIERS, const uint32_t WhichAttribute); /** - @brief Get a field's value. - @details The parameters \p FieldID, \p ListIndex, \p ListFieldID, \p ListX2Index, \p ListX2FieldID, \p ListX3Index and \p ListX3FieldID take values that vary on a per-record and per-field level. To determine valid values for a particular record field, read the comments in the corresponding functions for the record's `*RecordAPI.cpp` file. + @brief + @details @param RecordID The record in which the field is found. @param FieldID @param ListIndex @@ -655,6 +656,6 @@ DLLEXTERN uint32_t cb_GetFieldAttribute(cb_record_t *RecordID, FIELD_IDENTIFIERS @param FieldValues @returns */ -DLLEXTERN void * cb_GetField(cb_record_t *RecordID, FIELD_IDENTIFIERS, void **FieldValues); +DLLEXTERN void * GetField(record_t *RecordID, FIELD_IDENTIFIERS, void **FieldValues); ///@} diff --git a/include/cbash/CBashConfig.h b/include/cbash/CBashConfig.h index b986ceb..a5f3714 100644 --- a/include/cbash/CBashConfig.h +++ b/include/cbash/CBashConfig.h @@ -86,112 +86,30 @@ // DLLExport/Import #ifdef __cplusplus - #define CBEXTERN extern "C" + #define DLLEXPORT extern "C" __declspec(dllexport) + #define DLLIMPORT extern "C" __declspec(dllimport) #else - #define CBEXTERN + #define DLLEXPORT __declspec(dllexport) + #define DLLIMPORT __declspec(dllimport) #endif -#define DLLEXPORT CBEXTERN __declspec(dllexport) -#define DLLIMPORT CBEXTERN __declspec(dllimport) // Setup some defines/includes for use in CBash.h/.cpp -#ifdef COMPILING_CBASH - // On MSVC 2005 and greater, prevent warnings about insecure CRT functions - // Make sure this is defined before any other includes, so as to be defined - // before any CRT headers are included (for example, via boost/config/auto_link.hpp) - #if defined(_MSC_VER) && _MSC_VER >= 1400 - #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 - #endif - // Compiling either CBash static or dynamic library - #ifdef CBASH_STATIC - // Static (CBash.lib) - #define DLLEXTERN CBEXTERN - #define CPPDLLEXTERN CBEXTERN - #else - // Dynamic (CBash.dll) - #define DLLEXTERN DLLEXPORT - #define CPPDLLEXTERN DLLEXPORT - #endif +#ifdef CBASH_STATIC + #define DLLEXTERN + #define CPPDLLEXTERN +#elif defined COMPILING_CBASH + #define DLLEXTERN DLLEXPORT + #define CPPDLLEXTERN DLLEXPORT // Also, link against the Boost zlib library #if !defined(CBASH_NO_BOOST_ZLIB) - #define BOOST_LIB_NAME boost_zlib + #define BOOST_LIB_NAME "boost_zlib" #include #else // Cleanup #undef CBASH_NO_BOOST_ZLIB #endif - // And prevent short name aliases for API functions - #undef CBASH_SHORT_NAMES -#elif defined CBASH_STATIC - // Linking to static CBash.lib - #define DLLEXTERN CBEXTERN #elif defined CBASH_DLL - // Linking to dynamic CBash.dll + // Not compiling, just an API user of the DLL #define DLLEXTERN DLLIMPORT #endif - - -// Allow the user to specify they want macro aliases of the API functions -// to use the non-prefixed function names -#ifdef CBASH_SHORT_NAMES - #define GetVersionMajor(...) cb_GetVersionMajor(__VA_ARGS__) - #define GetVersionMinor(...) cb_GetVersionMinor(__VA_ARGS__) - #define GetVersionRevision(...) cb_GetVersionRevision(__VA_ARGS__) - #define CreateCollection(...) cb_CreateCollection(__VA_ARGS__) - #define DeleteCollection(...) cb_DeleteCollection(__VA_ARGS__) - #define LoadCollection(...) cb_LoadCollection(__VA_ARGS__) - #define UnloadCollection(...) cb_UnloadCollection(__VA_ARGS__) - #define GetCollectionType(...) cb_GetCollectionType(__VA_ARGS__) - #define UnloadAllCollections(...) cb_UnloadAllCollections(__VA_ARGS__) - #define DeleteAllCollections(...) cb_DeleteAllCollections(__VA_ARGS__) - #define AddMod(...) cb_AddMod(__VA_ARGS__) - #define LoadMod(...) cb_LoadMod(__VA_ARGS__) - #define UnloadMod(...) cb_UnloadMod(__VA_ARGS__) - #define CleanModMasters(...) cb_CleanModMasters(__VA_ARGS__) - #define SaveMod(...) cb_SaveMod(__VA_ARGS__) - #define GetAllNumMods(...) cb_GetAllNumMods(__VA_ARGS__) - #define GetAllModIDs(...) cb_GetAllModIDs(__VA_ARGS__) - #define GetLoadOrderNumMods(...) cb_GetLoadOrderNumMods(__VA_ARGS__) - #define GetLoadOrderModIDs(...) cb_GetLoadOrderModIDs(__VA_ARGS__) - #define GetFileNameByID(...) cb_GetFileNameByID(__VA_ARGS__) - #define GetFileNameByLoadOrder(...) cb_GetFileNameByLoadOrder(__VA_ARGS__) - #define GetModNameByID(...) cb_GetModNameByID(__VA_ARGS__) - #define GetModNameByLoadOrder(...) cb_GetModNameByLoadOrder(__VA_ARGS__) - #define GetModIDByName(...) cb_GetModIDByName(__VA_ARGS__) - #define GetModIDByLoadOrder(...) cb_GetModIDByLoadOrder(__VA_ARGS__) - #define GetModLoadOrderByName(...) cb_GetModLoadOrderByName(__VA_ARGS__) - #define GetModLoadOrderByID(...) cb_GetModLoadOrderByID(__VA_ARGS__) - #define GetModIDByRecordID(...) cb_GetModIDByRecordID(__VA_ARGS__) - #define GetCollectionIDByRecordID(...) cb_GetCollectionIDByRecordID(__VA_ARGS__) - #define GetCollectionIDByModID(...) cb_GetCollectionIDByModID(__VA_ARGS__) - #define IsModEmpty(...) cb_IsModEmpty(__VA_ARGS__) - #define GetModNumTypes(...) cb_GetModNumTypes(__VA_ARGS__) - #define GetModTypes(...) cb_GetModTypes(__VA_ARGS__) - #define GetModNumEmptyGRUPs(...) cb_GetModNumEmptyGRUPs(__VA_ARGS__) - #define GetModNumOrphans(...) cb_GetModNumOrphans(__VA_ARGS__) - #define GetModOrphansFormIDs(...) cb_GetModOrphansFormIDs(__VA_ARGS__) - #define GetLongIDName(...) cb_GetLongIDName(__VA_ARGS__) - #define MakeShortFormID(...) cb_MakeShortFormID(__VA_ARGS__) - #define CreateRecord(...) cb_CreateRecord(__VA_ARGS__) - #define CopyRecord(...) cb_CopyRecord(__VA_ARGS__) - #define UnloadRecord(...) cb_UnloadRecord(__VA_ARGS__) - #define ResetRecord(...) cb_ResetRecord(__VA_ARGS__) - #define DeleteRecord(...) cb_DeleteRecord(__VA_ARGS__) - #define GetRecordID(...) cb_GetRecordID(__VA_ARGS__) - #define GetNumRecords(...) cb_GetNumRecords(__VA_ARGS__) - #define GetRecordIDs(...) cb_GetRecordIDs(__VA_ARGS__) - #define IsRecordWinning(...) cb_IsRecordWinning(__VA_ARGS__) - #define GetNumRecordConflicts(...) cb_GetNumRecordConflicts(__VA_ARGS__) - #define GetRecordConflicts(...) cb_GetRecordConflicts(__VA_ARGS__) - #define GetRecordHistory(...) cb_GetRecordHistory(__VA_ARGS__) - #define GetNumIdenticalToMasterRecords(...) cb_GetNumIdenticalToMasterRecords(__VA_ARGS__) - #define GetIdenticalToMasterRecords(...) cb_GetIdenticalToMasterRecords(__VA_ARGS__) - #define IsRecordFormIDsInvalid(...) cb_IsRecordFormIDsInvalid(__VA_ARGS__) - #define UpdateReferences(...) cb_UpdateReferences(__VA_ARGS__) - #define GetRecordUpdatedReferences(...) cb_GetRecordUpdatedReferences(__VA_ARGS__) - #define SetIDFields(...) cb_SetIDFields(__VA_ARGS__) - #define SetField(...) cb_SetField(__VA_ARGS__) - #define DeleteField(...) cb_DeleteField(__VA_ARGS__) - #define GetFieldAttribute(...) cb_GetFieldAttribute(__VA_ARGS__) - #define GetField(...) cb_GetField(__VA_ARGS__) -#endif diff --git a/include/cbash/Types.h b/include/cbash/Types.h index 04f465e..d6c52e2 100644 --- a/include/cbash/Types.h +++ b/include/cbash/Types.h @@ -52,11 +52,11 @@ extern "C" { #endif -typedef struct Collection cb_collection_t; -typedef struct ModFile cb_mod_t; -typedef struct Record cb_record_t; +typedef struct Collection collection_t; +typedef struct ModFile mod_t; +typedef struct Record record_t; -typedef uint32_t cb_formid_t; +typedef uint32_t FORMID; #ifndef FIELD_IDENTIFIERS #define FIELD_IDENTIFIERS const uint32_t FieldID, const uint32_t ListIndex, const uint32_t ListFieldID, const uint32_t ListX2Index, const uint32_t ListX2FieldID, const uint32_t ListX3Index, const uint32_t ListX3FieldID @@ -67,27 +67,27 @@ typedef uint32_t cb_formid_t; @details The game type determines the file format CBash should assume when reading and writing plugin data. */ typedef enum { - CB_OBLIVION = 0, ///< TES IV: Oblivion game type. - CB_FALLOUT3, ///< Fallout 3 game type. - CB_FALLOUT_NEW_VEGAS, ///< Fallout: New Vegas game type. - CB_SKYRIM, ///< TES V: Skyrim game type. - CB_UNKNOWN_GAME_TYPE -} cb_game_type_t; + eIsOblivion = 0, ///< TES IV: Oblivion game type. + eIsFallout3, ///< Fallout 3 game type. + eIsFalloutNewVegas, ///< Fallout: New Vegas game type. + eIsSkyrim, ///< TES V: Skyrim game type. + eIsUnknownGameType +} whichGameTypes; /** @brief Flags that specify how a plugin is to be loaded. - @details ::CB_MIN_LOAD and ::CB_FULL_LOAD are exclusive. If both are set, ::CB_FULL_LOAD takes + @details ::fIsMinLoad and ::fIsFullLoad are exclusive. If both are set, ::fIsFullLoad takes priority. If neither is set, the mod isn't loaded. Only the following combinations are tested via Bash: - - Normal: (::CB_MIN_LOAD or ::CB_FULL_LOAD) + ::CB_IN_LOAD_ORDER + ::CB_SAVEABLE + ::CB_ADD_MASTERS + ::CB_LOAD_MASTERS - - Dummy: ::CB_ADD_MASTERS - - Merged: (::CB_MIN_LOAD or ::CB_FULL_LOAD) + ::CB_SKIP_NEW_RECORDS + ::CB_IGNORE_INACTIVE_MASTERS - - Scanned: (::CB_MIN_LOAD or ::CB_FULL_LOAD) + ::CB_SKIP_NEW_RECORDS + ::CB_EXTENDED_CONFLICTS + - Normal: (::fIsMinLoad or ::fIsFullLoad) + ::fIsInLoadOrder + ::fIsSaveable + ::fIsAddMasters + ::fIsLoadMasters + - Dummy: ::fIsAddMasters + - Merged: (::fIsMinLoad or ::fIsFullLoad) + ::fIsSkipNewRecords + ::fIsIgnoreInactiveMasters + - Scanned: (::fIsMinLoad or ::fIsFullLoad) + ::fIsSkipNewRecords + ::fIsExtendedConflicts */ typedef enum { - CB_MIN_LOAD = 0x00000001, ///< Causes only the TES4 header record to be loaded. - CB_FULL_LOAD = 0x00000002, ///< Causes all records to be loaded (unless overridden by another flag). + fIsMinLoad = 0x00000001, ///< Causes only the TES4 header record to be loaded. + fIsFullLoad = 0x00000002, ///< Causes all records to be loaded (unless overriden by another flag). /** @brief Causes any new record to be ignored when the mod is loaded. @details This may leave broken records behind (such as a quest override @@ -95,43 +95,43 @@ typedef enum { used if planning on copying records unless you check that there are no new records being referenced. */ - CB_SKIP_NEW_RECORDS = 0x00000004, + fIsSkipNewRecords = 0x00000004, /** @brief Makes the mod count towards the 255 limit and enables record creation and copying as new. @details If it is false, it forces Saveable to be false. Any mod with new records should have this set unless you're ignoring the new records. - It causes the mod to be reported by cb_GetLoadOrderNumMods(), cb_GetLoadOrderModIDs(). + It causes the mod to be reported by GetLoadOrderNumMods(), GetLoadOrderModIDs(). */ - CB_IN_LOAD_ORDER = 0x00000008, - CB_SAVEABLE = 0x00000010, ///< Allows the mod to be saved. + fIsInLoadOrder = 0x00000008, + fIsSaveable = 0x00000010, ///< Allows the mod to be saved. /** @brief Causes the mod's masters to be added to the load order. @details This is essential for most mod editing functions. */ - CB_ADD_MASTERS = 0x00000020, + fIsAddMasters = 0x00000020, /** @brief Causes the mod's masters to be loaded into memory after being added. - @details This has no effect if ::CB_ADD_MASTERS is false. This is + @details This has no effect if ::fIsAddMasters is false. This is required if you want to lookup overridden records. */ - CB_LOAD_MASTERS = 0x00000040, + fIsLoadMasters = 0x00000040, /** @brief Causes any conflicting records to be ignored by most functions. - @details cb_IsRecordWinning(), cb_GetNumRecordConflicts(), cb_GetRecordConflicts() will report the extended conflicts only if asked. + @details IsRecordWinning(), GetNumRecordConflicts(), GetRecordConflicts() will report the extended conflicts only if asked. */ - CB_EXTENDED_CONFLICTS = 0x00000080, + fIsExtendedConflicts = 0x00000080, /** @brief Causes the loader to track which record types in a mod are new and not overrides. - @details Increases load time per mod. It enables cb_GetModNumTypes() and cb_GetModTypes() for the mod. + @details Increases load time per mod. It enables GetModNumTypes() and GetModTypes() for the mod. */ - CB_TRACK_NEW_TYPES = 0x00000100, + fIsTrackNewTypes = 0x00000100, /** @brief Causes LAND records to have extra indexing. @details Increases load time per mod. It allows the safe editing of land records' heights. Modifying one LAND may require changes in an adjacent LAND to prevent seams. */ - CB_INDEX_LANDS = 0x00000200, + fIsIndexLANDs = 0x00000200, /** @brief Mmoves any REFR,ACHR,ACRE records in a world cell to the actual cell they belong to. @@ -139,16 +139,16 @@ typedef enum { iterating through every placeable in a specific cell, so that you don't have to check the world cell as well. */ - CB_FIXUP_PLACEABLES = 0x00000400, - CB_CREATE_NEW = 0x00000800, ///< Creates a new mod instead of loading an existing one. + fIsFixupPlaceables = 0x00000400, + fIsCreateNew = 0x00000800, ///< Creates a new mod instead of loading an existing one. /** @brief Causes any records that override masters not in the load order to be dropped. @details If it is true, it forces IsAddMasters to be false. Allows mods not in load order to copy records. */ - CB_IGNORE_INACTIVE_MASTERS = 0x00001000, - CB_SKIP_ALL_RECORDS = 0x00002000, ///< Causes all records in groups to be skipped once one of each type is read. -} cb_mod_flags_t; + fIsIgnoreInactiveMasters = 0x00001000, + fIsSkipAllRecords = 0x00002000, ///< Causes all records in groups to be skipped once one of each type is read. +} modFlags; /** @brief Flags that specify how a plugin is to be saved. @@ -157,94 +157,19 @@ typedef enum { /** @brief Cleans the mod's masters. @details Removed any unreferenced masters. Requires the mod to have - been loaded with the ::CB_IN_LOAD_ORDER flag. + been loaded with the ::fIsInLoadOrder flag. */ - CB_CLEAN_MASTERS = 0x00000001, - CB_CLOSE_COLLECTION = 0x00000002 ///< Delete the parent collection after the mod is saved. -} cb_save_flags_t; + fIsCleanMasters = 0x00000001, + fIsCloseCollection = 0x00000002 ///< Delete the parent collection after the mod is saved. +} saveFlags; /** @brief Flags that specify how a record is to be created. */ typedef enum { - CB_SET_AS_OVERRIDE = 0x00000001, ///< Create the record as an override of the source record. - CB_COPY_WINNING_PARENT = 0x00000002 ///< Populate the record using data from the winning parent. -} cb_create_flags_t; - -/** - @brief Flags that specify the type of a field. -*/ -typedef enum { - CB_UNKNOWN_FIELD = 0, ///< Data of an unknown type. - CB_MISSING_FIELD, ///< The field is missing. Used for some fields that are not quite universal, eg. Editor IDs. - CB_JUNK_FIELD, ///< Junk data of unknown type. - CB_BOOL_FIELD, ///< A boolean value. - CB_SINT8_FIELD, ///< An 8-bit signed integer. - CB_UINT8_FIELD, ///< An 8-bit unsigned integer. - CB_SINT16_FIELD, ///< A 16-bit signed integer. - CB_UINT16_FIELD, ///< A 16-bit unsigned integer. - CB_SINT32_FIELD, ///< A 32-bit signed integer. - CB_UINT32_FIELD, ///< A 32-bit unsigned integer. - CB_FLOAT32_FIELD, ///< A 32-bit floating point value. - CB_RADIAN_FIELD, ///< A 32-bit floating point value that should be interpreted as an angle measured in radians. - CB_FORMID_FIELD, ///< A 32-bit unsigned integer that should be interpreted as a FormID. - CB_MGEFCODE_FIELD, ///< A 32-bit unsigned integer that should be interpreted as an MGEF code. - CB_ACTORVALUE_FIELD, ///< A 32-bit unsigned integer that should be interpreted as an actor value. - CB_FORMID_OR_UINT32_FIELD, ///< A 32-bit unsigned integer that may be a FormID or not. - CB_FORMID_OR_FLOAT32_FIELD, ///< A FormID or a 32-bit floating point value. - CB_UINT8_OR_UINT32_FIELD, ///< An 8-bit or 32-bit unsigned integer. - CB_FORMID_OR_STRING_FIELD, ///< A FormID or a C string. - CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD, ///< A FormID, a 32-bit unsigned integer, or some unknown type. - CB_UNKNOWN_OR_SINT32_FIELD, ///< A 32-bit signed integer, or some unknown type. - CB_UNKNOWN_OR_UINT32_FLAG_FIELD, ///< 32 bits of bit flag values, or some unknown type. - CB_MGEFCODE_OR_CHAR4_FIELD, ///< An MGEF code or 4 8-bit characters. - CB_FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD, ///< A FormID, an MGEF code, an actor value or a 32-bit unsigned integer. - CB_RESOLVED_MGEFCODE_FIELD, ///< A mod-added MGEF code. - CB_STATIC_MGEFCODE_FIELD, ///< A standard MGEF code. - CB_RESOLVED_ACTORVALUE_FIELD, ///< A mod-added actor value. - CB_STATIC_ACTORVALUE_FIELD, ///< A standard actor value. - CB_CHAR_FIELD, ///< An 8-bit character. - CB_CHAR4_FIELD, ///< 4 8-bit characters. - CB_STRING_FIELD, ///< A C string. - CB_ISTRING_FIELD, ///< A C string that is handled case-insensitively by CBash. - CB_STRING_OR_FLOAT32_OR_SINT32_FIELD, ///< A C string, 32-bit floating point value, or 32-bit signed integer. - CB_LIST_FIELD, ///< The field is actually a list of fields. - CB_PARENTRECORD_FIELD, ///< A parent record of the current record. Eg. each `DIAL` record can have `INFO` record children. - CB_SUBRECORD_FIELD, ///< A child record associated with the current record (which is the parent). Eg. each `INFO` record is a child of a `DIAL` record. - CB_SINT8_FLAG_FIELD, ///< Unused. - CB_SINT8_TYPE_FIELD, ///< An 8-bit signed integer that should be interpreted as some enum value. - CB_SINT8_FLAG_TYPE_FIELD, ///< Unused. - CB_SINT8_ARRAY_FIELD, ///< Unused. - CB_UINT8_FLAG_FIELD, ///< 8 bits of bit flag values. - CB_UINT8_TYPE_FIELD, ///< An 8-bit unsigned integer that should be interpreted as some enum value. - CB_UINT8_FLAG_TYPE_FIELD, ///< An 8-bit unsigned integer that is either a collection of bit flag values or some enum value. - CB_UINT8_ARRAY_FIELD, ///< An array of 8-bit unsigned integers. - CB_SINT16_FLAG_FIELD, ///< Unused. - CB_SINT16_TYPE_FIELD, ///< Unused. - CB_SINT16_FLAG_TYPE_FIELD, ///< Unused. - CB_SINT16_ARRAY_FIELD, ///< An array of 16-bit unsigned integers. - CB_UINT16_FLAG_FIELD, ///< 16 bits of bit flag values. - CB_UINT16_TYPE_FIELD, ///< A 16-bit unsigned integer that should be interpreted as some enum value. - CB_UINT16_FLAG_TYPE_FIELD, ///< Unused. - CB_UINT16_ARRAY_FIELD, ///< Unused. - CB_SINT32_FLAG_FIELD, ///< Unused. - CB_SINT32_TYPE_FIELD, ///< A 32-bit signed integer that should be interpreted as some enum value. - CB_SINT32_FLAG_TYPE_FIELD, ///< Unused. - CB_SINT32_ARRAY_FIELD, ///< Unused. - CB_UINT32_FLAG_FIELD, ///< 32 bits of bit flag values. - CB_UINT32_TYPE_FIELD, ///< A 32-bit unsigned integer that should be interpreted as some enum value. - CB_UINT32_FLAG_TYPE_FIELD, ///< Unused. - CB_UINT32_ARRAY_FIELD, ///< An array of 32-bit unsigned integers. - CB_FLOAT32_ARRAY_FIELD, ///< Unused. - CB_RADIAN_ARRAY_FIELD, ///< Unused. - CB_FORMID_ARRAY_FIELD, ///< An array of FormIDs. - CB_FORMID_OR_UINT32_ARRAY_FIELD, ///< An array of FormIDs or 32-bit unsigned integers. - CB_MGEFCODE_OR_UINT32_ARRAY_FIELD, ///< An array of MGEF codes or 32-bit unsigned integers. - CB_STRING_ARRAY_FIELD, ///< Unused. - CB_ISTRING_ARRAY_FIELD, ///< An array of C strings that are handled case-insensitively by CBash. - CB_SUBRECORD_ARRAY_FIELD, ///< An array of records that are children associated with the current record (which is their parent). Eg. each `DIAL` record can have `INFO` record children. - CB_UNDEFINED_FIELD ///< Unused. -} cb_field_type_t; + fSetAsOverride = 0x00000001, ///< Create the record as an override of the source record. + fCopyWinningParent = 0x00000002 ///< Populate the record using data from the winning parent. +} createFlags; #ifdef __cplusplus } diff --git a/src/Allocator.h b/src/Allocator.h index c58c0e9..4455ebc 100644 --- a/src/Allocator.h +++ b/src/Allocator.h @@ -37,6 +37,7 @@ #include "Common.h" //#include "GenericRecord.h" #include +//Shared among builds even if they mean something different.. #include template @@ -45,6 +46,7 @@ class RecordPoolAllocator private: unsigned char *freed_position; std::vector buffers; + std::map sizes; public: RecordPoolAllocator(): @@ -124,6 +126,7 @@ class RecordPoolAllocator for(uint32_t p = 0;p < buffers.size(); p++) free(buffers[p]); buffers.clear(); + sizes.clear(); //_heapmin(); freed_position = NULL; } @@ -134,7 +137,7 @@ class RecordPoolAllocator MakeFreeSet(free_set); for(uint32_t p = 0;p < buffers.size(); p++) { - uint32_t buffer_size = (uint32_t)_msize(buffers[p]); + size_t buffer_size = sizes[buffers[p]]; //in case malloc returned more than the requested amount buffer_size -= buffer_size % sizeof(T); unsigned char *end_of_buffer = buffers[p] + buffer_size; @@ -149,16 +152,19 @@ class RecordPoolAllocator free(buffers[p]); } buffers.clear(); + sizes.clear(); freed_position = NULL; } void reserve(uint32_t elements) { //Allocate memory - unsigned char *buffer = (unsigned char *)malloc(sizeof(T) * elements); + size_t size = sizeof(T) * elements; + unsigned char *buffer = (unsigned char *)malloc(size); if(buffer == 0) throw std::bad_alloc(); buffers.push_back(buffer); + sizes[buffer] = bufsize(buffer, size); //memset(buffer, 0x00, buffer_size); //Populate the free linked list in reverse so that the first freed_position is at the beginning of the buffer @@ -208,12 +214,12 @@ class RecordPoolAllocator freed_position = (unsigned char *)curRecord; } - uint32_t object_capacity() + size_t object_capacity() { - uint32_t size = 0; + size_t size = 0; for(uint32_t p = 0;p < buffers.size(); p++) { - uint32_t buffer_size = (uint32_t)_msize(buffers[p]); + size_t buffer_size = sizes[buffers[p]]; //in case malloc returned more than the requested amount buffer_size -= buffer_size % sizeof(T); size += buffer_size / sizeof(T); @@ -222,7 +228,7 @@ class RecordPoolAllocator return size; } - uint32_t free_object_capacity() + size_t free_object_capacity() { uint32_t size = 0; @@ -238,12 +244,12 @@ class RecordPoolAllocator return size; } - uint32_t used_object_capacity() + size_t used_object_capacity() { return object_capacity() - free_object_capacity(); } - uint32_t bytes_capacity() + size_t bytes_capacity() { return object_capacity() * sizeof(T); } @@ -265,7 +271,7 @@ class RecordPoolAllocator MakeFreeSet(free_set); for(uint32_t p = 0;p < buffers.size(); p++) { - uint32_t buffer_size = (uint32_t)_msize(buffers[p]); + size_t buffer_size = sizes[buffers[p]]; //in case malloc returned more than the requested amount buffer_size -= buffer_size % sizeof(T); unsigned char *end_of_buffer = buffers[p] + buffer_size; @@ -317,7 +323,7 @@ class RecordPoolAllocator Records.reserve(object_capacity() - free_set.size()); for(uint32_t p = 0;p < buffers.size(); p++) { - uint32_t buffer_size = (uint32_t)_msize(buffers[p]); + size_t buffer_size = sizes[buffers[p]]; //in case malloc returned more than the requested amount buffer_size -= buffer_size % sizeof(T); unsigned char *end_of_buffer = buffers[p] + buffer_size; @@ -336,7 +342,7 @@ class RecordPoolAllocator uint32_t pos = 0; for(uint32_t p = 0;p < buffers.size(); p++) { - uint32_t buffer_size = (uint32_t)_msize(buffers[p]); + size_t buffer_size = sizes[buffers[p]]; //in case malloc returned more than the requested amount buffer_size -= buffer_size % sizeof(T); unsigned char *end_of_buffer = buffers[p] + buffer_size; @@ -348,11 +354,32 @@ class RecordPoolAllocator } } - void add_buffer(unsigned char *buffer) + unsigned char *add_buffer(size_t size) { - buffers.push_back(buffer); - return; + unsigned char * buffer = (unsigned char*)malloc(size); + if (buffer != NULL) { + track_buffer(buffer, size); + } + return buffer; } + + void track_buffer(unsigned char *buffer, size_t size) + { + buffers.push_back(buffer); + sizes[buffer] = bufsize(buffer, size); + return; + } + + //Env depending bufsize, utilizes msize on win32 + size_t bufsize(unsigned char *buffer, size_t allocatedSize) + { +#ifdef _WIN32 + return _msize(buffer); +#else + return allocatedSize; +#endif + } + }; //template diff --git a/src/CBash.cpp b/src/CBash.cpp index 9873a3a..d679409 100644 --- a/src/CBash.cpp +++ b/src/CBash.cpp @@ -49,7 +49,6 @@ #include "Version.h" #include #include -#include //#include "mmgr.h" @@ -133,17 +132,17 @@ ModFile *ValidateLoadOrderIndex(Collection *curCollection, char * const ModName) //////////////////////////////////////////////////////////////////////// //Exported DLL //Version info functions -CPPDLLEXTERN uint32_t cb_GetVersionMajor() +CPPDLLEXTERN uint32_t GetVersionMajor() { return MAJOR_VERSION; } -CPPDLLEXTERN uint32_t cb_GetVersionMinor() +CPPDLLEXTERN uint32_t GetVersionMinor() { return MINOR_VERSION; } -CPPDLLEXTERN uint32_t cb_GetVersionRevision() +CPPDLLEXTERN uint32_t GetVersionRevision() { return REVISION_VERSION; } @@ -156,13 +155,13 @@ int logback_printer(const char * _Format, ...) char buff[1024]; va_list args; va_start(args, _Format); - nSize = vsnprintf_s(buff, sizeof(buff), _TRUNCATE, _Format, args); + nSize = sprintf(buff, _Format, args); va_end(args); LoggingCallback(buff); return nSize; } -CPPDLLEXTERN void cb_RedirectMessages(int32_t (*_LoggingCallback)(const char *)) +CPPDLLEXTERN void RedirectMessages(int32_t (*_LoggingCallback)(const char *)) { if(_LoggingCallback) { @@ -176,7 +175,7 @@ CPPDLLEXTERN void cb_RedirectMessages(int32_t (*_LoggingCallback)(const char *)) } } -CPPDLLEXTERN void cb_AllowRaising(void (*_RaiseCallback)(const char *)) +CPPDLLEXTERN void AllowRaising(void (*_RaiseCallback)(const char *)) { RaiseCallback = _RaiseCallback; } @@ -192,7 +191,7 @@ int handle_program_memory_depletion(size_t size) { printer("Warning - Allocation of %u bytes failed. Attempting to free memory and continue.\n", size); //try to free up some memory - if(cb_UnloadAllCollections() == 0) + if(UnloadAllCollections() == 0) { //see if enough memory was freed //flag the function so that if the new fails, it doesn't infi-loop @@ -207,18 +206,19 @@ int handle_program_memory_depletion(size_t size) } printer("Error - Unable to allocate %u bytes. CBash will terminate.\n", size); - cb_DeleteAllCollections(); + DeleteAllCollections(); throw std::bad_alloc(); return 0; } -CPPDLLEXTERN Collection * cb_CreateCollection(char * const ModsPath, const cb_game_type_t CollectionType) +CPPDLLEXTERN Collection * CreateCollection(char * const ModsPath, const uint32_t CollectionType) { PROFILE_FUNC try { - _set_new_handler(handle_program_memory_depletion); + //Not as important, breaks cross-compatibility + //_set_new_handler(handle_program_memory_depletion); } catch(std::exception &ex) { @@ -257,7 +257,7 @@ CPPDLLEXTERN Collection * cb_CreateCollection(char * const ModsPath, const cb_ga return NULL; } -CPPDLLEXTERN int32_t cb_DeleteCollection(Collection *CollectionID) +CPPDLLEXTERN int32_t DeleteCollection(Collection *CollectionID) { PROFILE_FUNC @@ -344,7 +344,7 @@ CPPDLLEXTERN int32_t cb_DeleteCollection(Collection *CollectionID) return -1; } -CPPDLLEXTERN int32_t cb_LoadCollection(Collection *CollectionID, bool (*_ProgressCallback)(const uint32_t, const uint32_t, const char *)) +CPPDLLEXTERN int32_t LoadCollection(Collection *CollectionID, bool (*_ProgressCallback)(const uint32_t, const uint32_t, const char *)) { PROFILE_FUNC @@ -368,7 +368,7 @@ CPPDLLEXTERN int32_t cb_LoadCollection(Collection *CollectionID, bool (*_Progres return -1; } -CPPDLLEXTERN int32_t cb_UnloadCollection(Collection *CollectionID) +CPPDLLEXTERN int32_t UnloadCollection(Collection *CollectionID) { PROFILE_FUNC @@ -392,7 +392,7 @@ CPPDLLEXTERN int32_t cb_UnloadCollection(Collection *CollectionID) return -1; } -CPPDLLEXTERN int32_t cb_GetCollectionType(Collection *CollectionID) +CPPDLLEXTERN int32_t GetCollectionType(Collection *CollectionID) { PROFILE_FUNC @@ -415,7 +415,7 @@ CPPDLLEXTERN int32_t cb_GetCollectionType(Collection *CollectionID) return -1; } -CPPDLLEXTERN int32_t cb_UnloadAllCollections() +CPPDLLEXTERN int32_t UnloadAllCollections() { PROFILE_FUNC @@ -439,7 +439,7 @@ CPPDLLEXTERN int32_t cb_UnloadAllCollections() return -1; } -CPPDLLEXTERN int32_t cb_DeleteAllCollections() +CPPDLLEXTERN int32_t DeleteAllCollections() { PROFILE_FUNC @@ -466,7 +466,7 @@ CPPDLLEXTERN int32_t cb_DeleteAllCollections() //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //Mod action functions -CPPDLLEXTERN ModFile * cb_AddMod(Collection *CollectionID, char * const ModName, const cb_mod_flags_t ModFlagsField) +CPPDLLEXTERN ModFile * AddMod(Collection *CollectionID, char * const ModName, const uint32_t ModFlagsField) { PROFILE_FUNC @@ -492,7 +492,7 @@ CPPDLLEXTERN ModFile * cb_AddMod(Collection *CollectionID, char * const ModName, return NULL; } -CPPDLLEXTERN int32_t cb_LoadMod(ModFile *ModID) +CPPDLLEXTERN int32_t LoadMod(ModFile *ModID) { PROFILE_FUNC @@ -518,7 +518,7 @@ CPPDLLEXTERN int32_t cb_LoadMod(ModFile *ModID) return -1; } -CPPDLLEXTERN int32_t cb_UnloadMod(ModFile *ModID) +CPPDLLEXTERN int32_t UnloadMod(ModFile *ModID) { PROFILE_FUNC @@ -543,7 +543,7 @@ CPPDLLEXTERN int32_t cb_UnloadMod(ModFile *ModID) return -1; } -CPPDLLEXTERN int32_t cb_CleanModMasters(ModFile *ModID) +CPPDLLEXTERN int32_t CleanModMasters(ModFile *ModID) { PROFILE_FUNC @@ -567,7 +567,7 @@ CPPDLLEXTERN int32_t cb_CleanModMasters(ModFile *ModID) return -1; } -CPPDLLEXTERN int32_t cb_SaveMod(ModFile *ModID, const cb_save_flags_t SaveFlagsField, char * const DestinationName) +CPPDLLEXTERN int32_t SaveMod(ModFile *ModID, const uint32_t SaveFlagsField, char * const DestinationName) { int32_t err = 0; SaveFlags flags(SaveFlagsField); @@ -589,7 +589,7 @@ CPPDLLEXTERN int32_t cb_SaveMod(ModFile *ModID, const cb_save_flags_t SaveFlagsF } if(flags.IsCloseCollection) - err = cb_DeleteCollection(ModID->Parent) != 0 ? -1 : err; + err = DeleteCollection(ModID->Parent) != 0 ? -1 : err; if(err == -1) { printer("\n\n"); @@ -600,7 +600,7 @@ CPPDLLEXTERN int32_t cb_SaveMod(ModFile *ModID, const cb_save_flags_t SaveFlagsF } //////////////////////////////////////////////////////////////////////// //Mod info functions -CPPDLLEXTERN int32_t cb_GetAllNumMods(Collection *CollectionID) +CPPDLLEXTERN int32_t GetAllNumMods(Collection *CollectionID) { PROFILE_FUNC @@ -623,7 +623,7 @@ CPPDLLEXTERN int32_t cb_GetAllNumMods(Collection *CollectionID) return -1; } -CPPDLLEXTERN int32_t cb_GetAllModIDs(Collection *CollectionID, MODIDARRAY ModIDs) +CPPDLLEXTERN int32_t GetAllModIDs(Collection *CollectionID, MODIDARRAY ModIDs) { PROFILE_FUNC @@ -649,7 +649,7 @@ CPPDLLEXTERN int32_t cb_GetAllModIDs(Collection *CollectionID, MODIDARRAY ModIDs return -1; } -CPPDLLEXTERN int32_t cb_GetLoadOrderNumMods(Collection *CollectionID) +CPPDLLEXTERN int32_t GetLoadOrderNumMods(Collection *CollectionID) { PROFILE_FUNC @@ -672,7 +672,7 @@ CPPDLLEXTERN int32_t cb_GetLoadOrderNumMods(Collection *CollectionID) return -1; } -CPPDLLEXTERN int32_t cb_GetLoadOrderModIDs(Collection *CollectionID, MODIDARRAY ModIDs) +CPPDLLEXTERN int32_t GetLoadOrderModIDs(Collection *CollectionID, MODIDARRAY ModIDs) { PROFILE_FUNC @@ -698,7 +698,7 @@ CPPDLLEXTERN int32_t cb_GetLoadOrderModIDs(Collection *CollectionID, MODIDARRAY return -1; } -CPPDLLEXTERN char * cb_GetFileNameByID(ModFile *ModID) +CPPDLLEXTERN char * GetFileNameByID(ModFile *ModID) { PROFILE_FUNC @@ -721,7 +721,7 @@ CPPDLLEXTERN char * cb_GetFileNameByID(ModFile *ModID) return NULL; } -CPPDLLEXTERN char * cb_GetFileNameByLoadOrder(Collection *CollectionID, const uint32_t ModIndex) +CPPDLLEXTERN char * GetFileNameByLoadOrder(Collection *CollectionID, const uint32_t ModIndex) { PROFILE_FUNC @@ -744,7 +744,7 @@ CPPDLLEXTERN char * cb_GetFileNameByLoadOrder(Collection *CollectionID, const ui return NULL; } -CPPDLLEXTERN char * cb_GetModNameByID(ModFile *ModID) +CPPDLLEXTERN char * GetModNameByID(ModFile *ModID) { PROFILE_FUNC @@ -767,7 +767,7 @@ CPPDLLEXTERN char * cb_GetModNameByID(ModFile *ModID) return NULL; } -CPPDLLEXTERN char * cb_GetModNameByLoadOrder(Collection *CollectionID, const uint32_t ModIndex) +CPPDLLEXTERN char * GetModNameByLoadOrder(Collection *CollectionID, const uint32_t ModIndex) { PROFILE_FUNC @@ -790,7 +790,7 @@ CPPDLLEXTERN char * cb_GetModNameByLoadOrder(Collection *CollectionID, const uin return NULL; } -CPPDLLEXTERN ModFile * cb_GetModIDByName(Collection *CollectionID, char * const ModName) +CPPDLLEXTERN ModFile * GetModIDByName(Collection *CollectionID, char * const ModName) { PROFILE_FUNC @@ -802,7 +802,7 @@ CPPDLLEXTERN ModFile * cb_GetModIDByName(Collection *CollectionID, char * const char * const &CompName = NonGhostName ? NonGhostName : ModName; //ModFiles will never contain null pointers for(uint32_t x = 0; x < CollectionID->ModFiles.size();++x) - if(_stricmp(CompName, CollectionID->ModFiles[x]->ModName) == 0) + if(strcmp(CompName, CollectionID->ModFiles[x]->ModName) == 0) { delete []NonGhostName; return CollectionID->ModFiles[x]; @@ -824,7 +824,7 @@ CPPDLLEXTERN ModFile * cb_GetModIDByName(Collection *CollectionID, char * const return NULL; } -CPPDLLEXTERN ModFile * cb_GetModIDByLoadOrder(Collection *CollectionID, const uint32_t ModIndex) +CPPDLLEXTERN ModFile * GetModIDByLoadOrder(Collection *CollectionID, const uint32_t ModIndex) { PROFILE_FUNC @@ -848,7 +848,7 @@ CPPDLLEXTERN ModFile * cb_GetModIDByLoadOrder(Collection *CollectionID, const ui return NULL; } -CPPDLLEXTERN int32_t cb_GetModLoadOrderByName(Collection *CollectionID, char * const ModName) +CPPDLLEXTERN int32_t GetModLoadOrderByName(Collection *CollectionID, char * const ModName) { PROFILE_FUNC @@ -871,7 +871,7 @@ CPPDLLEXTERN int32_t cb_GetModLoadOrderByName(Collection *CollectionID, char * c return -1; } -CPPDLLEXTERN int32_t cb_GetModLoadOrderByID(ModFile *ModID) +CPPDLLEXTERN int32_t GetModLoadOrderByID(ModFile *ModID) { PROFILE_FUNC @@ -898,7 +898,7 @@ CPPDLLEXTERN int32_t cb_GetModLoadOrderByID(ModFile *ModID) return -2; } -CPPDLLEXTERN ModFile * cb_GetModIDByRecordID(Record *RecordID) +CPPDLLEXTERN ModFile * GetModIDByRecordID(Record *RecordID) { PROFILE_FUNC @@ -921,7 +921,7 @@ CPPDLLEXTERN ModFile * cb_GetModIDByRecordID(Record *RecordID) return NULL; } -CPPDLLEXTERN Collection * cb_GetCollectionIDByRecordID(Record *RecordID) +CPPDLLEXTERN Collection * GetCollectionIDByRecordID(Record *RecordID) { PROFILE_FUNC @@ -944,7 +944,7 @@ CPPDLLEXTERN Collection * cb_GetCollectionIDByRecordID(Record *RecordID) return NULL; } -CPPDLLEXTERN Collection * cb_GetCollectionIDByModID(ModFile *ModID) +CPPDLLEXTERN Collection * GetCollectionIDByModID(ModFile *ModID) { PROFILE_FUNC @@ -967,7 +967,7 @@ CPPDLLEXTERN Collection * cb_GetCollectionIDByModID(ModFile *ModID) return NULL; } -CPPDLLEXTERN uint32_t cb_IsModEmpty(ModFile *ModID) +CPPDLLEXTERN uint32_t IsModEmpty(ModFile *ModID) { PROFILE_FUNC @@ -990,7 +990,7 @@ CPPDLLEXTERN uint32_t cb_IsModEmpty(ModFile *ModID) return 0; } -CPPDLLEXTERN int32_t cb_GetModNumTypes(ModFile *ModID) +CPPDLLEXTERN int32_t GetModNumTypes(ModFile *ModID) { PROFILE_FUNC @@ -1021,7 +1021,7 @@ CPPDLLEXTERN int32_t cb_GetModNumTypes(ModFile *ModID) return -1; } -CPPDLLEXTERN int32_t cb_GetModTypes(ModFile *ModID, UINT32ARRAY RecordTypes) +CPPDLLEXTERN int32_t GetModTypes(ModFile *ModID, UINT32ARRAY RecordTypes) { PROFILE_FUNC @@ -1055,7 +1055,7 @@ CPPDLLEXTERN int32_t cb_GetModTypes(ModFile *ModID, UINT32ARRAY RecordTypes) return -1; } -CPPDLLEXTERN int32_t cb_GetModNumEmptyGRUPs(ModFile *ModID) +CPPDLLEXTERN int32_t GetModNumEmptyGRUPs(ModFile *ModID) { PROFILE_FUNC @@ -1078,14 +1078,14 @@ CPPDLLEXTERN int32_t cb_GetModNumEmptyGRUPs(ModFile *ModID) return -1; } -CPPDLLEXTERN int32_t cb_GetModNumOrphans(ModFile *ModID) +CPPDLLEXTERN int32_t GetModNumOrphans(ModFile *ModID) { PROFILE_FUNC try { //ValidatePointer(ModID); - return ModID->FormIDHandler.OrphanedRecords.size(); + return (int32_t)ModID->FormIDHandler.OrphanedRecords.size(); } catch(std::exception &ex) { @@ -1101,7 +1101,7 @@ CPPDLLEXTERN int32_t cb_GetModNumOrphans(ModFile *ModID) return -1; } -CPPDLLEXTERN int32_t cb_GetModOrphansFormIDs(ModFile *ModID, FORMIDARRAY FormIDs) +CPPDLLEXTERN int32_t GetModOrphansFormIDs(ModFile *ModID, FORMIDARRAY FormIDs) { PROFILE_FUNC @@ -1129,7 +1129,7 @@ CPPDLLEXTERN int32_t cb_GetModOrphansFormIDs(ModFile *ModID, FORMIDARRAY FormIDs //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //FormID functions -CPPDLLEXTERN char * cb_GetLongIDName(Record *RecordID, const uint32_t FormID, const bool IsMGEFCode) +CPPDLLEXTERN char * GetLongIDName(Record *RecordID, const uint32_t FormID, const bool IsMGEFCode) { PROFILE_FUNC @@ -1160,7 +1160,7 @@ CPPDLLEXTERN char * cb_GetLongIDName(Record *RecordID, const uint32_t FormID, co return NULL; } -CPPDLLEXTERN uint32_t cb_MakeShortFormID(ModFile *ModID, const uint32_t ObjectID, const bool IsMGEFCode) +CPPDLLEXTERN uint32_t MakeShortFormID(ModFile *ModID, const uint32_t ObjectID, const bool IsMGEFCode) { PROFILE_FUNC @@ -1184,7 +1184,7 @@ CPPDLLEXTERN uint32_t cb_MakeShortFormID(ModFile *ModID, const uint32_t ObjectID //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //Record action functions -CPPDLLEXTERN Record * cb_CreateRecord(ModFile *ModID, const uint32_t RecordType, const FORMID RecordFormID, char * const RecordEditorID, Record *ParentID, const cb_create_flags_t CreateFlags) +CPPDLLEXTERN Record * CreateRecord(ModFile *ModID, const uint32_t RecordType, const FORMID RecordFormID, char * const RecordEditorID, Record *ParentID, const uint32_t CreateFlags) { PROFILE_FUNC @@ -1209,7 +1209,7 @@ CPPDLLEXTERN Record * cb_CreateRecord(ModFile *ModID, const uint32_t RecordType, return 0; } -CPPDLLEXTERN Record * cb_CopyRecord(Record *RecordID, ModFile *DestModID, Record *DestParentID, const FORMID DestRecordFormID, char * const DestRecordEditorID, const cb_create_flags_t CreateFlags) +CPPDLLEXTERN Record * CopyRecord(Record *RecordID, ModFile *DestModID, Record *DestParentID, const FORMID DestRecordFormID, char * const DestRecordEditorID, const uint32_t CreateFlags) { PROFILE_FUNC @@ -1235,7 +1235,7 @@ CPPDLLEXTERN Record * cb_CopyRecord(Record *RecordID, ModFile *DestModID, Record return NULL; } -CPPDLLEXTERN int32_t cb_UnloadRecord(Record *RecordID) +CPPDLLEXTERN int32_t UnloadRecord(Record *RecordID) { PROFILE_FUNC @@ -1258,7 +1258,7 @@ CPPDLLEXTERN int32_t cb_UnloadRecord(Record *RecordID) return 0; } -CPPDLLEXTERN int32_t cb_ResetRecord(Record *RecordID) +CPPDLLEXTERN int32_t ResetRecord(Record *RecordID) { PROFILE_FUNC @@ -1282,7 +1282,7 @@ CPPDLLEXTERN int32_t cb_ResetRecord(Record *RecordID) return 0; } -CPPDLLEXTERN int32_t cb_DeleteRecord(Record *RecordID) +CPPDLLEXTERN int32_t DeleteRecord(Record *RecordID) { PROFILE_FUNC @@ -1330,7 +1330,7 @@ CPPDLLEXTERN int32_t cb_DeleteRecord(Record *RecordID) } //////////////////////////////////////////////////////////////////////// //Record info functions -CPPDLLEXTERN Record * cb_GetRecordID(ModFile *ModID, const FORMID RecordFormID, char * const RecordEditorID) +CPPDLLEXTERN Record * GetRecordID(ModFile *ModID, const FORMID RecordFormID, char * const RecordEditorID) { PROFILE_FUNC @@ -1363,7 +1363,7 @@ CPPDLLEXTERN Record * cb_GetRecordID(ModFile *ModID, const FORMID RecordFormID, return NULL; } -CPPDLLEXTERN int32_t cb_GetNumRecords(ModFile *ModID, const uint32_t RecordType) +CPPDLLEXTERN size_t GetNumRecords(ModFile *ModID, const uint32_t RecordType) { PROFILE_FUNC @@ -1386,7 +1386,7 @@ CPPDLLEXTERN int32_t cb_GetNumRecords(ModFile *ModID, const uint32_t RecordType) return -1; } -CPPDLLEXTERN int32_t cb_GetRecordIDs(ModFile *ModID, const uint32_t RecordType, RECORDIDARRAY RecordIDs) +CPPDLLEXTERN int32_t GetRecordIDs(ModFile *ModID, const uint32_t RecordType, RECORDIDARRAY RecordIDs) { PROFILE_FUNC @@ -1411,7 +1411,7 @@ CPPDLLEXTERN int32_t cb_GetRecordIDs(ModFile *ModID, const uint32_t RecordType, return -1; } -CPPDLLEXTERN int32_t cb_IsRecordWinning(Record *RecordID, const bool GetExtendedConflicts) +CPPDLLEXTERN int32_t IsRecordWinning(Record *RecordID, const bool GetExtendedConflicts) { PROFILE_FUNC @@ -1448,7 +1448,7 @@ CPPDLLEXTERN int32_t cb_IsRecordWinning(Record *RecordID, const bool GetExtended return -1; } -CPPDLLEXTERN int32_t cb_GetNumRecordConflicts(Record *RecordID, const bool GetExtendedConflicts) +CPPDLLEXTERN int32_t GetNumRecordConflicts(Record *RecordID, const bool GetExtendedConflicts) { PROFILE_FUNC @@ -1471,7 +1471,7 @@ CPPDLLEXTERN int32_t cb_GetNumRecordConflicts(Record *RecordID, const bool GetEx return -1; } -CPPDLLEXTERN int32_t cb_GetRecordConflicts(Record *RecordID, RECORDIDARRAY RecordIDs, const bool GetExtendedConflicts) +CPPDLLEXTERN int32_t GetRecordConflicts(Record *RecordID, RECORDIDARRAY RecordIDs, const bool GetExtendedConflicts) { PROFILE_FUNC @@ -1494,7 +1494,7 @@ CPPDLLEXTERN int32_t cb_GetRecordConflicts(Record *RecordID, RECORDIDARRAY Recor return -1; } -CPPDLLEXTERN int32_t cb_GetRecordHistory(Record *RecordID, RECORDIDARRAY RecordIDs) +CPPDLLEXTERN int32_t GetRecordHistory(Record *RecordID, RECORDIDARRAY RecordIDs) { PROFILE_FUNC @@ -1518,7 +1518,7 @@ CPPDLLEXTERN int32_t cb_GetRecordHistory(Record *RecordID, RECORDIDARRAY RecordI return -1; } -CPPDLLEXTERN int32_t cb_GetNumIdenticalToMasterRecords(ModFile *ModID) +CPPDLLEXTERN int32_t GetNumIdenticalToMasterRecords(ModFile *ModID) { PROFILE_FUNC if(ModID->Flags.IsExtendedConflicts) @@ -1537,7 +1537,7 @@ CPPDLLEXTERN int32_t cb_GetNumIdenticalToMasterRecords(ModFile *ModID) IdenticalToMasterRetriever identical(ModID); ModID->VisitAllRecords(identical); - return ModID->Parent->identical_records.size(); + return (int32_t)ModID->Parent->identical_records.size(); } catch(std::exception &ex) { @@ -1553,7 +1553,7 @@ CPPDLLEXTERN int32_t cb_GetNumIdenticalToMasterRecords(ModFile *ModID) return -1; } -CPPDLLEXTERN int32_t cb_GetIdenticalToMasterRecords(ModFile *ModID, RECORDIDARRAY RecordIDs) +CPPDLLEXTERN int32_t GetIdenticalToMasterRecords(ModFile *ModID, RECORDIDARRAY RecordIDs) { PROFILE_FUNC @@ -1583,7 +1583,7 @@ CPPDLLEXTERN int32_t cb_GetIdenticalToMasterRecords(ModFile *ModID, RECORDIDARRA return -1; } -CPPDLLEXTERN int32_t cb_IsRecordFormIDsInvalid(Record *RecordID) +CPPDLLEXTERN int32_t IsRecordFormIDsInvalid(Record *RecordID) { PROFILE_FUNC @@ -1607,7 +1607,7 @@ CPPDLLEXTERN int32_t cb_IsRecordFormIDsInvalid(Record *RecordID) } //////////////////////////////////////////////////////////////////////// //Mod or Record action functions -CPPDLLEXTERN int32_t cb_UpdateReferences(ModFile *ModID, Record *RecordID, FORMIDARRAY OldFormIDs, FORMIDARRAY NewFormIDs, UINT32ARRAY Changes, const uint32_t ArraySize) +CPPDLLEXTERN int32_t UpdateReferences(ModFile *ModID, Record *RecordID, FORMIDARRAY OldFormIDs, FORMIDARRAY NewFormIDs, UINT32ARRAY Changes, const uint32_t ArraySize) { PROFILE_FUNC @@ -1687,7 +1687,7 @@ CPPDLLEXTERN int32_t cb_UpdateReferences(ModFile *ModID, Record *RecordID, FORMI } //////////////////////////////////////////////////////////////////////// //Mod or Record info functions -CPPDLLEXTERN int32_t cb_GetRecordUpdatedReferences(Collection *CollectionID, Record *RecordID) +CPPDLLEXTERN int32_t GetRecordUpdatedReferences(Collection *CollectionID, Record *RecordID) { PROFILE_FUNC @@ -1699,7 +1699,7 @@ CPPDLLEXTERN int32_t cb_GetRecordUpdatedReferences(Collection *CollectionID, Rec return 0; } - return RecordID->GetParentMod()->Parent->changed_records.count(RecordID); + return (int32_t)RecordID->GetParentMod()->Parent->changed_records.count(RecordID); } catch(std::exception &ex) { @@ -1717,7 +1717,7 @@ CPPDLLEXTERN int32_t cb_GetRecordUpdatedReferences(Collection *CollectionID, Rec //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //Field action functions -CPPDLLEXTERN int32_t cb_SetIDFields(Record *RecordID, const FORMID FormID, char * const EditorID) +CPPDLLEXTERN int32_t SetIDFields(Record *RecordID, const FORMID FormID, char * const EditorID) { PROFILE_FUNC @@ -1742,7 +1742,7 @@ CPPDLLEXTERN int32_t cb_SetIDFields(Record *RecordID, const FORMID FormID, char return -1; } -CPPDLLEXTERN void cb_SetField(Record *RecordID, FIELD_IDENTIFIERS, void *FieldValue, const uint32_t ArraySize) +CPPDLLEXTERN void SetField(Record *RecordID, FIELD_IDENTIFIERS, void *FieldValue, const uint32_t ArraySize) { PROFILE_FUNC @@ -1798,7 +1798,7 @@ CPPDLLEXTERN void cb_SetField(Record *RecordID, FIELD_IDENTIFIERS, void *FieldVa return; } -CPPDLLEXTERN void cb_DeleteField(Record *RecordID, FIELD_IDENTIFIERS) +CPPDLLEXTERN void DeleteField(Record *RecordID, FIELD_IDENTIFIERS) { PROFILE_FUNC @@ -1837,7 +1837,7 @@ CPPDLLEXTERN void cb_DeleteField(Record *RecordID, FIELD_IDENTIFIERS) } //////////////////////////////////////////////////////////////////////// //Field info functions -CPPDLLEXTERN uint32_t cb_GetFieldAttribute(Record *RecordID, FIELD_IDENTIFIERS, const uint32_t WhichAttribute) +CPPDLLEXTERN uint32_t GetFieldAttribute(Record *RecordID, FIELD_IDENTIFIERS, const uint32_t WhichAttribute) { PROFILE_FUNC @@ -1873,10 +1873,10 @@ CPPDLLEXTERN uint32_t cb_GetFieldAttribute(Record *RecordID, FIELD_IDENTIFIERS, printer("WhichAttribute: %i\n\n", WhichAttribute); if(RaiseCallback != NULL) RaiseCallback(__FUNCTION__); - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } -CPPDLLEXTERN void * cb_GetField(Record *RecordID, FIELD_IDENTIFIERS, void **FieldValues) +CPPDLLEXTERN void * GetField(Record *RecordID, FIELD_IDENTIFIERS, void **FieldValues) { PROFILE_FUNC diff --git a/src/CBash.h b/src/CBash.h new file mode 100644 index 0000000..0ca1469 --- /dev/null +++ b/src/CBash.h @@ -0,0 +1,661 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is CBash code. + * + * The Initial Developer of the Original Code is + * Waruddar. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + + /** + @file CBash.h + @brief This file declares the C API functions. + + @details This documentation was not written by the original developer, and so may be inaccurate. In particular, GetRecordHistory() and IsRecordsFormIDsInvalid() may be documented incorrectly. +*/ + +#pragma once +// CBash.h +//#define _UNICODE +#include "CBashConfig.h" +#include "Types.h" + + +//Exported Functions +/**************************//** + @name Version Functions +******************************/ +///@{ + +/** + @brief Get CBash's minor version number. + @returns Cbash's major version number. +*/ +DLLEXTERN uint32_t GetVersionMajor(); + +/** + @brief Get CBash's minor version number. + @returns Cbash's major version number. +*/ +DLLEXTERN uint32_t GetVersionMinor(); + +/** + @brief Get CBash's revision (patch) version number. + @returns Cbash's revision (patch) version number. +*/ +DLLEXTERN uint32_t GetVersionRevision(); + +///@} +/**************************//** + @name Logging action functions +******************************/ +///@{ + +/** + @brief Register a callback function for logging messages. + @param _LoggingCallback A pointer to a callback function. If `NULL`, messages are printed to `stdout`. The callback function must take a message string argument, and returns the number of characters in the message, or `-1` if an error occurred. +*/ +DLLEXTERN void RedirectMessages(int32_t (*_LoggingCallback)(const char *)); + +/** + @brief Register a callback function for tracing function calls. + @details This function is called by many functions if they encounter an error, and is passed the name of the function it is called from. This makes it potentially useful for debugging purposes. + @param _RaiseCallback A pointer to a function that takes a string argument and returns nothing. If `NULL`, no function call tracing occurs. +*/ +DLLEXTERN void AllowRaising(void (*_RaiseCallback)(const char *)); + +///@} +/**************************//** + @name Collection action functions +******************************/ +///@{ + +/** + @brief Create a plugin collection. + @details Collections are used to manage groups of mod plugins and their data in CBash. + @param ModsPath Specifies the path to the folder containing the mod plugins that are to be added to the collection. + @param CollectionType Specifies the type of game the collection is for. Valid game types are given by ::whichGameTypes. + @returns A pointer to the newly-created collection_t object. +*/ +DLLEXTERN collection_t * CreateCollection(char * const ModsPath, const uint32_t CollectionType); + +/** + @brief Delete a plugin collection. + @details Deleting a collection frees all associated memory, invalidating associated pointers. + @param CollectionID A pointer to the collection to be deleted. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t DeleteCollection(collection_t *CollectionID); + +/** + @brief Loads a collection of plugins. + @details Loads the records from the plugins in the given collection into memory, where their data can be accessed. + @param CollectionID A pointer to the collection to load. + @param _ProgressCallback A pointer to a function to use as a progress callback. If `NULL`, no progress is reported. The function arguments are the load order position of the plugin currently being loaded, the maximum load order position, and the plugin filename. The function returns a boolean that is currently ignored, but may in future be used to signal cancellation of loading by the client. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t LoadCollection(collection_t *CollectionID, bool (*_ProgressCallback)(const uint32_t, const uint32_t, const char *)); + +/** + @brief Unloads a collection of plugins. + @details Unloads any records from the plugins in the given collection that have previously been loaded into memory, without deleting the collection. + @param CollectionID A pointer to the collection to unload. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t UnloadCollection(collection_t *CollectionID); + +/** + @brief Get the game type a collection was created for. + @param CollectionID The collection to get the game type for. + @returns The collection game type. Valid game types are given by ::whichGameTypes. +*/ +DLLEXTERN int32_t GetCollectionType(collection_t *CollectionID); + +/** + @brief Unload all collections of plugins that have been created by CBash. + @details Unloads all loaded collections from memory, without deleting them. Has the same effect as calling UnloadCollection() for each collection that has been created. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t UnloadAllCollections(); + +/** + @brief Delete all plugin collections created by CBash. + @details Has the same effect as calling UnloadCollection() for each collection that has been created. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t DeleteAllCollections(); + +///@} +/**************************//** + @name Mod action functions +******************************/ +///@{ + +/** + @brief Add a plugin to a collection. + @param CollectionID The collection to add the plugin to. + @param ModName The filename of the plugin to add. + @param ModFlagsField Flags that determine how the plugin is loaded and what can be edited once it has been loaded. These flags are given in ::modFlags. + @returns A pointer to the plugin object added to the collection. +*/ +DLLEXTERN mod_t * AddMod(collection_t *CollectionID, char * const ModName, const uint32_t ModFlagsField); + +/** + @brief Load a single plugin. + @details Loads the records from the given plugin into memory. + @param ModID A pointer to the plugin object to load. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t LoadMod(mod_t *ModID); + +/** + @brief Unload a single plugin. + @details Unloads the records from the given plugin. + @param ModID A pointer to the plugin object to unload. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t UnloadMod(mod_t *ModID); + +/** + @brief Remove unreferenced masters from a plugin. + @details This function removes any entries in the given plugin's list of masters that aren't referenced in any of the plugin's records. Note that unreferenced masters are sometimes added to plugins to make explicit an otherwise implicit dependency. + @param ModID A pointer to the plugin object for which unreferenced masters should be removed. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t CleanModMasters(mod_t *ModID); + +/** + @brief Save a single plugin's data to a plugin file. + @param ModID A pointer to the plugin object to save. + @param SaveFlagsField Flags that determine how the plugin is saved. These flags are given in ::saveFlags. + @param DestinationName The output plugin filename. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t SaveMod(mod_t *ModID, const uint32_t SaveFlagsField, char * const DestinationName); + +///@} +/**************************//** + @name Mod info functions +******************************/ +///@{ + +/** + @brief Get the number of mods in a collection. + @param CollectionID The collection to query. + @returns The number of mods in the given collection, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetAllNumMods(collection_t *CollectionID); + +/** + @brief Get an array of plugin object pointers for the plugins in a collection. + @param CollectionID The collection to query. + @param ModIDs An array of plugin object pointers. The array passed to the function must be preallocated to the correct size, as given by GetAllNumMods(). The array contents are filled by the function to point to the plugin objects within the collection queried. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetAllModIDs(collection_t *CollectionID, mod_t ** ModIDs); + +/** + @brief Get the number of mods in a collection's load order. + @details Returns the number of plugins that were added to the collection with the ::fIsInLoadOrder flag. + @param CollectionID The collection to query. + @returns The number of mods in the given collection's load order, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetLoadOrderNumMods(collection_t *CollectionID); + +/** + @brief Get an array of plugin object pointers for the plugins in a collection's load order. + @param CollectionID The collection to query. + @param ModIDs An array of plugin object pointers. The array passed to the function must be preallocated to the correct size, as given by GetLoadOrderNumMods(). The array contents are filled by the function to point to the plugin objects within the collection queried. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetLoadOrderModIDs(collection_t *CollectionID, mod_t ** ModIDs); + +/** + @brief Get a plugin's filename from its object pointer. + @details The filename will include the `.ghost` extension if the plugin is ghosted. + @param ModID The object pointer of the plugin to look up. + @returns The plugin's filename, or `NULL` if an error occurred. +*/ +DLLEXTERN char * GetFileNameByID(mod_t *ModID); + +/** + @brief Get a plugin's filename from its position in the load order. + @details The filename will include the `.ghost` extension if the plugin is ghosted. + @param CollectionID The collection to query. + @param ModIndex The load order position to look up. + @returns The plugin's filename, or `NULL` if an error occurred. +*/ +DLLEXTERN char * GetFileNameByLoadOrder(collection_t *CollectionID, const uint32_t ModIndex); + +/** + @brief Get a plugin's unghosted filename from its object pointer. + @details Returns the same value as GetFileNameByID() for unghosted plugins, and the filename minus the `.ghost` extension for ghosted plugins. + @param ModID The object pointer of the plugin to look up. + @returns The plugin's unghosted filename, or `NULL` if an error occurred. +*/ +DLLEXTERN char * GetModNameByID(mod_t *ModID); + +/** + @brief Get a plugin's unghosted filename from its position in the load order. + @details Returns the same value as GetFileNameByLoadOrder() for unghosted plugins, and the filename minus the `.ghost` extension for ghosted plugins. + @param CollectionID The collection to query. + @param ModIndex The load order position to look up, or `NULL` if an error occurred. + @returns The plugin's unghosted filename, or `NULL` if an error occurred. +*/ +DLLEXTERN char * GetModNameByLoadOrder(collection_t *CollectionID, const uint32_t ModIndex); + +/** + @brief Get a plugin's object using its filename. + @param CollectionID The collection to query. + @param ModName The plugin filename. + @returns A pointer to the plugin object, or `NULL` if the plugin was not found. +*/ +DLLEXTERN mod_t * GetModIDByName(collection_t *CollectionID, char * const ModName); + +/** + @brief Get a plugin's object using its position in the load order. + @param CollectionID The collection to query. + @param ModIndex The load order position to look up. + @returns A pointer to the plugin object, or `NULL` if the plugin was not found. +*/ +DLLEXTERN mod_t * GetModIDByLoadOrder(collection_t *CollectionID, const uint32_t ModIndex); + +/** + @brief Get a plugin's load order position using its filename. + @param CollectionID The collection to query. + @param ModName The plugin filename to look up. + @returns The plugin's load order position, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetModLoadOrderByName(collection_t *CollectionID, char * const ModName); + +/** + @brief Get a plugin's load order position using its object pointer. + @param ModID The plugin's object pointer. + @returns The plugin's load order position, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetModLoadOrderByID(mod_t *ModID); + +/** + @brief Get a plugin using a record from it. + @param RecordID The record to get the parent plugin of. + @returns A plugin pointer, or `NULL` if an error occurred. +*/ +DLLEXTERN mod_t * GetModIDByRecordID(record_t *RecordID); + +/** + @brief Get a collection using a record from a plugin in it. + @param RecordID The record to get the parent plugin's collection from. + @returns A collection pointer, or `NULL` if an error occurred. +*/ +DLLEXTERN collection_t * GetCollectionIDByRecordID(record_t *RecordID); + +/** + @brief Get a collection using a plugin in it. + @param ModID The plugin to get the parent collection of. + @returns A collection pointer, or `NULL` if an error occurred. +*/ +DLLEXTERN collection_t * GetCollectionIDByModID(mod_t *ModID); + +/** + @brief Check if a plugin contains any records. + @param ModID The plugin to query. + @returns `1` if the plugin is empty, `0` otherwise. +*/ +DLLEXTERN uint32_t IsModEmpty(mod_t *ModID); + +/** + @brief Get the number of different record types in a plugin. + @details This function will fail unless the plugin was added to the collection with the ::fIsTrackNewTypes flag. + @param ModID The plugin to query. + @returns The number of record types in the plugin, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetModNumTypes(mod_t *ModID); + +/** + @brief Get an array of different record types in a plugin. + @details This function will fail unless the plugin was added to the collection with the ::fIsTrackNewTypes flag. + @param ModID The plugin to query. + @param RecordTypes An array of record IDs. Each ID is a four-character sequence in in reverse, eg. `TES4` is stored as `4SET`. The array passed to the function must be preallocated to the correct size, as given by GetModNumTypes(). The array contents are filled by the function. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetModTypes(mod_t *ModID, uint32_t * RecordTypes); + +/** + @brief Get the number of empty record groups in a plugin. + @param ModID The plugin to query. + @returns The number of empty record groups in the plugin, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetModNumEmptyGRUPs(mod_t *ModID); + +/** + @brief Get the number of orphaned records in a plugin. + @details Orphaned records are those which reference a parent record that does not exist. + @param ModID The plugin to query. + @returns The number of orphaned records in the plugin, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetModNumOrphans(mod_t *ModID); + +/** + @brief Get an array of orphaned record FormIDs in a plugin. + @details Orphaned records are those which reference a parent record that does not exist. + @param ModID The plugin to query. + @param FormIDs An outputted array of the FormIDs of the orphaned records in the plugin. The array passed to the function must be preallocated to the correct size, as given by GetModNumOrphans(). The array contents are filled by the function. + @returns `0` on success, `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetModOrphansFormIDs(mod_t *ModID, FORMID * FormIDs); + +///@} +/**************************//** + @name FormID functions +******************************/ +///@{ + +/** + @brief Get the long-format FormID for a record. + @details Long-format FormIDs convert the mod index stored in the first byte of a FormID into a plugin filename string, for unambiguous referencing independent of load order. + @param RecordID The record to query. + @param FormID The FormID to get the plugin filename referenced in its mod index byte. + @param IsMGEFCode Whether or not the FormID passed is a MGEF code. MGEF (Magic Effect) records are special cases that are referenced using their EditorIDs rather than their FormIDs, so need special handling. + @returns The filename of the plugin referenced by the given FormID, or `NULL` if an error occurred. +*/ +DLLEXTERN char * GetLongIDName(record_t *RecordID, const uint32_t FormID, const bool IsMGEFCode); + +/** + @brief Get a FormID for an object in a plugin. + @details A FormID is composed of a one-byte mod index, and a 3-byte ObjectID. This function combines the mod index of the given plugin with the given ObjectID to create a FormID. + @param ModID The plugin to query. + @param ObjectID An ObjectID to create a FormID from. The last 3 bytes of the given ObjectID will be used in the FormID produced. + @param IsMGEFCode Whether or not the ObjectID passed is for a MGEF code. MGEF (Magic Effect) records are special cases that are referenced using their EditorIDs rather than their FormIDs, so need special handling. + @returns The FormID produced, or `NULL` if an error occurred. +*/ +DLLEXTERN uint32_t MakeShortFormID(mod_t *ModID, const uint32_t ObjectID, const bool IsMGEFCode); + +///@} +/**************************//** + @name Record action functions +******************************/ +///@{ + +/** + @brief Create a new record. + @param ModID The plugin to create the record in. + @param RecordType The record type. + @param RecordFormID The record FormID. + @param RecordEditorID The record EditorID. + @param ParentID The parent record for the record to be created. Some record types, usually worldspace-related, have hierarchies of parent and child records. If no parent is desired, `NULL` can be passed. + @param CreateFlags Flags that determine how the record is created. These flags are given in ::createFlags. + @returns A pointer to the created record, or `NULL` if an error was encountered. +*/ +DLLEXTERN record_t * CreateRecord(mod_t *ModID, const uint32_t RecordType, const FORMID RecordFormID, char * const RecordEditorID, record_t *ParentID, const uint32_t CreateFlags); + +/** + @brief Copy a record from one plugin into another. + @param RecordID The record to be copied. + @param DestModID The plugin to copy the record into. + @param DestParentID The parent record for the record copy. Some record types, usually worldspace-related, have hierarchies of parent and child records. If no parent is desired, `NULL` can be passed. + @param DestRecordFormID The FormID of the record copy. + @param DestRecordEditorID The Editor ID of the record copy. + @param CreateFlags Flags that determine how the record copy is created. These flags are given in ::createFlags. + @returns A pointer to the record copy, or `NULL` if an error was encountered. +*/ +DLLEXTERN record_t * CopyRecord(record_t *RecordID, mod_t *DestModID, record_t *DestParentID, const FORMID DestRecordFormID, char * const DestRecordEditorID, const uint32_t CreateFlags); + +/** + @brief Unload a record from memory. + @details If the record has been changed and the changes are unsaved, it will remain in memory. + @param RecordID The record to unload. + @returns `1` on success, `0` on failure. +*/ +DLLEXTERN int32_t UnloadRecord(record_t *RecordID); + +/** + @brief Discards changes made to a record since it was last saved. + @details If no changes are present, the function return as if it failed. + @param RecordID The record to reset. + @returns `1` on success, `0` on failure. +*/ +DLLEXTERN int32_t ResetRecord(record_t *RecordID); + +/** + @brief Delete a record. + @param RecordID The record to delete. + @returns `1` on success, `0` on failure. +*/ +DLLEXTERN int32_t DeleteRecord(record_t *RecordID); + +///@} +/**************************//** + @name Record info functions +******************************/ +///@{ + +/** + @brief Get a record from a plugin using its FormID or EditorID. + @param ModID The plugin to look in. + @param RecordFormID The FormID to look for. If `NULL`, the EditorID value is used. + @param RecordEditorID The EditorID to look for, used if the FormID given is `NULL`. If this is also `NULL`, the plugin's TES4 record is returned. + @returns The specified record, or `NULL` if an error occurred. +*/ +DLLEXTERN record_t * GetRecordID(mod_t *ModID, const FORMID RecordFormID, char * const RecordEditorID); + +/** + @brief Get the number of records of a specified type in a plugin. + @param ModID The plugin to query. + @param RecordType The record type to look for. This should be its 4-byte name in reverse order, eg. to search for `CELL` records, you would pass `'LLEC'`. + @returns The number of records of the specified type, or `-1` if an error occurred. +*/ +DLLEXTERN size_t GetNumRecords(mod_t *ModID, const uint32_t RecordType); + +/** + @brief Get an array of records of a specified type in a plugin. + @param ModID The plugin to query. + @param RecordType The record type to look for. This should be its 4-byte name in reverse order, eg. to search for `CELL` records, you would pass a `uint32_t RecordType = 'LLEC';`. + @param RecordIDs An array of record pointers, pre-allocated to be of the size given by GetNumRecords(). This function populates the array. + @returns The number of records retrieved, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetRecordIDs(mod_t *ModID, const uint32_t RecordType, record_t ** RecordIDs); + +/** + @brief Check if the given record is winning any conflict with other records. + @details A record wins a conflict if it is the last-loaded version of that record in the load order. + @param RecordID The record to query. + @param GetExtendedConflicts If true, checks for conflicts in plugins loaded with the ::fIsExtendedConflicts flag, otherwise they are ignored. + @returns `1` if the record is winning, `0` if it is not, and `-1` if an error occurred. +*/ +DLLEXTERN int32_t IsRecordWinning(record_t *RecordID, const bool GetExtendedConflicts); + +/** + @brief Get the number of conflicting versions of the given record in its parent collection. + @param RecordID The record to look for conflicts for. + @param GetExtendedConflicts If true, checks for conflicts in plugins loaded with the ::fIsExtendedConflicts flag, otherwise they are ignored. + @returns The number of conflicting versions of the record, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetNumRecordConflicts(record_t *RecordID, const bool GetExtendedConflicts); + +/** + @brief Get an array of the different versions of the given record in its parent collection. + @param RecordID The record to look for conflicts for. + @param RecordIDs An array of record pointers, pre-allocated to be of the size given by GetNumRecordConflicts(). This function populates the array. + @param GetExtendedConflicts If true, checks for conflicts in plugins loaded with the ::fIsExtendedConflicts flag, otherwise they are ignored. + @returns The number of records retrieved, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetRecordConflicts(record_t *RecordID, record_t ** RecordIDs, const bool GetExtendedConflicts); + +/** + @brief Get an array of the different versions of the given record in its parent collection. + @details Unlike GetRecordConflicts(), this function will fail if the given record's parent plugin was loaded with the ::fIsExtendedConflicts flag set, and doesn't include the record passed in the outputted array. + @param RecordID The record to look for conflicts for. + @param RecordIDs An array of record pointers, pre-allocated to be of the size given by GetNumRecordConflicts(). This function populates the array. + @returns The number of records retrieved, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetRecordHistory(record_t *RecordID, record_t ** RecordIDs); + +/** + @brief Get the number of Identical To Master records in a plugin. + @details Identical To Master records are unedited copies of records present in a plugin's masters. + @param ModID The plugin to query. + @returns The number of Identical To Master records, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetNumIdenticalToMasterRecords(mod_t *ModID); + +/** + @brief Gets an array of the Identical To Master records in a plugin. + @details Identical To Master records are unedited copies of records present in a plugin's masters. + @param ModID The plugin to query. + @param RecordIDs An array of record pointers, pre-allocated to be of the size given by GetNumIdenticalToMasterRecords(). This function populates the array. + @returns The number of records the array is populated with, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetIdenticalToMasterRecords(mod_t *ModID, record_t ** RecordIDs); + +/** + @brief Check if a record's FormID or any of the FormIDs referenced by the record are invalid. + @param RecordID The record to check. + @returns `1` if the record has or references an invalid FormID, `0` if all the FormIDs it contains are valid, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t IsRecordsFormIDsInvalid(record_t *RecordID); + +///@} +/**************************//** + @name Mod or Record action functions +******************************/ +///@{ + +/** + @brief Update FormID references in a given plugin or record. + @param ModID The plugin to operate on. If `NULL`, RecordID must be non-`NULL`. + @param RecordID The record to operate on. If `NULL`, references in all the records in the given plugin will be updated. + @param OldFormIDs An input array of the FormIDs to update. + @param NewFormIDs An input array of the new FormIDs that correspond to the FormIDs in OldFormIDs. + @param Changes An output array of the number of changes made for each FormID that was inputted. + @param ArraySize The size of the OldFormIDs, NewFormIDs and Changes arrays. + @returns The total number of updated references, or `-1` if an error occurred. +*/ +DLLEXTERN int32_t UpdateReferences(mod_t *ModID, record_t *RecordID, FORMID * OldFormIDs, FORMID * NewFormIDs, uint32_t * Changes, const uint32_t ArraySize); + +///@} +/**************************//** + @name Mod or Record info functions +******************************/ +///@{ + +/** + @brief Check if a record has had its references updated. + @param CollectionID The collection to query. + @param RecordID The record to query. If `NULL`, all record changes in the collection are discarded. + @returns `1` if the record has had its references updated, `0` if not, and `-1` if an error occurred. +*/ +DLLEXTERN int32_t GetRecordUpdatedReferences(collection_t *CollectionID, record_t *RecordID); + +///@} +/**************************//** + @name Field action functions +******************************/ +///@{ + +/** + @brief Set the FormID and EditorID of a record. + @param RecordID The record to operate on. + @param FormID The FormID to set. If `NULL`, the function will exit with error. + @param EditorID The EditorID to set. If the EditorID is already in use by another record in the same plugin, the function will exit with error. + @returns `1` if the FormID and/or EditorID was changed, or `-1` if nothing was changed or an error occurred. +*/ +DLLEXTERN int32_t SetIDFields(record_t *RecordID, const FORMID FormID, char * const EditorID); + +/** + @brief Set a field's value. + @details + @param RecordID The record in which the field is found. + @param FieldID + @param ListIndex + @param ListFieldID + @param ListX2Index + @param ListX2FieldID + @param ListX3Index + @param ListX3FieldID + @param FieldValue The value to set. + @param ArraySize The byte size of the value to set. + @returns +*/ +DLLEXTERN void SetField(record_t *RecordID, FIELD_IDENTIFIERS, void *FieldValue, const uint32_t ArraySize); + +/** + @brief + @details + @param RecordID The record in which the field is found. + @param FieldID + @param ListIndex + @param ListFieldID + @param ListX2Index + @param ListX2FieldID + @param ListX3Index + @param ListX3FieldID + @returns +*/ +DLLEXTERN void DeleteField(record_t *RecordID, FIELD_IDENTIFIERS); + +///@} +/**************************//** + @name Field info functions +******************************/ +///@{ + +/** + @brief + @details + @param RecordID The record in which the field is found. + @param FieldID + @param ListIndex + @param ListFieldID + @param ListX2Index + @param ListX2FieldID + @param ListX3Index + @param ListX3FieldID + @param WhichAttribute + @returns +*/ +DLLEXTERN uint32_t GetFieldAttribute(record_t *RecordID, FIELD_IDENTIFIERS, const uint32_t WhichAttribute); + +/** + @brief + @details + @param RecordID The record in which the field is found. + @param FieldID + @param ListIndex + @param ListFieldID + @param ListX2Index + @param ListX2FieldID + @param ListX3Index + @param ListX3FieldID + @param FieldValues + @returns +*/ +DLLEXTERN void * GetField(record_t *RecordID, FIELD_IDENTIFIERS, void **FieldValues); + +///@} diff --git a/src/CBashConfig.h b/src/CBashConfig.h new file mode 100644 index 0000000..a5f3714 --- /dev/null +++ b/src/CBashConfig.h @@ -0,0 +1,115 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +// CBashConfig.h + + +/* This header includes project configuration macros that changes some things + depending on if CBash is being built or linked against. Most of the options + are automatically detected, with the exception of COMPILING_CBASH (which is + manually defined in CBash.cpp). As an API user, nothing special should be + needed. As a user building CBash, care must be taken to ensure the defines + you want in place are defined before the first time this file is included. + + Options for all uses of CBash are: + CBASH_STATIC - you are building/linking against the lib + CBASH_DLL - you are building/linking against the dll + + Options for building CBash are: + COMPILING_CBASH - you are building CBash dll/lib + CBASH_NO_BOOST_ZLIB - do not link against Boost's version of zlib +*/ + + +// If nothing is defined, assume linking against CBash.dll +#if !defined(CBASH_STATIC) & !defined(COMPILING_CBASH) &!defined(CBASH_DLL) + #define CBASH_DLL +#endif + + +// Building CBash +#ifdef COMPILING_CBASH + #if !defined(CBASH_DLL) & !defined(CBASH_STATIC) + // Not specified if we're building the dll or lib, try to auto-detect + // from the project settings. _USRDLL is defined by the project + // wizard for dll project, but this won't work if the settings are + // changed afterwards. In that case, manually specify which to build. + #ifdef _USRDLL + #define CBASH_DLL + #else + #define CBASH_STATIC + #endif + #endif +#endif + + +// Sanity checks for defines +#if defined(CBASH_STATIC) & defined(CBASH_DLL) + #error "CBash cannot be used as both a static and dynamic library." +#elif !defined(CBASH_STATIC) & !defined(CBASH_DLL) + #error "Could not determine CBash build/link configuration." +#endif + + +// DLLExport/Import +#ifdef __cplusplus + #define DLLEXPORT extern "C" __declspec(dllexport) + #define DLLIMPORT extern "C" __declspec(dllimport) +#else + #define DLLEXPORT __declspec(dllexport) + #define DLLIMPORT __declspec(dllimport) +#endif + + +// Setup some defines/includes for use in CBash.h/.cpp +#ifdef CBASH_STATIC + #define DLLEXTERN + #define CPPDLLEXTERN +#elif defined COMPILING_CBASH + #define DLLEXTERN DLLEXPORT + #define CPPDLLEXTERN DLLEXPORT + // Also, link against the Boost zlib library + #if !defined(CBASH_NO_BOOST_ZLIB) + #define BOOST_LIB_NAME "boost_zlib" + #include + #else + // Cleanup + #undef CBASH_NO_BOOST_ZLIB + #endif +#elif defined CBASH_DLL + // Not compiling, just an API user of the DLL + #define DLLEXTERN DLLIMPORT +#endif diff --git a/src/Collection.cpp b/src/Collection.cpp index 3067f63..491df38 100644 --- a/src/Collection.cpp +++ b/src/Collection.cpp @@ -34,8 +34,12 @@ * * ***** END LICENSE BLOCK ***** */ // Collection.cpp +#include #include "Collection.h" +#ifdef _WIN32 #include +#endif + //#include //SortedRecords::SortedRecords(): @@ -157,11 +161,11 @@ Collection::Collection(char * const &ModsPath, uint32_t _CollectionType): filter_wspaces(), filter_inclusive(false) { - if (_CollectionType >= CB_UNKNOWN_GAME_TYPE) - throw std::exception("CreateCollection: Error - Unable to create the collection. Invalid collection type specified.\n"); - CollectionType = (cb_game_type_t)_CollectionType; + if(_CollectionType >= eIsUnknownGameType) + throw std::runtime_error("CreateCollection: Error - Unable to create the collection. Invalid collection type specified.\n"); + CollectionType = (whichGameTypes)_CollectionType; ModsDir = new char[strlen(ModsPath)+1]; - strcpy_s(ModsDir, strlen(ModsPath)+1, ModsPath); + strncpy(ModsDir, ModsPath, strlen(ModsPath) + 1); } Collection::~Collection() @@ -193,7 +197,11 @@ void Collection::ResetFilter() { ModFile * Collection::AddMod(char * const &_FileName, ModFlags &flags, bool IsPreloading) { +#ifdef _WIN32 _chdir(ModsDir); +#else + chdir(ModsDir); +#endif //Mods may not be added after collection is loaded. //Prevent loading mods more than once @@ -207,7 +215,7 @@ ModFile * Collection::AddMod(char * const &_FileName, ModFlags &flags, bool IsPr delete []ModName; return IsPreloading ? NULL : ModID; } - printer("AddMod: Warning - Unable to add mod \"%s\". It already exists in the collection.\n", ModName ? ModName : _FileName); + log_warning << "AddMod: Warning - Unable to add mod \"" << (ModName ? ModName : _FileName) << "\". It already exists in the collection.\n"; delete []ModName; return NULL; } @@ -215,39 +223,42 @@ ModFile * Collection::AddMod(char * const &_FileName, ModFlags &flags, bool IsPr if(IsLoaded) { if(!IsPreloading) - printer("AddMod: Error - Unable to add mod \"%s\". The collection has already been loaded.\n", ModName ? ModName : _FileName); + log_error << "AddMod: Error - Unable to add mod \"" << (ModName ? ModName : _FileName) << "\". The collection has already been loaded.\n"; delete []ModName; return NULL; } char * FileName = new char[strlen(_FileName) + 1]; - strcpy_s(FileName, strlen(_FileName) + 1, _FileName); + strncpy(FileName, _FileName, strlen(_FileName) + 1); ModName = ModName ? ModName : FileName; + ModFile* ModFile = nullptr; + switch(CollectionType) { - case CB_OBLIVION: - ModFiles.push_back(new TES4File(this, FileName, ModName, flags.GetFlags())); - ModFiles.back()->TES4.whichGame = CB_OBLIVION; + case eIsOblivion: + ModFile = new TES4File(this, FileName, ModName, flags.GetFlags()); break; - case CB_FALLOUT3: - printer("AddMod: Error - Unable to add mod \"%s\". Fallout 3 mod support is unimplemented.\n", ModName); + case eIsFallout3: + log_error << "AddMod: Error - Unable to add mod \"" << ModName << "\". Fallout 3 mod support is unimplemented.\n"; delete []ModName; return NULL; - case CB_FALLOUT_NEW_VEGAS: - ModFiles.push_back(new FNVFile(this, FileName, ModName, flags.GetFlags())); - ModFiles.back()->TES4.whichGame = CB_FALLOUT_NEW_VEGAS; + case eIsFalloutNewVegas: + ModFile = new FNVFile(this, FileName, ModName, flags.GetFlags()); break; - case CB_SKYRIM: - ModFiles.push_back(new TES5File(this, FileName, ModName, flags.GetFlags())); - ModFiles.back()->TES4.whichGame = CB_SKYRIM; + case eIsSkyrim: + ModFile = new TES5File(this, FileName, ModName, flags.GetFlags()); break; default: - printer("AddMod: Error - Unable to add mod \"%s\". Invalid collection type.\n", ModName); + log_error << "AddMod: Error - Unable to add mod \"" << ModName << "\". Invalid collection type.\n"; delete []ModName; return NULL; } - return ModFiles.back(); + + ModFiles.push_back(ModFile); + ModFile->TES4.whichGame = CollectionType; + MappedModFiles[ModName] = ModFile; + return ModFiles.back(); } ModFile * Collection::IsModAdded(char * const &ModName) @@ -262,7 +273,7 @@ int32_t Collection::SaveMod(ModFile *&curModFile, SaveFlags &flags, char * const { if(!curModFile->Flags.IsSaveable) { - printer("SaveMod: Error - Unable to save mod \"%s\". It is flagged as being non-saveable.\n", curModFile->ModName); + log_error << "SaveMod: Error - Unable to save mod \"" << curModFile->ModName << "\". It is flagged as being non-saveable.\n"; return -1; } @@ -279,36 +290,43 @@ int32_t Collection::SaveMod(ModFile *&curModFile, SaveFlags &flags, char * const CleanModMasters(curModFile); //Some records (WRLD->CELL) may be created during the save process if necessary - RecordIndexer indexer(curModFile, curModFile->Flags.IsExtendedConflicts ? ExtendedEditorID_ModFile_Record: EditorID_ModFile_Record, curModFile->Flags.IsExtendedConflicts ? ExtendedFormID_ModFile_Record: FormID_ModFile_Record); + RecordIndexer indexer(curModFile, curModFile->Flags.IsExtendedConflicts ? ExtendedEditorID_ModFile_Record: EditorID_ModFile_Record, curModFile->Flags.IsExtendedConflicts ? ExtendedFormID_ModFile_Record: FormID_ModFile_Record, EDIDIndex); +#ifdef _WIN32 _chdir(ModsDir); +#else + chdir(ModsDir); +#endif char * temp_name = GetTemporaryFileName(DestinationName != NULL ? DestinationName : curModFile->ModName); //deleted when RenameOp is destroyed //Save the mod to temp file curModFile->Save(temp_name, Expanders, flags.IsCloseCollection, indexer); - //Delay renaming temp file to original filename until collection is closed - //This way the file mapping can remain open and the entire file doesn't have to be loaded into memory - closing_ops.push_back(new RenameOp(temp_name, DestinationName != NULL ? DestinationName : curModFile->FileName)); + RenameOp *op = new RenameOp(temp_name, DestinationName != NULL ? DestinationName : curModFile->FileName); + op->perform(); return 0; } int32_t Collection::Load(bool (*_ProgressCallback)(const uint32_t, const uint32_t, const char *)) { ModFile *curModFile = NULL; - RecordIndexer indexer(EditorID_ModFile_Record, FormID_ModFile_Record); - RecordIndexer extended_indexer(ExtendedEditorID_ModFile_Record, ExtendedFormID_ModFile_Record); + RecordIndexer indexer(EditorID_ModFile_Record, FormID_ModFile_Record, EDIDIndex); + RecordIndexer extended_indexer(ExtendedEditorID_ModFile_Record, ExtendedFormID_ModFile_Record, EDIDIndex); bool Preloading = false; std::vector > > DeletedRecords; if(IsLoaded) { - printer("Load: Warning - Unable to load collection. It is already loaded.\n"); + log_warning << "Load: Warning - Unable to load collection. It is already loaded.\n"; return 0; } try { +#ifdef _WIN32 _chdir(ModsDir); +#else + chdir(ModsDir); +#endif //Brute force approach to loading all masters //Could be done more elegantly with recursion //printer("Before Preloading\n"); @@ -332,7 +350,7 @@ int32_t Collection::Load(bool (*_ProgressCallback)(const uint32_t, const uint32_ //for(uint32_t x = 0; x < ModFiles.size(); ++x) // printer("%02X: %s\n", x, ModFiles[x]->FileName); //printer("\n"); - std::_Insertion_sort(ModFiles.begin(), ModFiles.end(), sortMod); + //std::sort(ModFiles.begin(), ModFiles.end(), sortMod); std::vector strLoadOrder255; std::vector strTempLoadOrder; std::vector< std::vector > strAllLoadOrder; @@ -346,7 +364,7 @@ int32_t Collection::Load(bool (*_ProgressCallback)(const uint32_t, const uint32_ if(curModFile->Flags.IsInLoadOrder) { if(LoadOrder255.size() >= 255) - throw std::exception("Tried to load more than 255 mods."); + throw std::runtime_error("Tried to load more than 255 mods."); LoadOrder255.push_back(curModFile); strLoadOrder255.push_back(curModFile->ModName); //printer(" , OrderID %02X", LoadOrder255.size() - 1); @@ -768,7 +786,7 @@ Record * Collection::CreateRecord(ModFile *&curModFile, const uint32_t &RecordTy { if(!curModFile->Flags.IsInLoadOrder) { - printer("CreateRecord: Error - Unable to create any records in mod \"%s\". It is not in the load order.\n", curModFile->ModName); + log_error << "CreateRecord: Error - Unable to create any records in mod \"" << curModFile->ModName << "\". It is not in the load order.\n"; return NULL; } @@ -794,7 +812,9 @@ Record * Collection::CreateRecord(ModFile *&curModFile, const uint32_t &RecordTy LookupRecord(curModFile, ParentFormID, ParentRecord); if(ParentRecord == NULL) { - printer("CreateRecord: Error - Unable to locate parent record (%08X). It does not exist in \"%s\".\n", ParentFormID, curModFile->ModName); + char strBuff[120]; + sprintf(strBuff, "CreateRecord: Error - Unable to locate parent record (%08X). It does not exist in \"%s\".\n", ParentFormID, curModFile->ModName); + log_error << strBuff; return NULL; } } @@ -803,7 +823,9 @@ Record * Collection::CreateRecord(ModFile *&curModFile, const uint32_t &RecordTy Record *curRecord = curModFile->CreateRecord(RecordType, RecordEditorID, DummyRecord, ParentRecord, options); if(curRecord == NULL) { - printer("CreateRecord: Error - Unable to create record of type \"%c%c%c%c\" in mod \"%s\". An unknown error occurred.\n", ((char *)&RecordType)[0], ((char *)&RecordType)[1], ((char *)&RecordType)[2], ((char *)&RecordType)[3], curModFile->ModName); + char strBuff[120]; + sprintf(strBuff, "CreateRecord: Error - Unable to create record of type \"%c%c%c%c\" in mod \"%s\". An unknown error occurred.\n", ((char *)&RecordType)[0], ((char *)&RecordType)[1], ((char *)&RecordType)[2], ((char *)&RecordType)[3], curModFile->ModName); + log_error << strBuff; return NULL; } @@ -825,7 +847,7 @@ Record * Collection::CreateRecord(ModFile *&curModFile, const uint32_t &RecordTy //curRecord->VisitFormIDs(checker); //Shouldn't be needed unless a record defaults to having formIDs set (none do atm) //Index the new record - RecordIndexer indexer(curModFile, curModFile->Flags.IsExtendedConflicts ? ExtendedEditorID_ModFile_Record: EditorID_ModFile_Record, curModFile->Flags.IsExtendedConflicts ? ExtendedFormID_ModFile_Record: FormID_ModFile_Record); + RecordIndexer indexer(curModFile, curModFile->Flags.IsExtendedConflicts ? ExtendedEditorID_ModFile_Record: EditorID_ModFile_Record, curModFile->Flags.IsExtendedConflicts ? ExtendedFormID_ModFile_Record: FormID_ModFile_Record, EDIDIndex); indexer.Accept(curRecord); if(RecordFormID != 0) @@ -847,7 +869,7 @@ Record * Collection::CopyRecord(Record *&curRecord, ModFile *&DestModFile, const ModFile *curModFile = curRecord->GetParentMod(); if(!curModFile->Flags.IsInLoadOrder && !curModFile->Flags.IsIgnoreInactiveMasters) { - printer("CopyRecord: Error - Unable to copy any records from source mod \"%s\". It is not in the load order and may require absent masters.\n", curModFile->ModName); + log_error << "CopyRecord: Error - Unable to copy any records from source mod \"" << curModFile->ModName << "\". It is not in the load order and may require absent masters.\n"; return NULL; } @@ -899,13 +921,17 @@ Record * Collection::CopyRecord(Record *&curRecord, ModFile *&DestModFile, const LookupRecord(curModFile, DestParentFormID, ParentRecord); if(ParentRecord == NULL) { - printer("CopyRecord: Error - Unable to locate destination parent record (%08X). It does not exist in \"%s\" or \"%s\".\n", DestParentFormID, DestModFile->ModName, curModFile->ModName); + char strBuff[150]; + sprintf(strBuff, "CopyRecord: Error - Unable to locate destination parent record (%08X). It does not exist in \"%s\" or \"%s\".\n", DestParentFormID, DestModFile->ModName, curModFile->ModName); + log_error << strBuff; return NULL; } ParentRecord = CopyRecord(ParentRecord, DestModFile, ParentRecord->GetParentRecord() != NULL ? ParentRecord->GetParentRecord()->formID : 0, 0, 0, options.GetFlags()); if(ParentRecord == NULL) { - printer("CopyRecord: Error - Unable to copy missing destination parent record (%08X). It does not exist in \"%s\", and there was an error copying it from \"%s\".\n", DestParentFormID, DestModFile->ModName, curModFile->ModName); + char strBuff[150]; + sprintf(strBuff, "CopyRecord: Error - Unable to copy missing destination parent record (%08X). It does not exist in \"%s\", and there was an error copying it from \"%s\".\n", DestParentFormID, DestModFile->ModName, curModFile->ModName); + log_error << strBuff; return NULL; } } @@ -913,13 +939,17 @@ Record * Collection::CopyRecord(Record *&curRecord, ModFile *&DestModFile, const if(curModFile == DestModFile && options.SetAsOverride) { - printer("CopyRecord: Error - Unable to copy (%08X) as an override record. Source and destination mods \"%s\" are the same.\n", curRecord->formID, curModFile->ModName); + char strBuff[150]; + sprintf(strBuff, "CopyRecord: Error - Unable to copy (%08X) as an override record. Source and destination mods \"%s\" are the same.\n", curRecord->formID, curModFile->ModName); + log_error << strBuff; return NULL; } if(!DestModFile->Flags.IsInLoadOrder && !options.SetAsOverride) { - printer("CopyRecord: Error - Unable to copy (%08X) as a new record. Destination \"%s\" is not in the load order.\n", curRecord->formID, DestModFile->ModName); + char strBuff[150]; + sprintf(strBuff, "CopyRecord: Error - Unable to copy (%08X) as a new record. Destination \"%s\" is not in the load order.\n", curRecord->formID, DestModFile->ModName); + log_error << strBuff; return NULL; } @@ -927,7 +957,9 @@ Record * Collection::CopyRecord(Record *&curRecord, ModFile *&DestModFile, const RecordCopy = DestModFile->CreateRecord(curRecord->GetType(), DestRecordEditorID, curRecord, ParentRecord, options); if(RecordCopy == NULL) { - printer("CopyRecord: Error - Unable to create the copied record (%08X). An unknown error occurred when copying the record from \"%s\" to \"%s\".\n", curRecord->formID, DestModFile->ModName, curModFile->ModName); + char strBuff[150]; + sprintf(strBuff, "CopyRecord: Error - Unable to create the copied record (%08X). An unknown error occurred when copying the record from \"%s\" to \"%s\".\n", curRecord->formID, DestModFile->ModName, curModFile->ModName); + log_error << strBuff; return NULL; } @@ -963,7 +995,7 @@ Record * Collection::CopyRecord(Record *&curRecord, ModFile *&DestModFile, const RecordCopy->VisitFormIDs(checker); //Index the record - RecordIndexer indexer(DestModFile, DestModFile->Flags.IsExtendedConflicts ? ExtendedEditorID_ModFile_Record: EditorID_ModFile_Record, DestModFile->Flags.IsExtendedConflicts ? ExtendedFormID_ModFile_Record: FormID_ModFile_Record); + RecordIndexer indexer(DestModFile, DestModFile->Flags.IsExtendedConflicts ? ExtendedEditorID_ModFile_Record: EditorID_ModFile_Record, DestModFile->Flags.IsExtendedConflicts ? ExtendedFormID_ModFile_Record: FormID_ModFile_Record, EDIDIndex); indexer.Accept(RecordCopy); if(curRecord->IsWinningDetermined() || curRecord->formID != RecordCopy->formID) @@ -986,7 +1018,7 @@ int32_t Collection::CleanModMasters(ModFile *curModFile) { if(!curModFile->Flags.IsInLoadOrder) { - printer("CleanModMasters: Error - Unable to clean \"%s\"'s masters. It is not in the load order.\n", curModFile->ModName); + log_error << "CleanModMasters: Error - Unable to clean \"" << curModFile->ModName << "\"'s masters. It is not in the load order.\n"; return NULL; } @@ -994,7 +1026,7 @@ int32_t Collection::CleanModMasters(ModFile *curModFile) curModFile->VisitAllRecords(collector); uint32_t cleaned = 0; - for(int32_t ListIndex = curModFile->TES4.MAST.size() - 1; ListIndex >= 0 ; --ListIndex) + for(size_t ListIndex = curModFile->TES4.MAST.size() - 1; ListIndex >= 0 ; --ListIndex) { if(collector.collector.UsedTable[ListIndex] == 0) { @@ -1048,7 +1080,9 @@ int32_t Collection::SetIDFields(Record *&RecordID, FORMID FormID, char * const & if(curRecord != NULL) { - printer("SetRecordIDs: Error - Unable to set the new record ids (%08X, %s) on record (%08X, %s) in mod \"%s\". The formID is already in use.\n", FormID, EditorID, curRecord->formID, curRecord->GetEditorIDKey(), curModFile->ModName); + char strBuff[180]; + sprintf(strBuff, "SetRecordIDs: Error - Unable to set the new record ids (%08X, %s) on record (%08X, %s) in mod \"%s\". The formID is already in use.\n", FormID, EditorID, curRecord->formID, curRecord->GetEditorIDKey(), curModFile->ModName); + log_error << strBuff; return -1; } @@ -1059,7 +1093,9 @@ int32_t Collection::SetIDFields(Record *&RecordID, FORMID FormID, char * const & if(curRecord != NULL) { - printer("SetRecordIDs: Error - Unable to set the new record ids (%08X, %s) on record (%08X, %s) in mod \"%s\". The EditorID is already in use.\n", FormID, EditorID, curRecord->formID, curRecord->GetEditorIDKey(), curModFile->ModName); + char strBuff[180]; + sprintf(strBuff, "SetRecordIDs: Error - Unable to set the new record ids (%08X, %s) on record (%08X, %s) in mod \"%s\". The EditorID is already in use.\n", FormID, EditorID, curRecord->formID, curRecord->GetEditorIDKey(), curModFile->ModName); + log_error << strBuff; return -1; } @@ -1070,7 +1106,9 @@ int32_t Collection::SetIDFields(Record *&RecordID, FORMID FormID, char * const & deindexer.Accept(RecordID); if(deindexer.GetCount() == 0) { - printer("SetRecordIDs: Error - Unable to set the new record ids (%08X, %s) on record (%08X, %s) in mod \"%s\". Unable to deindex the record.\n", FormID, EditorID, RecordID->formID, RecordID->GetEditorIDKey(), curModFile->ModName); + char strBuff[180]; + sprintf(strBuff, "SetRecordIDs: Error - Unable to set the new record ids (%08X, %s) on record (%08X, %s) in mod \"%s\". Unable to deindex the record.\n", FormID, EditorID, RecordID->formID, RecordID->GetEditorIDKey(), curModFile->ModName); + log_error << strBuff; return -1; } } @@ -1096,7 +1134,7 @@ int32_t Collection::SetIDFields(Record *&RecordID, FORMID FormID, char * const & //Re-index the record if(bChangingFormID || (bChangingEditorID && RecordID->IsKeyedByEditorID())) { - RecordIndexer indexer(curModFile, curModFile->Flags.IsExtendedConflicts ? ExtendedEditorID_ModFile_Record: EditorID_ModFile_Record, curModFile->Flags.IsExtendedConflicts ? ExtendedFormID_ModFile_Record: FormID_ModFile_Record); + RecordIndexer indexer(curModFile, curModFile->Flags.IsExtendedConflicts ? ExtendedEditorID_ModFile_Record: EditorID_ModFile_Record, curModFile->Flags.IsExtendedConflicts ? ExtendedFormID_ModFile_Record: FormID_ModFile_Record, EDIDIndex); indexer.Accept(RecordID); } @@ -1119,7 +1157,9 @@ int32_t Collection::SetIDFields(Record *&RecordID, FORMID FormID, char * const & { //RecordID->HasInvalidFormIDs(true); ModFile *ModID = RecordID->GetParentMod(); - printer("SetIDFields: Error! Record (%08X) in mod %s uses an invalid FormID!\n", RecordID->formID, ModID->ModName); + char strBuff[100]; + sprintf(strBuff, "SetIDFields: Error! Record (%08X) in mod %s uses an invalid FormID!\n", RecordID->formID, ModID->ModName); + log_error << strBuff; } return (bChangingFormID || bChangingEditorID) ? 1 : -1; @@ -1323,7 +1363,9 @@ bool RecordReader::Accept(Record *&curRecord) uint8_t CollapsedIndex = ModID->FormIDHandler.CollapseTable[ModIndex]; char * LongID = CollapsedIndex >= ModID->TES4.MAST.size() ? ModID->ModName : ModID->TES4.MAST[CollapsedIndex]; - printer("RecordReader: Error - Unable to find the correct expander for record (%s, %06X) in mod %s!\n", LongID, curRecord->formID & 0x00FFFFFF, ModID->ModName); + char strBuff[120]; + sprintf(strBuff, "RecordReader: Error - Unable to find the correct expander for record (%s, %06X) in mod %s!\n", LongID, curRecord->formID & 0x00FFFFFF, ModID->ModName); + log_error << strBuff; //expander.result = false; curRecord->VisitFormIDs(expander); //curRecord->HasInvalidFormIDs(expander.result); diff --git a/src/Collection.h b/src/Collection.h index d994944..6fcd468 100644 --- a/src/Collection.h +++ b/src/Collection.h @@ -75,15 +75,18 @@ struct Collection std::vector sortedConflicts; public: - cb_game_type_t CollectionType; + whichGameTypes CollectionType; std::vector ModFiles; + std::map MappedModFiles; std::vector LoadOrder255; std::vector Expanders; EditorID_Map EditorID_ModFile_Record; FormID_Map FormID_ModFile_Record; + EditorID_Map EDIDIndex; + EditorID_Map ExtendedEditorID_ModFile_Record; FormID_Map ExtendedFormID_ModFile_Record; @@ -107,6 +110,10 @@ struct Collection void AddWSpaceFilter(FORMID worldspace); void ResetFilter(); + ModFile *ModFileByName(std::string name) { + return MappedModFiles[name]; + } + // Callback(position, maximum, modfile-name); int32_t Load(bool (*_ProgressCallback)(const uint32_t, const uint32_t, const char *) = NULL); void UndeleteRecords(std::vector > > &DeletedRecords); diff --git a/src/Common.cpp b/src/Common.cpp index 1da77fd..cf44147 100644 --- a/src/Common.cpp +++ b/src/Common.cpp @@ -36,7 +36,6 @@ // Common.cpp #include "Common.h" #include "zlib.h" -#include int (*printer)(const char * _Format, ...) = &printf; int32_t (*LoggingCallback)(const char *) = NULL; @@ -62,22 +61,22 @@ void (*RaiseCallback)(const char *) = NULL; std::map CallCount; #endif -const char * Ex_NULL::__CLR_OR_THIS_CALL what() const +const char * Ex_NULL::__CLR_OR_THIS_CALL what() const NOEXCEPT { return "NULL Pointer"; } -const char * Ex_INVALIDINDEX::__CLR_OR_THIS_CALL what() const +const char * Ex_INVALIDINDEX::__CLR_OR_THIS_CALL what() const NOEXCEPT { return "Invalid Index"; } -const char * Ex_INVALIDCOLLECTIONINDEX::__CLR_OR_THIS_CALL what() const +const char * Ex_INVALIDCOLLECTIONINDEX::__CLR_OR_THIS_CALL what() const NOEXCEPT { return "Invalid Collection Index"; } -const char * Ex_INVALIDMODINDEX::__CLR_OR_THIS_CALL what() const +const char * Ex_INVALIDMODINDEX::__CLR_OR_THIS_CALL what() const NOEXCEPT { return "Invalid Mod Index"; } @@ -90,7 +89,12 @@ int icmps(const char * lhs, const char * rhs) return -1; if(rhs == NULL) return 1; - return _stricmp(lhs, rhs); + +#ifdef WIN32 + return stricmp(lhs, rhs); +#else + return strcasecmp(lhs, rhs); +#endif } int cmps(const char * lhs, const char * rhs) @@ -144,7 +148,7 @@ char * DeGhostModName(char * const ModName) if(icmps(".ghost",ModName + NameLength - 7) == 0) { NonGhostName = new char[NameLength]; - strcpy_s(NonGhostName, NameLength, ModName); + strncpy(NonGhostName, ModName, NameLength); NonGhostName[NameLength - 7] = 0x00; //printer("DeGhostModName: De-ghosted (%s)(%d) to (%s)(%d)\n", ModName, strlen(ModName), NonGhostName, strlen(NonGhostName)); return NonGhostName; @@ -155,8 +159,8 @@ char * DeGhostModName(char * const ModName) bool FileExists(char * const FileName) { - struct stat statBuffer; - return (stat(FileName, &statBuffer) >= 0 && statBuffer.st_mode & S_IFREG); + struct stat statBuffer; + return (stat(FileName, &statBuffer) >= 0 && statBuffer.st_mode & S_IFREG); } char * GetTemporaryFileName(char * FileName, bool IsBackup) @@ -167,6 +171,7 @@ char * GetTemporaryFileName(char * FileName, bool IsBackup) time_t ltime; struct tm current_time; + struct tm* current_time_p; //Keep at least 1 minute between each datestamp time(<ime); @@ -174,8 +179,19 @@ char * GetTemporaryFileName(char * FileName, bool IsBackup) ltime = last_save + 60; last_save = ltime; - switch(_localtime64_s(¤t_time, <ime)) - { +#ifdef _WIN32 + current_time_p = ¤t_time; + switch(_localtime64_s(current_time_p, <ime)) +#else + int lerr = 0; + current_time_p = localtime(<ime); + if (current_time_p == NULL) + { + lerr = EINVAL; + } + switch (lerr) +#endif + { case 0: break; case EINVAL: @@ -185,14 +201,14 @@ char * GetTemporaryFileName(char * FileName, bool IsBackup) return NULL; } - char * temp_extension = IsBackup ? ".bak.%Y_%m_%d_%H_%M_%S" : ".new.%Y_%m_%d_%H_%M_%S"; + const char * temp_extension = IsBackup ? ".bak.%Y_%m_%d_%H_%M_%S" : ".new.%Y_%m_%d_%H_%M_%S"; uint32_t name_size = (uint32_t)strlen(UsedName); uint32_t temp_size = name_size + (uint32_t)strlen(".XXX.XXXX_XX_XX_XX_XX_XX") + 1; char * temp_name = new char[temp_size]; - strcpy_s(temp_name, temp_size, UsedName); + strncpy(temp_name, UsedName, temp_size); delete []NonGhostName; - strftime(temp_name + name_size, temp_size, temp_extension, ¤t_time); + strftime(temp_name + name_size, temp_size, temp_extension, current_time_p); //If the new name already exists, add another minute until a free name is available //If 10 tries pass, then give up. @@ -202,9 +218,9 @@ char * GetTemporaryFileName(char * FileName, bool IsBackup) if(attempts > 10) break; attempts++; - current_time.tm_min++; - mktime(¤t_time); - strftime(temp_name + name_size, temp_size, temp_extension, ¤t_time); + current_time_p->tm_min++; + mktime(current_time_p); + strftime(temp_name + name_size, temp_size, temp_extension, current_time_p); }; return temp_name; @@ -236,23 +252,17 @@ bool RenameOp::perform() last_save = ltime; struct stat o_time; - struct _utimbuf original_times; - original_times.actime = ltime; - original_times.modtime = ltime; //Backup any existing file if(FileExists(destination_name)) { stat(destination_name, &o_time); - original_times.actime = o_time.st_atime; - original_times.modtime = o_time.st_mtime; char * backup_name = GetTemporaryFileName(destination_name, true); switch(rename(destination_name, backup_name)) { case 0: - _utime(backup_name, &original_times); break; case EACCES: printer("RenameOp: Error - Unable to rename existing file from \"%s\" to \"%s\". File or directory specified by newname already exists or could not be created (invalid path); or oldname is a directory and newname specifies a different path.\n", destination_name, backup_name); @@ -278,7 +288,6 @@ bool RenameOp::perform() switch(rename(original_name, destination_name)) { case 0: - _utime(destination_name, &original_times); return true; case EACCES: printer("RenameOp: Warning - Unable to rename temporary file from \"%s\" to \"%s\". File or directory specified by newname already exists or could not be created (invalid path); or oldname is a directory and newname specifies a different path.\n", original_name, destination_name); @@ -318,15 +327,6 @@ bool AlmostEqual(float A, float B, int32_t maxUlps) return false; } -void UnrecognizedSubRecord(cb_formid_t formID, uint32_t subType, uint32_t subSize, unsigned char *&buffer, unsigned char *end_buffer) -{ - //printf("FileName = %s\n", FileName); - printf(" BPTD: %08X - Unknown subType = %04x\n", formID, subType); - printf(" Size = %i\n", subSize); - printf(" CurPos = %04x\n\n", reinterpret_cast(buffer - 6)); - buffer = end_buffer; -} - FileWriter::FileWriter(char * filename, uint32_t size): file_buffer(NULL), record_buffer(NULL), @@ -356,10 +356,25 @@ FileWriter::~FileWriter() } int32_t FileWriter::open() - { - if(fh != -1 || FileName == NULL) - return -1; - errno_t err = _sopen_s(&fh, FileName, _O_CREAT | _O_RDWR | _O_BINARY, _SH_DENYWR, _S_IREAD | _S_IWRITE ); +{ + if (fh != -1 || FileName == NULL) + return -1; + +#ifdef _WIN32 + errno_t err = _sopen_s(&fh, FileName, _O_CREAT | _O_RDWR | _O_BINARY, _SH_DENYWR, _S_IREAD | _S_IWRITE); +#else + int err = 0; + int fd = ::open(FileName, O_CREAT | O_RDWR, 0777); + if (fd < 0) + { + err = errno; + } + else + { + fh = fd; + } +#endif + if( err != 0 ) { switch(err) @@ -383,8 +398,6 @@ int32_t FileWriter::open() printer("FileWriter: Error - Unable to open \"%s\" as read,write via file handle. An unknown error occurred.\n", FileName); return -1; } - _close(fh); - return -1; } return 0; } @@ -395,10 +408,18 @@ int32_t FileWriter::close() { if(file_buffer_used) { +#ifdef _WIN32 _write(fh, file_buffer, file_buffer_used); +#else + write(fh, file_buffer, file_buffer_used); +#endif file_buffer_used = 0; } - _close(fh); +#ifdef _WIN32 + _close(fh); +#else + ::close(fh); +#endif } fh = -1; return 0; @@ -489,7 +510,11 @@ void FileWriter::record_flush() uint32_t FileWriter::file_tell() { +#ifdef _WIN32 return file_buffer_used + _tell(fh); +#else + return file_buffer_used + lseek(fh, 0, SEEK_CUR); +#endif } void FileWriter::file_write(const void *source_buffer, uint32_t source_buffer_used) @@ -512,7 +537,11 @@ void FileWriter::file_write(const void *source_buffer, uint32_t source_buffer_us if((file_buffer_used + source_buffer_used) >= file_buffer_size) { //file_flush(); - _write(fh, file_buffer, file_buffer_used); +#ifdef _WIN32 + _write(fh, file_buffer, file_buffer_used); +#else + write(fh, file_buffer, file_buffer_used); +#endif file_buffer_used = 0; } //Use the file buffer if there's room @@ -524,7 +553,11 @@ void FileWriter::file_write(const void *source_buffer, uint32_t source_buffer_us else { //Otherwise, write directly to disk. - _write(fh, source_buffer, source_buffer_used); +#ifdef _WIN32 + _write(fh, source_buffer, source_buffer_used); +#else + write(fh, source_buffer, source_buffer_used); +#endif } return; } @@ -545,14 +578,23 @@ void FileWriter::file_write(uint32_t position, const void *source_buffer, uint32 printer("FileWriter::file_write: Error - Unable to write. Source buffer is NULL.\n"); return; } +#ifdef _WIN32 int32_t curPos = _tell(fh); - +#else + int32_t curPos = lseek(fh, 0, SEEK_CUR); +#endif if(position < (uint32_t)curPos) { //It has already been written to disk. - _lseek(fh, position, SEEK_SET); - _write(fh, source_buffer, source_buffer_used); - _lseek(fh, curPos, SEEK_SET); +#ifdef _WIN32 + _lseek(fh, position, SEEK_SET); + _write(fh, source_buffer, source_buffer_used); + _lseek(fh, curPos, SEEK_SET); +#else + lseek(fh, position, SEEK_SET); + write(fh, source_buffer, source_buffer_used); + lseek(fh, curPos, SEEK_SET); +#endif } else if(position < (file_buffer_used + curPos)) { @@ -743,8 +785,8 @@ CreationFlags::CreationFlags(): } CreationFlags::CreationFlags(uint32_t nFlags): - SetAsOverride((nFlags & CB_SET_AS_OVERRIDE) != 0), - CopyWinningParent((nFlags & CB_COPY_WINNING_PARENT) != 0), + SetAsOverride((nFlags & fSetAsOverride) != 0), + CopyWinningParent((nFlags & fCopyWinningParent) != 0), ExistingReturned(false) { // @@ -759,9 +801,9 @@ uint32_t CreationFlags::GetFlags() { uint32_t flags = 0; if(SetAsOverride) - flags |= CB_SET_AS_OVERRIDE; + flags |= fSetAsOverride; if(CopyWinningParent) - flags |= CB_COPY_WINNING_PARENT; + flags |= fCopyWinningParent; return flags; } @@ -786,21 +828,21 @@ ModFlags::ModFlags(): } ModFlags::ModFlags(uint32_t _Flags): - IsMinLoad((_Flags & CB_MIN_LOAD) != 0 && (_Flags & CB_FULL_LOAD) == 0), - IsFullLoad((_Flags & CB_FULL_LOAD) != 0), + IsMinLoad((_Flags & fIsMinLoad) != 0 && (_Flags & fIsFullLoad) == 0), + IsFullLoad((_Flags & fIsFullLoad) != 0), IsNoLoad(!(IsMinLoad || IsFullLoad)), - IsSkipNewRecords((_Flags & CB_SKIP_NEW_RECORDS) != 0), - IsSkipAllRecords((_Flags & CB_SKIP_ALL_RECORDS) != 0), - IsInLoadOrder((_Flags & CB_IN_LOAD_ORDER) != 0), - IsSaveable(((_Flags & CB_IN_LOAD_ORDER) != 0) ? ((_Flags & CB_SAVEABLE) != 0) : false), - IsAddMasters(((_Flags & CB_IGNORE_INACTIVE_MASTERS) != 0) ? false : ((_Flags & CB_ADD_MASTERS) != 0)), - IsLoadMasters((_Flags & CB_LOAD_MASTERS) != 0), - IsExtendedConflicts((_Flags & CB_EXTENDED_CONFLICTS) != 0), - IsTrackNewTypes((_Flags & CB_TRACK_NEW_TYPES) != 0), - IsIndexLANDs((_Flags & CB_INDEX_LANDS) != 0), - IsFixupPlaceables((_Flags & CB_FIXUP_PLACEABLES) != 0), - IsCreateNew((_Flags & CB_CREATE_NEW) != 0), - IsIgnoreInactiveMasters((_Flags & CB_IGNORE_INACTIVE_MASTERS) != 0), + IsSkipNewRecords((_Flags & fIsSkipNewRecords) != 0), + IsSkipAllRecords((_Flags & fIsSkipAllRecords) != 0), + IsInLoadOrder((_Flags & fIsInLoadOrder) != 0), + IsSaveable(((_Flags & fIsInLoadOrder) != 0) ? ((_Flags & fIsSaveable) != 0) : false), + IsAddMasters(((_Flags & fIsIgnoreInactiveMasters) != 0) ? false : ((_Flags & fIsAddMasters) != 0)), + IsLoadMasters((_Flags & fIsLoadMasters) != 0), + IsExtendedConflicts((_Flags & fIsExtendedConflicts) != 0), + IsTrackNewTypes((_Flags & fIsTrackNewTypes) != 0), + IsIndexLANDs((_Flags & fIsIndexLANDs) != 0), + IsFixupPlaceables((_Flags & fIsFixupPlaceables) != 0), + IsCreateNew((_Flags & fIsCreateNew) != 0), + IsIgnoreInactiveMasters((_Flags & fIsIgnoreInactiveMasters) != 0), LoadedGRUPs(false) { // @@ -815,43 +857,43 @@ uint32_t ModFlags::GetFlags() { uint32_t flags = 0; if(IsMinLoad) - flags |= CB_MIN_LOAD; + flags |= fIsMinLoad; if(IsFullLoad) { - flags |= CB_FULL_LOAD; - flags &= ~CB_MIN_LOAD; + flags |= fIsFullLoad; + flags &= ~fIsMinLoad; } if(IsNoLoad) { - flags &= ~CB_FULL_LOAD; - flags &= ~CB_MIN_LOAD; + flags &= ~fIsFullLoad; + flags &= ~fIsMinLoad; } if(IsSkipNewRecords) - flags |= CB_SKIP_NEW_RECORDS; + flags |= fIsSkipNewRecords; if(IsSkipAllRecords) - flags |= CB_SKIP_ALL_RECORDS; + flags |= fIsSkipAllRecords; if(IsInLoadOrder) - flags |= CB_IN_LOAD_ORDER; + flags |= fIsInLoadOrder; if(IsSaveable) - flags |= CB_SAVEABLE; + flags |= fIsSaveable; if(IsAddMasters) - flags |= CB_ADD_MASTERS; + flags |= fIsAddMasters; if(IsLoadMasters) - flags |= CB_LOAD_MASTERS; + flags |= fIsLoadMasters; if(IsExtendedConflicts) - flags |= CB_EXTENDED_CONFLICTS; + flags |= fIsExtendedConflicts; if(IsTrackNewTypes) - flags |= CB_TRACK_NEW_TYPES; + flags |= fIsTrackNewTypes; if(IsIndexLANDs) - flags |= CB_INDEX_LANDS; + flags |= fIsIndexLANDs; if(IsFixupPlaceables) - flags |= CB_FIXUP_PLACEABLES; + flags |= fIsFixupPlaceables; if(IsCreateNew) - flags |= CB_CREATE_NEW; + flags |= fIsCreateNew; if(IsIgnoreInactiveMasters) { - flags &= ~CB_ADD_MASTERS; - flags |= CB_IGNORE_INACTIVE_MASTERS; + flags &= ~fIsAddMasters; + flags |= fIsIgnoreInactiveMasters; } return flags; } @@ -864,8 +906,8 @@ SaveFlags::SaveFlags(): } SaveFlags::SaveFlags(uint32_t _Flags): - IsCleanMasters((_Flags & CB_CLEAN_MASTERS) != 0), - IsCloseCollection((_Flags & CB_CLOSE_COLLECTION) != 0) + IsCleanMasters((_Flags & fIsCleanMasters) != 0), + IsCloseCollection((_Flags & fIsCloseCollection) != 0) { // } @@ -1045,41 +1087,44 @@ StringRecord& StringRecord::operator = (const StringRecord &rhs) } NonNullStringRecord::NonNullStringRecord(): - _value(NULL), - DiskSize(0) + value(NULL), + DiskSize(0), + fIsAllocated(false) { // } NonNullStringRecord::NonNullStringRecord(const NonNullStringRecord &p): - _value(NULL), - DiskSize(0) + value(NULL), + DiskSize(0), + fIsAllocated(false) { if(!p.IsLoaded()) return; - if(p.DiskSize) - { - _value = p._value; - DiskSize = p.DiskSize; - } - else - { + char *val; + if(p.fIsAllocated) { uint32_t size = p.GetSize(); - _value = new char[size]; - memcpy(_value, p._value, size); - } + val = new char[size]; + memcpy(val, p.value, size); + } else { + val = p.value; + } + + value = val; + DiskSize = p.DiskSize; + fIsAllocated = p.fIsAllocated; } NonNullStringRecord::~NonNullStringRecord() { - if(DiskSize == 0) - delete []_value; + if(fIsAllocated) + delete []value; } uint32_t NonNullStringRecord::GetSize() const { - return _value != NULL ? (DiskSize ? DiskSize : (uint32_t)strlen(_value)) : 0; + return value != NULL ? (DiskSize ? DiskSize : (uint32_t)strlen(value)) : 0; } char * NonNullStringRecord::GetString() @@ -1090,16 +1135,28 @@ char * NonNullStringRecord::GetString() //The string needs a null terminator added, so load it from disk char * nvalue = new char[DiskSize + 1]; nvalue[DiskSize] = 0x00; - memcpy(nvalue, _value, DiskSize); - _value = nvalue; + memcpy(nvalue, value, DiskSize); + value = nvalue; DiskSize = 0; + fIsAllocated = true; } - return _value; + return value; } + +void NonNullStringRecord::PutString(char* value, int ignored) { + //Clone the data and store the new pointer + + size_t size = strlen(value); + char* nvalue = new char[size]; + strncpy(nvalue, value, size); + value = nvalue; + +} + bool NonNullStringRecord::IsLoaded() const { - return _value != NULL; + return value != NULL; } void NonNullStringRecord::Load() @@ -1109,10 +1166,10 @@ void NonNullStringRecord::Load() void NonNullStringRecord::Unload() { - if(DiskSize == 0) + if(fIsAllocated) { - delete []_value; - _value = NULL; + delete []value; + value = NULL; } } @@ -1125,14 +1182,15 @@ bool NonNullStringRecord::Read(unsigned char *&buffer, const uint32_t &subSize, } if(CompressedOnDisk) { - _value = new char[subSize + 1]; - _value[subSize] = 0x00; - memcpy(_value, buffer, subSize); + value = new char[subSize + 1]; + value[subSize] = 0x00; + memcpy(value, buffer, subSize); + fIsAllocated = true; } else { DiskSize = subSize; - _value = (char *)buffer; + value = (char *)buffer; } buffer += subSize; return true; @@ -1140,24 +1198,24 @@ bool NonNullStringRecord::Read(unsigned char *&buffer, const uint32_t &subSize, void NonNullStringRecord::Write(uint32_t _Type, FileWriter &writer) { - if(_value != NULL) - writer.record_write_subrecord(_Type, _value, DiskSize ? DiskSize : (uint32_t)strlen(_value)); + if(value != NULL) + writer.record_write_subrecord(_Type, value, DiskSize ? DiskSize : (uint32_t)strlen(value)); } void NonNullStringRecord::Write16(FileWriter &writer) const { - if (_value != NULL) + if (value != NULL) { - uint16_t size = DiskSize ? (uint16_t)DiskSize : (uint16_t)strlen(_value); + uint16_t size = DiskSize ? (uint16_t)DiskSize : (uint16_t)strlen(value); writer.record_write(&size, sizeof(size)); - writer.record_write(_value, size); + writer.record_write(value, size); } } void NonNullStringRecord::ReqWrite(uint32_t _Type, FileWriter &writer) { - if(_value != NULL) - writer.record_write_subrecord(_Type, _value, DiskSize ? DiskSize : (uint32_t)strlen(_value)); + if(value != NULL) + writer.record_write_subrecord(_Type, value, DiskSize ? DiskSize : (uint32_t)strlen(value)); else { char null = 0x00; @@ -1172,19 +1230,20 @@ void NonNullStringRecord::Copy(char * FieldValue) { DiskSize = 0; uint32_t size = (uint32_t)strlen(FieldValue) + 1; - _value = new char[size]; - memcpy(_value, FieldValue, size); + value = new char[size]; + memcpy(value, FieldValue, size); + fIsAllocated = true; } } bool NonNullStringRecord::equals(const NonNullStringRecord &other) const { - return cmps(_value, other._value) == 0; + return cmps(value, other.value) == 0; } bool NonNullStringRecord::equalsi(const NonNullStringRecord &other) const { - return icmps(_value, other._value) == 0; + return icmps(value, other.value) == 0; } NonNullStringRecord& NonNullStringRecord::operator = (const NonNullStringRecord &rhs) @@ -1194,15 +1253,16 @@ NonNullStringRecord& NonNullStringRecord::operator = (const NonNullStringRecord Unload(); if(rhs.DiskSize) { - _value = rhs._value; + value = rhs.value; DiskSize = rhs.DiskSize; } - else if(rhs._value != NULL) + else if(rhs.value != NULL) { DiskSize = 0; - uint32_t size = (uint32_t)strlen(rhs._value) + 1; - _value = new char[size]; - memcpy(_value, rhs._value, size); + uint32_t size = (uint32_t)strlen(rhs.value) + 1; + value = new char[size]; + memcpy(value, rhs.value, size); + fIsAllocated = true; } } return *this; @@ -1269,7 +1329,8 @@ bool UnorderedPackedStrings::Read(unsigned char *&buffer, const uint32_t &subSiz } char * curString = NULL; - for(unsigned char *end_buffer = buffer + subSize;buffer < (end_buffer - 1);) + unsigned char *end_buffer = buffer + subSize; + for(;buffer < (end_buffer - 1);) { if(((char *)buffer)[0] == 0x00) { @@ -1278,11 +1339,12 @@ bool UnorderedPackedStrings::Read(unsigned char *&buffer, const uint32_t &subSiz } uint32_t size = (uint32_t)strlen((char *)buffer) + 1; curString = new char[size]; - strcpy_s(curString, size, (char *)buffer); + strncpy(curString, (char *)buffer, size); value.push_back(curString); buffer += size; } - buffer++; //Skip the final null terminator + if(buffer < end_buffer) + buffer++; //Skip the final null terminator return true; } @@ -1329,7 +1391,7 @@ UnorderedPackedStrings& UnorderedPackedStrings::operator = (const UnorderedPacke { size = (uint32_t)strlen(rhs.value[p]) + 1; value[p] = new char[size]; - strcpy_s(value[p], size, rhs.value[p]); + strncpy(value[p], rhs.value[p], size); } } } @@ -3264,4 +3326,6 @@ const float flt_min = FLT_MIN; const float flt_3 = 3.0f; const float flt_1 = 1.0f; const float flt_0 = 0.0f; -const float flt_n2147483648 = -2147483648.0f; \ No newline at end of file +const float flt_n2147483648 = -2147483648.0f; + +Logger logger = Logger::getInstance(); \ No newline at end of file diff --git a/src/Common.h b/src/Common.h index dd24ddb..45638cc 100644 --- a/src/Common.h +++ b/src/Common.h @@ -36,27 +36,114 @@ #pragma once // Common.h -#include +#ifdef _WIN32 #include -#include -#include #include -#include #include +//Not supported in MSVC 2015, so will be skipped here +#define NOEXCEPT +#else +//Crtdefs.h, not present on nonwin, compatibility +#define __CLR_OR_THIS_CALL +#define NOEXCEPT noexcept +#include +#endif + +#include +#include +#include +#include + #include #include #include -//#include -//#include #include #include #include "MacroDefinitions.h" #include "Types.h" +#include "Logger.h" + +#define log_info (*logger.getLogger(0)) +#define log_warning (*logger.getLogger(1))<<"WARNING: " +#define log_debug (*logger.getLogger(2))<<"DEBUG: " +#define log_error (*logger.getLogger(3))<<"ERROR: " extern int (*printer)(const char * _Format, ...); extern int32_t (*LoggingCallback)(const char *); extern void (*RaiseCallback)(const char *); +enum API_FieldTypes { + UNKNOWN_FIELD = 0, + MISSING_FIELD, + JUNK_FIELD, + BOOL_FIELD, + SINT8_FIELD, + UINT8_FIELD, + SINT16_FIELD, + UINT16_FIELD, + SINT32_FIELD, + UINT32_FIELD, + FLOAT32_FIELD, + RADIAN_FIELD, + FORMID_FIELD, + MGEFCODE_FIELD, + ACTORVALUE_FIELD, + FORMID_OR_UINT32_FIELD, + FORMID_OR_FLOAT32_FIELD, + UINT8_OR_UINT32_FIELD, + FORMID_OR_STRING_FIELD, + UNKNOWN_OR_FORMID_OR_UINT32_FIELD, + UNKNOWN_OR_SINT32_FIELD, + UNKNOWN_OR_UINT32_FLAG_FIELD, + MGEFCODE_OR_CHAR4_FIELD, + FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD, + RESOLVED_MGEFCODE_FIELD, + STATIC_MGEFCODE_FIELD, + RESOLVED_ACTORVALUE_FIELD, + STATIC_ACTORVALUE_FIELD, + CHAR_FIELD, + CHAR4_FIELD, + STRING_FIELD, + ISTRING_FIELD, + STRING_OR_FLOAT32_OR_SINT32_FIELD, + LIST_FIELD, + PARENTRECORD_FIELD, + SUBRECORD_FIELD, + SINT8_FLAG_FIELD, + SINT8_TYPE_FIELD, + SINT8_FLAG_TYPE_FIELD, + SINT8_ARRAY_FIELD, + UINT8_FLAG_FIELD, + UINT8_TYPE_FIELD, + UINT8_FLAG_TYPE_FIELD, + UINT8_ARRAY_FIELD, + SINT16_FLAG_FIELD, + SINT16_TYPE_FIELD, + SINT16_FLAG_TYPE_FIELD, + SINT16_ARRAY_FIELD, + UINT16_FLAG_FIELD, + UINT16_TYPE_FIELD, + UINT16_FLAG_TYPE_FIELD, + UINT16_ARRAY_FIELD, + SINT32_FLAG_FIELD, + SINT32_TYPE_FIELD, + SINT32_FLAG_TYPE_FIELD, + SINT32_ARRAY_FIELD, + UINT32_FLAG_FIELD, + UINT32_TYPE_FIELD, + UINT32_FLAG_TYPE_FIELD, + UINT32_ARRAY_FIELD, + FLOAT32_ARRAY_FIELD, + RADIAN_ARRAY_FIELD, + FORMID_ARRAY_FIELD, + FORMID_OR_UINT32_ARRAY_FIELD, + MGEFCODE_OR_UINT32_ARRAY_FIELD, + STRING_ARRAY_FIELD, + ISTRING_ARRAY_FIELD, + SUBRECORD_ARRAY_FIELD, + UNDEFINED_FIELD + }; + enum TopTypes { eTop, eWorld, @@ -82,25 +169,25 @@ enum varType { class Ex_NULL : public std::exception { public: - const char * __CLR_OR_THIS_CALL what() const; + const char * __CLR_OR_THIS_CALL what() const NOEXCEPT override; }; class Ex_INVALIDINDEX : public std::exception { public: - const char * __CLR_OR_THIS_CALL what() const; + const char * __CLR_OR_THIS_CALL what() const NOEXCEPT override; }; class Ex_INVALIDCOLLECTIONINDEX : public std::exception { public: - const char * __CLR_OR_THIS_CALL what() const; + const char * __CLR_OR_THIS_CALL what() const NOEXCEPT override; }; class Ex_INVALIDMODINDEX : public std::exception { public: - const char * __CLR_OR_THIS_CALL what() const; + const char * __CLR_OR_THIS_CALL what() const NOEXCEPT override; }; //wrappers for _stricmp and strcmp that handle NULL args @@ -158,6 +245,8 @@ extern const float flt_1; extern const float flt_3; extern const float flt_n2147483648; +extern Logger logger; + #ifdef CBASH_CALLTIMING extern std::map CallTime; #endif @@ -175,7 +264,7 @@ class GenericOp GenericOp(); ~GenericOp(); - virtual bool perform() abstract {}; + virtual bool perform() = 0; }; class RenameOp : public GenericOp @@ -195,7 +284,6 @@ char * DeGhostModName(char * const ModName); bool FileExists(char * const FileName); char * GetTemporaryFileName(char * FileName, bool IsBackup=false); bool AlmostEqual(float A, float B, int32_t maxUlps); -void UnrecognizedSubRecord(cb_formid_t formID, uint32_t subType, uint32_t subSize, unsigned char *&buffer, unsigned char *end_buffer); class FileWriter { @@ -512,10 +600,16 @@ class NonNullStringRecord { private: uint32_t DiskSize; - char * _value; + uint8_t fIsAllocated; public: - __declspec(property(get=GetString)) char * value; + char * value; + + const char *GetString() const { + return value; + } + + NonNullStringRecord(); NonNullStringRecord(const NonNullStringRecord &p); @@ -523,6 +617,7 @@ class NonNullStringRecord uint32_t GetSize() const; char * GetString(); + void PutString(char* value, int length); bool IsLoaded() const; void Load(); @@ -954,78 +1049,6 @@ struct OptSimpleSubRecord return value != other.value; } }; -//Used for subrecords that are optional -//Even if loaded, they are considered unloaded if they're equal to their defaults -//Should only be used with simple data types (int, float, etc) and not structs -template -struct OptZeroSubRecord -{ - T value; - - OptZeroSubRecord() - { - // - Unload(); - } - - ~OptZeroSubRecord() - { - // - } - - uint32_t GetSize() const - { - return sizeof(T); - } - - bool IsLoaded() const - { - struct OptZeroSubRecord zero; return (this == zero); - } - - void Load() - { - // - } - - void Unload() - { - memset(&value, 0, GetSize()); - } - - bool Read(unsigned char *&buffer, const uint32_t &subSize) - { - return ReadChunk(buffer, subSize, &value, sizeof(T), false); - } - - void Write(uint32_t _Type, FileWriter &writer) - { - if(value != defaultValue) - writer.record_write_subrecord(_Type, &value, sizeof(T)); - } - - void ReqWrite(uint32_t _Type, FileWriter &writer) - { - writer.record_write_subrecord(_Type, &value, sizeof(T)); - } - - OptZeroSubRecord& operator = (const OptZeroSubRecord &rhs) - { - if(this != &rhs) - memcpy(value, rhs.value, GetSize()); - return *this; - } - - bool operator ==(const OptZeroSubRecord &other) const - { - return !memcmp(&value, &zero.value, GetSize()); - } - - bool operator !=(const OptZeroSubRecord &other) const - { - return !!memcmp(&value, &zero.value, GetSize()); - } -}; template struct OptSimpleFloatSubRecord @@ -1300,7 +1323,8 @@ struct SubRecord bool IsLoaded() const { - return (isLoaded && value != DefaultSingleton::value()); + static T defaultValue; + return (isLoaded && value != defaultValue); } void Load() @@ -1376,9 +1400,7 @@ struct ReqSubRecord } void Unload() { - T newValue; - value.~T(); - value = newValue; + value = T(); } bool Read(unsigned char *&buffer, const uint32_t &subSize) @@ -1440,22 +1462,6 @@ struct ReqSubRecord } }; -template -class DefaultSingleton - { - private: - DefaultSingleton() {}; // Private constructor - DefaultSingleton(const DefaultSingleton&); // Prevent copy-construction - DefaultSingleton& operator=(const DefaultSingleton&); // Prevent assignment - - public: - static T& value() - { - static T defaultValue; - return defaultValue; - } - }; - //Used for subrecords that are optional //Even if loaded, they are considered unloaded if they're equal to their defaults template @@ -1481,7 +1487,8 @@ struct OptSubRecord bool IsLoaded() const { - return (value != NULL && *value != DefaultSingleton::value()); + static T defaultValue; + return (value != NULL && *value != defaultValue); } void Load() @@ -1499,7 +1506,8 @@ struct OptSubRecord { bool is_loaded = (value != NULL); if(!is_loaded) - value = new T(); + + value = new T(); return ReadChunk(buffer, subSize, value, sizeof(T), is_loaded); //#ifdef CBASH_CHUNK_LCHECK // else if(subSize < sizeof(T)) @@ -1732,12 +1740,14 @@ struct OBMEEFIXSubRecord return false; } - return (*value != DefaultSingleton::value()); + static T defaultValue; + return (*value != defaultValue); } bool Internal_IsLoaded() const { - return (value != NULL && *value != DefaultSingleton::value()); + static T defaultValue; + return (value != NULL && *value != defaultValue); } void Load() @@ -2524,15 +2534,15 @@ class ReqCounted : public T public: void Write(FileWriter &writer) { - countType count = static_cast(value.size()); + countType count = (countType)this->value.size(); writer.record_write_subrecord(countRecord, &count, sizeof(count)); - for (uint32_t p = 0; p < value.size(); p++) - value[p]->Write(writer); + for (uint32_t p = 0; p < this->value.size(); p++) + this->value[p]->Write(writer); } void Write(uint32_t _Type, FileWriter &writer) { - countType count = static_cast(value.size()); + countType count = (countType)this->value.size(); writer.record_write_subrecord(countRecord, &count, sizeof(count)); T::Write(_Type, writer); } @@ -2544,18 +2554,18 @@ class OptCounted : public T public: void Write(FileWriter &writer) { - countType count = value.size(); + countType count = (countType)this->value.size(); if (count) { writer.record_write_subrecord(countRecord, &count, sizeof(count)); - for (uint32_t p = 0; p < value.size(); p++) - value[p]->Write(writer); + for (uint32_t p = 0; p < this->value.size(); p++) + this->value[p]->Write(writer); } } void Write(uint32_t _Type, FileWriter &writer) { - countType count = value.size(); + countType count = (countType)this->value.size(); if (count) { writer.record_write_subrecord(countRecord, &count, sizeof(count)); diff --git a/src/FalloutNewVegas/FNVFile.cpp b/src/FalloutNewVegas/FNVFile.cpp index 25e7888..b9dbfe1 100644 --- a/src/FalloutNewVegas/FNVFile.cpp +++ b/src/FalloutNewVegas/FNVFile.cpp @@ -672,243 +672,243 @@ int32_t FNVFile::Load(RecordOp &read_parser, RecordOp &indexer, std::vector
&Exp FileWriter writer(SaveName, BUFFERSIZE); if(writer.open() == -1) - throw std::exception("FNVFile::Save: Error - Unable to open temporary file for writing\n"); + throw std::runtime_error("FNVFile::Save: Error - Unable to open temporary file for writing\n"); uint32_t formCount = 0; FormIDResolver expander(FormIDHandler.ExpandTable, FormIDHandler.FileStart, FormIDHandler.FileEnd); diff --git a/src/FalloutNewVegas/FNVFile.h b/src/FalloutNewVegas/FNVFile.h index b0a115e..6cc1e60 100644 --- a/src/FalloutNewVegas/FNVFile.h +++ b/src/FalloutNewVegas/FNVFile.h @@ -252,7 +252,7 @@ class FNVFile : public ModFile Record * GetTES4(); int32_t LoadTES4(); int32_t Load(RecordOp &read_parser, RecordOp &indexer, std::vector &Expanders, std::vector &DeletedRecords); - uint32_t GetNumRecords(const uint32_t &RecordType); + size_t GetNumRecords(const uint32_t &RecordType); char * GetMasterName(uint8_t &CollapsedIndex); Record * CreateRecord(const uint32_t &RecordType, char * const &RecordEditorID, Record *&SourceRecord, Record *&ParentRecord, CreationFlags &options); int32_t DeleteRecord(Record *&curRecord, RecordOp &deindexer); diff --git a/src/FalloutNewVegas/GRUPRecord.h b/src/FalloutNewVegas/GRUPRecord.h index 6e1ae89..c8026a0 100644 --- a/src/FalloutNewVegas/GRUPRecord.h +++ b/src/FalloutNewVegas/GRUPRecord.h @@ -162,19 +162,17 @@ class FNVGRUPRecords unsigned char *dial_buffer = NULL; if(numDIAL) { - dial_buffer = (unsigned char *)malloc(sizeof(FNV::DIALRecord) * numDIAL); + dial_buffer = (unsigned char *)dial_pool.add_buffer(sizeof(FNV::DIALRecord) * numDIAL); if(dial_buffer == 0) throw std::bad_alloc(); - dial_pool.add_buffer(dial_buffer); } unsigned char *info_buffer = NULL; if(numINFO) { - info_buffer = (unsigned char *)malloc(sizeof(FNV::INFORecord) * numINFO); + info_buffer = (unsigned char *)info_pool.add_buffer(sizeof(FNV::INFORecord) * numINFO); if(info_buffer == 0) throw std::bad_alloc(); - info_pool.add_buffer(info_buffer); } last_record = orphaned_records = new FNV::DIALRecord(); @@ -467,91 +465,81 @@ class FNVGRUPRecords unsigned char *cell_buffer = NULL; if(numCELL) { - cell_buffer = (unsigned char *)malloc(sizeof(FNV::CELLRecord) * numCELL); + cell_buffer = (unsigned char *)cell_pool.add_buffer(sizeof(FNV::CELLRecord) * numCELL); if(cell_buffer == 0) throw std::bad_alloc(); - cell_pool.add_buffer(cell_buffer); } unsigned char *achr_buffer = NULL; if(numACHR) { - achr_buffer = (unsigned char *)malloc(sizeof(FNV::ACHRRecord) * numACHR); + achr_buffer = (unsigned char *)achr_pool.add_buffer(sizeof(FNV::ACHRRecord) * numACHR); if(achr_buffer == 0) throw std::bad_alloc(); - achr_pool.add_buffer(achr_buffer); } unsigned char *acre_buffer = NULL; if(numACRE) { - acre_buffer = (unsigned char *)malloc(sizeof(FNV::ACRERecord) * numACRE); + acre_buffer = (unsigned char *)acre_pool.add_buffer(sizeof(FNV::ACRERecord) * numACRE); if(acre_buffer == 0) throw std::bad_alloc(); - acre_pool.add_buffer(acre_buffer); } unsigned char *refr_buffer = NULL; if(numREFR) { - refr_buffer = (unsigned char *)malloc(sizeof(FNV::REFRRecord) * numREFR); + refr_buffer = (unsigned char *)refr_pool.add_buffer(sizeof(FNV::REFRRecord) * numREFR); if(refr_buffer == 0) throw std::bad_alloc(); - refr_pool.add_buffer(refr_buffer); } unsigned char *pgre_buffer = NULL; if(numPGRE) { - pgre_buffer = (unsigned char *)malloc(sizeof(FNV::PGRERecord) * numPGRE); + pgre_buffer = (unsigned char *)pgre_pool.add_buffer(sizeof(FNV::PGRERecord) * numPGRE); if(pgre_buffer == 0) throw std::bad_alloc(); - pgre_pool.add_buffer(pgre_buffer); } unsigned char *pmis_buffer = NULL; if(numPMIS) { - pmis_buffer = (unsigned char *)malloc(sizeof(FNV::PMISRecord) * numPMIS); + pmis_buffer = (unsigned char *)pmis_pool.add_buffer(sizeof(FNV::PMISRecord) * numPMIS); if(pmis_buffer == 0) throw std::bad_alloc(); - pmis_pool.add_buffer(pmis_buffer); } unsigned char *pbea_buffer = NULL; if(numPBEA) { - pbea_buffer = (unsigned char *)malloc(sizeof(FNV::PBEARecord) * numPBEA); + pbea_buffer = (unsigned char *)pbea_pool.add_buffer(sizeof(FNV::PBEARecord) * numPBEA); if(pbea_buffer == 0) throw std::bad_alloc(); - pbea_pool.add_buffer(pbea_buffer); } unsigned char *pfla_buffer = NULL; if(numPFLA) { - pfla_buffer = (unsigned char *)malloc(sizeof(FNV::PFLARecord) * numPFLA); + pfla_buffer = (unsigned char *)pfla_pool.add_buffer(sizeof(FNV::PFLARecord) * numPFLA); if(pfla_buffer == 0) throw std::bad_alloc(); - pfla_pool.add_buffer(pfla_buffer); } unsigned char *pcbe_buffer = NULL; if(numPCBE) { - pcbe_buffer = (unsigned char *)malloc(sizeof(FNV::PCBERecord) * numPCBE); + pcbe_buffer = (unsigned char *)pcbe_pool.add_buffer(sizeof(FNV::PCBERecord) * numPCBE); if(pcbe_buffer == 0) throw std::bad_alloc(); - pcbe_pool.add_buffer(pcbe_buffer); } unsigned char *navm_buffer = NULL; if(numNAVM) { - navm_buffer = (unsigned char *)malloc(sizeof(FNV::NAVMRecord) * numNAVM); + navm_buffer = (unsigned char *)navm_pool.add_buffer(sizeof(FNV::NAVMRecord) * numNAVM); if(navm_buffer == 0) throw std::bad_alloc(); - navm_pool.add_buffer(navm_buffer); } last_record = orphaned_records = new FNV::CELLRecord(); @@ -1264,109 +1252,97 @@ class FNVGRUPRecords unsigned char *wrld_buffer = NULL; if(numWRLD) { - wrld_buffer = (unsigned char *)malloc(sizeof(FNV::WRLDRecord) * numWRLD); + wrld_buffer = (unsigned char *)wrld_pool.add_buffer(sizeof(FNV::WRLDRecord) * numWRLD); if(wrld_buffer == 0) throw std::bad_alloc(); - wrld_pool.add_buffer(wrld_buffer); } unsigned char *cell_buffer = NULL; if(numCELL) { - cell_buffer = (unsigned char *)malloc(sizeof(FNV::CELLRecord) * numCELL); + cell_buffer = (unsigned char *)cell_pool.add_buffer(sizeof(FNV::CELLRecord) * numCELL); if(cell_buffer == 0) throw std::bad_alloc(); - cell_pool.add_buffer(cell_buffer); } unsigned char *land_buffer = NULL; if(numLAND) { - land_buffer = (unsigned char *)malloc(sizeof(FNV::LANDRecord) * numLAND); + land_buffer = (unsigned char *)land_pool.add_buffer(sizeof(FNV::LANDRecord) * numLAND); if(land_buffer == 0) throw std::bad_alloc(); - land_pool.add_buffer(land_buffer); } unsigned char *achr_buffer = NULL; if(numACHR) { - achr_buffer = (unsigned char *)malloc(sizeof(FNV::ACHRRecord) * numACHR); + achr_buffer = (unsigned char *)CELL.achr_pool.add_buffer(sizeof(FNV::ACHRRecord) * numACHR); if(achr_buffer == 0) throw std::bad_alloc(); - CELL.achr_pool.add_buffer(achr_buffer); } unsigned char *acre_buffer = NULL; if(numACRE) { - acre_buffer = (unsigned char *)malloc(sizeof(FNV::ACRERecord) * numACRE); + acre_buffer = (unsigned char *)CELL.acre_pool.add_buffer(sizeof(FNV::ACRERecord) * numACRE); if(acre_buffer == 0) throw std::bad_alloc(); - CELL.acre_pool.add_buffer(acre_buffer); } unsigned char *refr_buffer = NULL; if(numREFR) { - refr_buffer = (unsigned char *)malloc(sizeof(FNV::REFRRecord) * numREFR); + refr_buffer = (unsigned char *)CELL.refr_pool.add_buffer(sizeof(FNV::REFRRecord) * numREFR); if(refr_buffer == 0) throw std::bad_alloc(); - CELL.refr_pool.add_buffer(refr_buffer); } unsigned char *pgre_buffer = NULL; if(numPGRE) { - pgre_buffer = (unsigned char *)malloc(sizeof(FNV::PGRERecord) * numPGRE); + pgre_buffer = (unsigned char *)CELL.pgre_pool.add_buffer(sizeof(FNV::PGRERecord) * numPGRE); if(pgre_buffer == 0) throw std::bad_alloc(); - CELL.pgre_pool.add_buffer(pgre_buffer); } unsigned char *pmis_buffer = NULL; if(numPMIS) { - pmis_buffer = (unsigned char *)malloc(sizeof(FNV::PMISRecord) * numPMIS); + pmis_buffer = (unsigned char *)CELL.pmis_pool.add_buffer(sizeof(FNV::PMISRecord) * numPMIS); if(pmis_buffer == 0) throw std::bad_alloc(); - CELL.pmis_pool.add_buffer(pmis_buffer); } unsigned char *pbea_buffer = NULL; if(numPBEA) { - pbea_buffer = (unsigned char *)malloc(sizeof(FNV::PBEARecord) * numPBEA); + pbea_buffer = (unsigned char *)CELL.pbea_pool.add_buffer(sizeof(FNV::PBEARecord) * numPBEA); if(pbea_buffer == 0) throw std::bad_alloc(); - CELL.pbea_pool.add_buffer(pbea_buffer); } unsigned char *pfla_buffer = NULL; if(numPFLA) { - pfla_buffer = (unsigned char *)malloc(sizeof(FNV::PFLARecord) * numPFLA); + pfla_buffer = (unsigned char *)CELL.pfla_pool.add_buffer(sizeof(FNV::PFLARecord) * numPFLA); if(pfla_buffer == 0) throw std::bad_alloc(); - CELL.pfla_pool.add_buffer(pfla_buffer); } unsigned char *pcbe_buffer = NULL; if(numPCBE) { - pcbe_buffer = (unsigned char *)malloc(sizeof(FNV::PCBERecord) * numPCBE); + pcbe_buffer = (unsigned char *)CELL.pcbe_pool.add_buffer(sizeof(FNV::PCBERecord) * numPCBE); if(pcbe_buffer == 0) throw std::bad_alloc(); - CELL.pcbe_pool.add_buffer(pcbe_buffer); } unsigned char *navm_buffer = NULL; if(numNAVM) { - navm_buffer = (unsigned char *)malloc(sizeof(FNV::NAVMRecord) * numNAVM); + navm_buffer = (unsigned char *)CELL.navm_pool.add_buffer(sizeof(FNV::NAVMRecord) * numNAVM); if(navm_buffer == 0) throw std::bad_alloc(); - CELL.navm_pool.add_buffer(navm_buffer); } last_wrld_record = orphaned_wrld_records = new FNV::WRLDRecord(); @@ -2033,7 +2009,7 @@ class FNVGRUPRecords if(CloseMod) curCell->LAND = NULL; - uint32_t ignored_count = 0; + size_t ignored_count = 0; for(uint32_t y = 0; y < curCell->ACHR.size(); ++y) { if(curCell->ACHR[y]->IsPersistent()) diff --git a/src/FalloutNewVegas/Records/ACHRRecord.cpp b/src/FalloutNewVegas/Records/ACHRRecord.cpp index 2ec1964..2934929 100644 --- a/src/FalloutNewVegas/Records/ACHRRecord.cpp +++ b/src/FalloutNewVegas/Records/ACHRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ACHRRecord.h" #include "CELLRecord.h" @@ -318,7 +318,7 @@ int32_t ACHRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ACHR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/ACHRRecord.h b/src/FalloutNewVegas/Records/ACHRRecord.h index 2dedb6a..8fd0913 100644 --- a/src/FalloutNewVegas/Records/ACHRRecord.h +++ b/src/FalloutNewVegas/Records/ACHRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/ACRERecord.cpp b/src/FalloutNewVegas/Records/ACRERecord.cpp index df2c20c..92845b2 100644 --- a/src/FalloutNewVegas/Records/ACRERecord.cpp +++ b/src/FalloutNewVegas/Records/ACRERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ACRERecord.h" #include "CELLRecord.h" @@ -329,7 +329,7 @@ int32_t ACRERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ACRE: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/ACRERecord.h b/src/FalloutNewVegas/Records/ACRERecord.h index 3099d7a..d23a3d8 100644 --- a/src/FalloutNewVegas/Records/ACRERecord.h +++ b/src/FalloutNewVegas/Records/ACRERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/ACTIRecord.cpp b/src/FalloutNewVegas/Records/ACTIRecord.cpp index 1ae8922..1ce7b12 100644 --- a/src/FalloutNewVegas/Records/ACTIRecord.cpp +++ b/src/FalloutNewVegas/Records/ACTIRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ACTIRecord.h" namespace FNV @@ -228,7 +228,7 @@ int32_t ACTIRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ACTI: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/ACTIRecord.h b/src/FalloutNewVegas/Records/ACTIRecord.h index ebc936d..bf1899a 100644 --- a/src/FalloutNewVegas/Records/ACTIRecord.h +++ b/src/FalloutNewVegas/Records/ACTIRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/ADDNRecord.cpp b/src/FalloutNewVegas/Records/ADDNRecord.cpp index 6006d4f..47dbbd0 100644 --- a/src/FalloutNewVegas/Records/ADDNRecord.cpp +++ b/src/FalloutNewVegas/Records/ADDNRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ADDNRecord.h" namespace FNV @@ -187,7 +187,11 @@ int32_t ADDNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DNAM.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" ADDN: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/ADDNRecord.h b/src/FalloutNewVegas/Records/ADDNRecord.h index b9b8167..3a649e5 100644 --- a/src/FalloutNewVegas/Records/ADDNRecord.h +++ b/src/FalloutNewVegas/Records/ADDNRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/ALCHRecord.cpp b/src/FalloutNewVegas/Records/ALCHRecord.cpp index ddc9894..240a3d1 100644 --- a/src/FalloutNewVegas/Records/ALCHRecord.cpp +++ b/src/FalloutNewVegas/Records/ALCHRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ALCHRecord.h" namespace FNV @@ -471,7 +471,7 @@ int32_t ALCHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ALCH: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/ALCHRecord.h b/src/FalloutNewVegas/Records/ALCHRecord.h index c8693ba..702d37f 100644 --- a/src/FalloutNewVegas/Records/ALCHRecord.h +++ b/src/FalloutNewVegas/Records/ALCHRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/ALOCRecord.cpp b/src/FalloutNewVegas/Records/ALOCRecord.cpp index 4906e5d..3a722fd 100644 --- a/src/FalloutNewVegas/Records/ALOCRecord.cpp +++ b/src/FalloutNewVegas/Records/ALOCRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ALOCRecord.h" namespace FNV @@ -200,7 +200,11 @@ int32_t ALOCRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer FNAM.Read(buffer, subSize, CompressedOnDisk); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" ALOC: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/ALOCRecord.h b/src/FalloutNewVegas/Records/ALOCRecord.h index 5235f40..ac6aaf3 100644 --- a/src/FalloutNewVegas/Records/ALOCRecord.h +++ b/src/FalloutNewVegas/Records/ALOCRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/AMEFRecord.cpp b/src/FalloutNewVegas/Records/AMEFRecord.cpp index 19be5d3..8f6a6eb 100644 --- a/src/FalloutNewVegas/Records/AMEFRecord.cpp +++ b/src/FalloutNewVegas/Records/AMEFRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "AMEFRecord.h" namespace FNV @@ -227,7 +227,11 @@ int32_t AMEFRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" AMEF: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/AMEFRecord.h b/src/FalloutNewVegas/Records/AMEFRecord.h index 71da16f..dbe35c7 100644 --- a/src/FalloutNewVegas/Records/AMEFRecord.h +++ b/src/FalloutNewVegas/Records/AMEFRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/AMMORecord.cpp b/src/FalloutNewVegas/Records/AMMORecord.cpp index 3815795..4a079c1 100644 --- a/src/FalloutNewVegas/Records/AMMORecord.cpp +++ b/src/FalloutNewVegas/Records/AMMORecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "AMMORecord.h" namespace FNV @@ -326,7 +326,7 @@ int32_t AMMORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" AMMO: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/AMMORecord.h b/src/FalloutNewVegas/Records/AMMORecord.h index 11b5ab6..67db916 100644 --- a/src/FalloutNewVegas/Records/AMMORecord.h +++ b/src/FalloutNewVegas/Records/AMMORecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/ANIORecord.cpp b/src/FalloutNewVegas/Records/ANIORecord.cpp index 9a33d7d..783b5c4 100644 --- a/src/FalloutNewVegas/Records/ANIORecord.cpp +++ b/src/FalloutNewVegas/Records/ANIORecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ANIORecord.h" namespace FNV @@ -151,7 +151,7 @@ int32_t ANIORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ANIO: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/ANIORecord.h b/src/FalloutNewVegas/Records/ANIORecord.h index 77f2bea..63cdba7 100644 --- a/src/FalloutNewVegas/Records/ANIORecord.h +++ b/src/FalloutNewVegas/Records/ANIORecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/API/ACHRRecordAPI.cpp b/src/FalloutNewVegas/Records/API/ACHRRecordAPI.cpp index 49f8717..3686a0e 100644 --- a/src/FalloutNewVegas/Records/API/ACHRRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ACHRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ACHRRecord.h" +#include "../../../Common.h" +#include "../ACHRRecord.h" namespace FNV { @@ -45,174 +45,174 @@ uint32_t ACHRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //xrgd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGD.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //xrgb_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGB.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //idleTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //idle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? 4 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //scriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 18: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 19: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? Patrol->SCDA.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //vars if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Patrol->VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //references if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Patrol->SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -220,178 +220,178 @@ uint32_t ACHRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Patrol->SCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Patrol->SCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //topic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //levelMod - return CB_SINT32_FIELD; + return SINT32_FIELD; case 25: //merchantContainer - return CB_FORMID_FIELD; + return FORMID_FIELD; case 26: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //radius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //health - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //decals if(ListFieldID == 0) //decals { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XDCR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XDCR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 24; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //linkedReference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //startRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //startGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //startBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //endRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //endGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //endBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 38: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 39: //activateParentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 40: //activateParentRefs if(!ActivateParents.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //activateParentRefs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)ActivateParents->XAPR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= ActivateParents->XAPR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //delay - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //prompt - return CB_STRING_FIELD; + return STRING_FIELD; case 42: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //parentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 44: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XESP.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 45: //emittance - return CB_FORMID_FIELD; + return FORMID_FIELD; case 46: //boundRef - return CB_FORMID_FIELD; + return FORMID_FIELD; case 47: //ignoredBySandbox - return CB_BOOL_FIELD; + return BOOL_FIELD; case 48: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 49: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 50: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 53: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 54: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 55: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ACHRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/ACRERecordAPI.cpp b/src/FalloutNewVegas/Records/API/ACRERecordAPI.cpp index 5d97376..8a3f2e3 100644 --- a/src/FalloutNewVegas/Records/API/ACRERecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ACRERecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ACRERecord.h" +#include "../../../Common.h" +#include "../ACRERecord.h" namespace FNV { @@ -45,174 +45,174 @@ uint32_t ACRERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //xrgd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGD.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //xrgb_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGB.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //idleTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //idle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? 4 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //scriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 18: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 19: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? Patrol->SCDA.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //vars if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Patrol->VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //references if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Patrol->SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -220,182 +220,182 @@ uint32_t ACRERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Patrol->SCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Patrol->SCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //topic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //levelMod - return CB_SINT32_FIELD; + return SINT32_FIELD; case 25: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 26: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //merchantContainer - return CB_FORMID_FIELD; + return FORMID_FIELD; case 28: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 29: //radius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //health - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //decals if(ListFieldID == 0) //decals { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XDCR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XDCR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 24; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //linkedReference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 33: //startRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //startGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 35: //startBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 37: //endRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 38: //endGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 39: //endBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 40: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //activateParentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 42: //activateParentRefs if(!ActivateParents.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //activateParentRefs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)ActivateParents->XAPR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= ActivateParents->XAPR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //delay - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 43: //prompt - return CB_STRING_FIELD; + return STRING_FIELD; case 44: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 45: //parentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 46: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XESP.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 47: //emittance - return CB_FORMID_FIELD; + return FORMID_FIELD; case 48: //boundRef - return CB_FORMID_FIELD; + return FORMID_FIELD; case 49: //ignoredBySandbox - return CB_BOOL_FIELD; + return BOOL_FIELD; case 50: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 54: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 55: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 56: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 57: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ACRERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/ACTIRecordAPI.cpp b/src/FalloutNewVegas/Records/API/ACTIRecordAPI.cpp index 11cc31d..fa541e8 100644 --- a/src/FalloutNewVegas/Records/API/ACTIRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ACTIRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ACTIRecord.h" +#include "../../../Common.h" +#include "../ACTIRecord.h" namespace FNV { @@ -45,187 +45,187 @@ uint32_t ACTIRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 21: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 23: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //loopSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 26: //actSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 27: //radioTemplate - return CB_FORMID_FIELD; + return FORMID_FIELD; case 28: //radioStation - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //water - return CB_FORMID_FIELD; + return FORMID_FIELD; case 30: //prompt - return CB_STRING_FIELD; + return STRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ACTIRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -431,7 +431,7 @@ bool ACTIRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/ADDNRecordAPI.cpp b/src/FalloutNewVegas/Records/API/ADDNRecordAPI.cpp index 07de233..592b055 100644 --- a/src/FalloutNewVegas/Records/API/ADDNRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ADDNRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ADDNRecord.h" +#include "../../../Common.h" +#include "../ADDNRecord.h" namespace FNV { @@ -45,81 +45,81 @@ uint32_t ADDNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 11: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //mods Alternate Textures - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 16: //modelFlags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //data Node Index - return CB_SINT32_FIELD; + return SINT32_FIELD; case 18: //snam Sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 19: //dnam DNAM ,, Struct - return CB_UINT16_FIELD; + return UINT16_FIELD; case 20: //dnam_p DNAM ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ADDNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/ALCHRecordAPI.cpp b/src/FalloutNewVegas/Records/API/ALCHRecordAPI.cpp index a42dd30..0bae9b7 100644 --- a/src/FalloutNewVegas/Records/API/ALCHRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ALCHRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ALCHRecord.h" +#include "../../../Common.h" +#include "../ALCHRecord.h" namespace FNV { @@ -45,212 +45,212 @@ uint32_t ALCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //equipmentType - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 23: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 25: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 26: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 27: //withdrawalEffect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 28: //addictionChance - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //consumeSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 30: //effects if(ListFieldID == 0) //effects { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Effects.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //effect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //magnitude - return CB_UINT32_FIELD; + return UINT32_FIELD; case 3: //area - return CB_UINT32_FIELD; + return UINT32_FIELD; case 4: //duration - return CB_UINT32_FIELD; + return UINT32_FIELD; case 5: //rangeType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 6: //actorValue - return CB_SINT32_FIELD; + return SINT32_FIELD; case 7: //conditions if(ListX2FieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value[ListIndex]->CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -260,24 +260,24 @@ uint32_t ALCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -287,134 +287,134 @@ uint32_t ALCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; case eVATSPARAM: if(Effects.value[ListIndex]->CTDA.value[ListX2Index]->param1 < VATSFUNCTIONSIZE) { switch(VATSFunction_Argument[Effects.value[ListIndex]->CTDA.value[ListX2Index]->param1]) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //runOnType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 8: //reference switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 31: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 32: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 34: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 36: //pickupSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 37: //dropSound - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ALCHRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -682,7 +682,7 @@ bool ALCHRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/ALOCRecordAPI.cpp b/src/FalloutNewVegas/Records/API/ALOCRecordAPI.cpp index afbc499..66afafa 100644 --- a/src/FalloutNewVegas/Records/API/ALOCRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ALOCRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ALOCRecord.h" +#include "../../../Common.h" +#include "../ALOCRecord.h" namespace FNV { @@ -45,106 +45,106 @@ uint32_t ALOCRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //nam1_p Flags and Enums, messily combined switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NAM1.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //nam2_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NAM2.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //nam3_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NAM3.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //nam4 Location Delay - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //nam5 Day Start - return CB_UINT32_FIELD; + return UINT32_FIELD; case 13: //nam6 Night Start - return CB_UINT32_FIELD; + return UINT32_FIELD; case 14: //nam7 Retrigger Delay - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //hnam Media Set - return CB_FORMID_FIELD; + return FORMID_FIELD; case 16: //znam Media Set - return CB_FORMID_FIELD; + return FORMID_FIELD; case 17: //xnam Media Set - return CB_FORMID_FIELD; + return FORMID_FIELD; case 18: //ynam Media Set - return CB_FORMID_FIELD; + return FORMID_FIELD; case 19: //lnam Media Set - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //gnam Media Set - return CB_FORMID_FIELD; + return FORMID_FIELD; case 21: //rnam Conditional Faction - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //fnam_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return FNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ALOCRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/AMEFRecordAPI.cpp b/src/FalloutNewVegas/Records/API/AMEFRecordAPI.cpp index b330772..5a1d74e 100644 --- a/src/FalloutNewVegas/Records/API/AMEFRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/AMEFRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\AMEFRecord.h" +#include "../../../Common.h" +#include "../AMEFRecord.h" namespace FNV { @@ -45,47 +45,47 @@ uint32_t AMEFRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 9: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 10: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * AMEFRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/AMMORecordAPI.cpp b/src/FalloutNewVegas/Records/API/AMMORecordAPI.cpp index 91a87f6..38bb1a6 100644 --- a/src/FalloutNewVegas/Records/API/AMMORecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/AMMORecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\AMMORecord.h" +#include "../../../Common.h" +#include "../AMMORecord.h" namespace FNV { @@ -45,227 +45,227 @@ uint32_t AMMORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 23: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 24: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 25: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 26: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 27: //pickupSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 28: //dropSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //speed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 31: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 33: //clipRounds - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //projectilesPerShot - return CB_UINT32_FIELD; + return UINT32_FIELD; case 35: //projectile - return CB_FORMID_FIELD; + return FORMID_FIELD; case 36: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 37: //consumedAmmo - return CB_FORMID_FIELD; + return FORMID_FIELD; case 38: //consumedPercentage - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 39: //shortName - return CB_STRING_FIELD; + return STRING_FIELD; case 40: //abbreviation - return CB_STRING_FIELD; + return STRING_FIELD; case 41: //effects switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)RCIL.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * AMMORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -495,7 +495,7 @@ bool AMMORecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/ANIORecordAPI.cpp b/src/FalloutNewVegas/Records/API/ANIORecordAPI.cpp index c4e0565..772f04f 100644 --- a/src/FalloutNewVegas/Records/API/ANIORecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ANIORecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ANIORecord.h" +#include "../../../Common.h" +#include "../ANIORecord.h" namespace FNV { @@ -45,90 +45,90 @@ uint32_t ANIORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //animation - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ANIORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -244,7 +244,7 @@ bool ANIORecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/ARMARecordAPI.cpp b/src/FalloutNewVegas/Records/API/ARMARecordAPI.cpp index 614a9bd..dc3f9a7 100644 --- a/src/FalloutNewVegas/Records/API/ARMARecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ARMARecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ARMARecord.h" +#include "../../../Common.h" +#include "../ARMARecord.h" namespace FNV { @@ -45,172 +45,172 @@ uint32_t ARMARecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 11: //bmdt Biped Data - return CB_UINT32_FIELD; + return UINT32_FIELD; case 12: //bmdt Biped Data - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //bmdt_p Biped Data switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //mods Alternate Texture - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 17: //mods Alternate Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 18: //mods Alternate Texture - return CB_SINT32_FIELD; + return SINT32_FIELD; case 19: //modelFlags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //mod2 Model Filename - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //mo2t_p Texture Files Hashes switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD2->MODT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //mo2s Alternate Texture - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 23: //mo2s Alternate Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //mo2s Alternate Texture - return CB_SINT32_FIELD; + return SINT32_FIELD; case 25: //icon Male icon filename - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 26: //mico Male mico filename - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 27: //mod3 Model Filename - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 28: //mo3t_p Texture Files Hashes switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD3->MODT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 29: //mo3s Alternate Texture - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 30: //mo3s Alternate Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //mo3s Alternate Texture - return CB_SINT32_FIELD; + return SINT32_FIELD; case 32: //mosd FaceGen Model Flags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //mod4 Model Filename - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 34: //mo4t_p Texture Files Hashes switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD4->MODT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //mo4s Alternate Texture - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 36: //mo4s Alternate Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 37: //mo4s Alternate Texture - return CB_SINT32_FIELD; + return SINT32_FIELD; case 38: //ico2 Female icon filename - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 39: //mic2 Female mico filename - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 40: //etyp Equipment Type - return CB_SINT32_FIELD; + return SINT32_FIELD; case 41: //data DATA ,, Struct - return CB_SINT32_FIELD; + return SINT32_FIELD; case 42: //data DATA ,, Struct - return CB_SINT32_FIELD; + return SINT32_FIELD; case 43: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 44: //dnam DNAM ,, Struct - return CB_SINT16_FIELD; + return SINT16_FIELD; case 45: //dnam DNAM ,, Struct - return CB_UINT16_FIELD; + return UINT16_FIELD; case 46: //dnam_p DNAM ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ARMARecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/ARMORecordAPI.cpp b/src/FalloutNewVegas/Records/API/ARMORecordAPI.cpp index ff8ad90..125c0b9 100644 --- a/src/FalloutNewVegas/Records/API/ARMORecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ARMORecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ARMORecord.h" +#include "../../../Common.h" +#include "../ARMORecord.h" namespace FNV { @@ -45,346 +45,346 @@ uint32_t ARMORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 15: //effect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 16: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 17: //extraFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 18: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //male_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //male_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 21: //male_altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //male_modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 23: //maleWorld_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 24: //maleWorld_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD2.IsLoaded() ? MOD2->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //maleWorld_altTextures if(!MOD2.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MOD2->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= MOD2->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 26: //maleIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 27: //maleSmallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 28: //female_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 29: //female_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD3.IsLoaded() ? MOD3->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //female_altTextures if(!MOD3.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MOD3->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MOD3->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 31: //female_modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 32: //femaleWorld_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 33: //femaleWorld_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD4.IsLoaded() ? MOD4->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 34: //femaleWorld_altTextures if(!MOD4.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MOD4->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MOD4->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //femaleIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 36: //femaleSmallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 37: //ragdollTemplatePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 38: //repairList - return CB_FORMID_FIELD; + return FORMID_FIELD; case 39: //modelList - return CB_FORMID_FIELD; + return FORMID_FIELD; case 40: //equipmentType - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 41: //pickupSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 42: //dropSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 44: //health - return CB_SINT32_FIELD; + return SINT32_FIELD; case 45: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 46: //AR - return CB_SINT16_FIELD; + return SINT16_FIELD; case 47: //voiceFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 48: //DT - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 49: //unknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 50: //overrideSounds - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 51: //sounds if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Sounds.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Sounds.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //chance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //type - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 52: //soundsTemplate - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ARMORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -689,7 +689,7 @@ bool ARMORecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture @@ -734,7 +734,7 @@ bool ARMORecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MOD2->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MOD2->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MOD2->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture @@ -781,7 +781,7 @@ bool ARMORecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MOD3->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MOD3->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MOD3->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture @@ -826,7 +826,7 @@ bool ARMORecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MOD4->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MOD4->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MOD4->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/ASPCRecordAPI.cpp b/src/FalloutNewVegas/Records/API/ASPCRecordAPI.cpp index 185d1a4..2d1143f 100644 --- a/src/FalloutNewVegas/Records/API/ASPCRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ASPCRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ASPCRecord.h" +#include "../../../Common.h" +#include "../ASPCRecord.h" namespace FNV { @@ -45,69 +45,69 @@ uint32_t ASPCRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //dawnOrDefaultLoop - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //afternoon - return CB_FORMID_FIELD; + return FORMID_FIELD; case 15: //dusk - return CB_FORMID_FIELD; + return FORMID_FIELD; case 16: //night - return CB_FORMID_FIELD; + return FORMID_FIELD; case 17: //walla - return CB_FORMID_FIELD; + return FORMID_FIELD; case 18: //wallaTriggerCount - return CB_UINT32_FIELD; + return UINT32_FIELD; case 19: //regionSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //environmentType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 21: //spaceType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ASPCRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/AVIFRecordAPI.cpp b/src/FalloutNewVegas/Records/API/AVIFRecordAPI.cpp index f865169..2d57d49 100644 --- a/src/FalloutNewVegas/Records/API/AVIFRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/AVIFRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\AVIFRecord.h" +#include "../../../Common.h" +#include "../AVIFRecord.h" namespace FNV { @@ -45,49 +45,49 @@ uint32_t AVIFRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 11: //anam Short Name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * AVIFRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/BOOKRecordAPI.cpp b/src/FalloutNewVegas/Records/API/BOOKRecordAPI.cpp index eb5e1f5..6449cb2 100644 --- a/src/FalloutNewVegas/Records/API/BOOKRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/BOOKRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\BOOKRecord.h" +#include "../../../Common.h" +#include "../BOOKRecord.h" namespace FNV { @@ -45,189 +45,189 @@ uint32_t BOOKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 23: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 24: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 25: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 26: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 27: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 28: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 29: //teaches - return CB_SINT8_TYPE_FIELD; + return SINT8_TYPE_FIELD; case 30: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 31: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * BOOKRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -435,7 +435,7 @@ bool BOOKRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/BPTDRecordAPI.cpp b/src/FalloutNewVegas/Records/API/BPTDRecordAPI.cpp index f7caa21..5156f36 100644 --- a/src/FalloutNewVegas/Records/API/BPTDRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/BPTDRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\BPTDRecord.h" +#include "../../../Common.h" +#include "../BPTDRecord.h" namespace FNV { @@ -45,202 +45,202 @@ uint32_t BPTDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize - return MODL->Textures.MODS.size(); + return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //parts if(ListFieldID == 0) //parts { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Parts.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Parts.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 2: //node - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 3: //vats - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 4: //IKData - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //damageMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 6: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 7: //partType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 8: //healthPercent - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: //actorValue - return CB_SINT8_FIELD; + return SINT8_FIELD; case 10: //hitChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 11: //explodableExplosionChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //explodableDebrisCount - return CB_UINT16_FIELD; + return UINT16_FIELD; case 13: //explodableDebris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //explodableExplosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 15: //maxTrackAngle - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //explodableDebrisScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //severableDebrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 18: //severableDebris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 19: //severableExplosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //severableDebrisScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //transX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //transY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //transZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 25: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 26: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 27: //severableImpact - return CB_FORMID_FIELD; + return FORMID_FIELD; case 28: //explodableImpact - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //severableDecalCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //explodableDecalCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //limbReplaceScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 33: //limbReplaceModPath - return CB_STRING_FIELD; + return STRING_FIELD; case 34: //goreBone - return CB_STRING_FIELD; + return STRING_FIELD; case 35: //nam5_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Parts.value[0]->NAM5.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //ragdoll - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * BPTDRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -438,7 +438,7 @@ bool BPTDRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/CAMSRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CAMSRecordAPI.cpp index 7d408ec..f6024ae 100644 --- a/src/FalloutNewVegas/Records/API/CAMSRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CAMSRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CAMSRecord.h" +#include "../../../Common.h" +#include "../CAMSRecord.h" namespace FNV { @@ -45,110 +45,110 @@ uint32_t CAMSRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize - return MODL->Textures.MODS.size(); + return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 13: //modelFlags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 18: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //mnam Image Space Modifier - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CAMSRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/CCRDRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CCRDRecordAPI.cpp index 5d5e970..195aad8 100644 --- a/src/FalloutNewVegas/Records/API/CCRDRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CCRDRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CCRDRecord.h" +#include "../../../Common.h" +#include "../CCRDRecord.h" namespace FNV { @@ -45,116 +45,116 @@ uint32_t CCRDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 11: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 12: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize - return MODL->Textures.MODS.size(); + return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 17: //modelFlags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 19: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 21: //ynam Sound - Pick Up - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //znam Sound - Drop - return CB_FORMID_FIELD; + return FORMID_FIELD; case 23: //tx00 Face - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 24: //tx01 Back - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 25: //intv Suit - return CB_UINT32_FIELD; + return UINT32_FIELD; case 26: //intv Value - return CB_UINT32_FIELD; + return UINT32_FIELD; case 27: //data Value - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CCRDRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/CDCKRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CDCKRecordAPI.cpp index 33b6937..7015c56 100644 --- a/src/FalloutNewVegas/Records/API/CDCKRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CDCKRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CDCKRecord.h" +#include "../../../Common.h" +#include "../CDCKRecord.h" namespace FNV { @@ -45,45 +45,45 @@ uint32_t CDCKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //card Card - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //data Count (broken) - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CDCKRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/CELLRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CELLRecordAPI.cpp index 6a1f6ba..948a986 100644 --- a/src/FalloutNewVegas/Records/API/CELLRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CELLRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CELLRecord.h" +#include "../../../Common.h" +#include "../CELLRecord.h" namespace FNV { @@ -45,357 +45,357 @@ uint32_t CELLRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //flags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: //posX switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_SINT32_FIELD; + return UNKNOWN_OR_SINT32_FIELD; case 2: //WhichType if(!IsInterior()) - return CB_SINT32_FIELD; - return CB_UNKNOWN_FIELD; + return SINT32_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //posY switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_SINT32_FIELD; + return UNKNOWN_OR_SINT32_FIELD; case 2: //WhichType if(!IsInterior()) - return CB_SINT32_FIELD; - return CB_UNKNOWN_FIELD; + return SINT32_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //quadFlags switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_UINT32_FLAG_FIELD; + return UNKNOWN_OR_UINT32_FLAG_FIELD; case 2: //WhichType if(!IsInterior()) - return CB_UINT32_FLAG_FIELD; - return CB_UNKNOWN_FIELD; + return UINT32_FLAG_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //ambientRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //ambientGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //ambientBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLL.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //directionalRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //directionalGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //directionalBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLL.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //fogRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 21: //fogGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //fogBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 23: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLL.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //fogNear - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //fogFar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //directionalXY - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //directionalZ - return CB_SINT32_FIELD; + return SINT32_FIELD; case 28: //directionalFade - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //fogClip - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //fogPower - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //swappedImpacts if(ListFieldID == 0) //swappedImpacts { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)IMPS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= IMPS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //material - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 2: //oldImpact - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //newImpact - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //concSolid - return CB_STRING_FIELD; + return STRING_FIELD; case 33: //concBroken - return CB_STRING_FIELD; + return STRING_FIELD; case 34: //metalSolid - return CB_STRING_FIELD; + return STRING_FIELD; case 35: //metalHollow - return CB_STRING_FIELD; + return STRING_FIELD; case 36: //metalSheet - return CB_STRING_FIELD; + return STRING_FIELD; case 37: //wood - return CB_STRING_FIELD; + return STRING_FIELD; case 38: //sand - return CB_STRING_FIELD; + return STRING_FIELD; case 39: //dirt - return CB_STRING_FIELD; + return STRING_FIELD; case 40: //grass - return CB_STRING_FIELD; + return STRING_FIELD; case 41: //water - return CB_STRING_FIELD; + return STRING_FIELD; case 42: //lightTemplate - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //lightFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 44: //waterHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 45: //waterNoisePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 46: //regions switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)XCLR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 47: //imageSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 48: //xcet_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCET.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 49: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 50: //climate - return CB_FORMID_FIELD; + return FORMID_FIELD; case 51: //water - return CB_FORMID_FIELD; + return FORMID_FIELD; case 52: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 53: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 54: //acousticSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 55: //xcmt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCMT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 56: //music - return CB_FORMID_FIELD; + return FORMID_FIELD; case 57: //ACHR switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ACHR.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 58: //ACRE switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ACRE.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 59: //REFR switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)REFR.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 60: //PGRE switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PGRE.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 61: //PMIS switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PMIS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 62: //PBEA switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PBEA.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 63: //PFLA switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PFLA.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 64: //PCBE switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PCBE.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 65: //NAVM switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)NAVM.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 66: //LAND - return CB_SUBRECORD_FIELD; + return SUBRECORD_FIELD; case 67: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CELLRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/CHALRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CHALRecordAPI.cpp index 41df3bc..68cbd41 100644 --- a/src/FalloutNewVegas/Records/API/CHALRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CHALRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CHALRecord.h" +#include "../../../Common.h" +#include "../CHALRecord.h" namespace FNV { @@ -45,90 +45,90 @@ uint32_t CHALRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 10: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 11: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 12: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 13: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 14: //data_p DATA ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //data_p DATA ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //data_p DATA ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //snam (depends on type) - return CB_FORMID_FIELD; + return FORMID_FIELD; case 18: //xnam (depends on type) - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CHALRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/CHIPRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CHIPRecordAPI.cpp index 941717e..ddf3a93 100644 --- a/src/FalloutNewVegas/Records/API/CHIPRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CHIPRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CHIPRecord.h" +#include "../../../Common.h" +#include "../CHIPRecord.h" namespace FNV { @@ -45,151 +45,151 @@ uint32_t CHIPRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 11: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 12: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize - return MODL->Textures.MODS.size(); + return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 17: //modelFlags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 19: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //dest Header - return CB_SINT32_FIELD; + return SINT32_FIELD; case 21: //dest Header - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //dest Header - return CB_UINT8_FIELD; + return UINT8_FIELD; case 23: //dest_p Header switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //dstd Destruction Stage Data - return CB_UINT8_FIELD; + return UINT8_FIELD; case 25: //dstd Destruction Stage Data - return CB_UINT8_FIELD; + return UINT8_FIELD; case 26: //dstd Destruction Stage Data - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //dstd Destruction Stage Data - return CB_UINT8_FIELD; + return UINT8_FIELD; case 28: //dstd Destruction Stage Data - return CB_SINT32_FIELD; + return SINT32_FIELD; case 29: //dstd Destruction Stage Data - return CB_FORMID_FIELD; + return FORMID_FIELD; case 30: //dstd Destruction Stage Data - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //dstd Destruction Stage Data - return CB_SINT32_FIELD; + return SINT32_FIELD; case 32: //dmdl Model Filename - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 33: //dmdt_p Texture Files Hashes switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize // TODO work with all elements of the Stages array return Destructable->Stages.value[0]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 34: //ynam Sound - Pick Up - return CB_FORMID_FIELD; + return FORMID_FIELD; case 35: //znam Sound - Drop - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CHIPRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/CLASRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CLASRecordAPI.cpp index 94a0ea4..75d2ef7 100644 --- a/src/FalloutNewVegas/Records/API/CLASRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CLASRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CLASRecord.h" +#include "../../../Common.h" +#include "../CLASRecord.h" namespace FNV { @@ -45,88 +45,88 @@ uint32_t CLASRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 11: //tagSkills1 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 12: //tagSkills2 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 13: //tagSkills3 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 14: //tagSkills4 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 15: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 16: //services - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 17: //trainSkill - return CB_SINT8_FIELD; + return SINT8_FIELD; case 18: //trainLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //strength - return CB_UINT8_FIELD; + return UINT8_FIELD; case 21: //perception - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //endurance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 23: //charisma - return CB_UINT8_FIELD; + return UINT8_FIELD; case 24: //intelligence - return CB_UINT8_FIELD; + return UINT8_FIELD; case 25: //agility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 26: //luck - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CLASRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/CLMTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CLMTRecordAPI.cpp index 6503279..b4b491d 100644 --- a/src/FalloutNewVegas/Records/API/CLMTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CLMTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CLMTRecord.h" +#include "../../../Common.h" +#include "../CLMTRecord.h" namespace FNV { @@ -45,133 +45,133 @@ uint32_t CLMTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //weathers if(ListFieldID == 0) //weathers { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Weathers.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Weathers.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //weather - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //chance - return CB_SINT32_FIELD; + return SINT32_FIELD; case 3: //globalId - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //sunPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //glarePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 11: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 15: //riseBegin - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //riseEnd - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //setBegin - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //setEnd - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //volatility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //phaseLength - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CLMTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -348,7 +348,7 @@ bool CLMTRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/CMNYRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CMNYRecordAPI.cpp index f83ca5a..eff281c 100644 --- a/src/FalloutNewVegas/Records/API/CMNYRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CMNYRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CMNYRecord.h" +#include "../../../Common.h" +#include "../CMNYRecord.h" namespace FNV { @@ -45,106 +45,106 @@ uint32_t CMNYRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 11: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 12: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize - return MODL->Textures.MODS.size(); + return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 17: //modelFlags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 19: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //ynam Sound - Pick Up - return CB_FORMID_FIELD; + return FORMID_FIELD; case 21: //znam Sound - Drop - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //data Absolute Value - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CMNYRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/COBJRecordAPI.cpp b/src/FalloutNewVegas/Records/API/COBJRecordAPI.cpp index 101192f..851b2ca 100644 --- a/src/FalloutNewVegas/Records/API/COBJRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/COBJRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\COBJRecord.h" +#include "../../../Common.h" +#include "../COBJRecord.h" namespace FNV { @@ -45,116 +45,116 @@ uint32_t COBJRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //pickupSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 23: //dropSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 25: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * COBJRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -317,7 +317,7 @@ bool COBJRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/CONTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CONTRecordAPI.cpp index 1e45870..97f60fd 100644 --- a/src/FalloutNewVegas/Records/API/CONTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CONTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CONTRecord.h" +#include "../../../Common.h" +#include "../CONTRecord.h" namespace FNV { @@ -45,228 +45,228 @@ uint32_t CONTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //items if(ListFieldID == 0) //items { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CNTO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= CNTO.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //item - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 3: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //globalOrRank switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return CNTO.value[ListIndex]->IsGlobal() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return CNTO.value[ListIndex]->IsGlobal() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //condition - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 21: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 22: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 23: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 24: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 26: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 27: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //openSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //closeSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 30: //loopSound - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CONTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -490,7 +490,7 @@ bool CONTRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/CPTHRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CPTHRecordAPI.cpp index 4cf2ded..c0e8d73 100644 --- a/src/FalloutNewVegas/Records/API/CPTHRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CPTHRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CPTHRecord.h" +#include "../../../Common.h" +#include "../CPTHRecord.h" namespace FNV { @@ -45,88 +45,88 @@ uint32_t CPTHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //ctda Conditions - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //ctda Conditions - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; case 10: //ctda Conditions - return CB_UINT32_FIELD; + return UINT32_FIELD; case 11: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //ctda Conditions - return CB_UINT32_FIELD; + return UINT32_FIELD; case 14: //ctda Conditions - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; case 15: //anam Related Camera Paths - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; case 16: //data Camera Zoom - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //snam Camera Shot - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CPTHRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/CREARecordAPI.cpp b/src/FalloutNewVegas/Records/API/CREARecordAPI.cpp index 44ef2d5..0a83c38 100644 --- a/src/FalloutNewVegas/Records/API/CREARecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CREARecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CREARecord.h" +#include "../../../Common.h" +#include "../CREARecord.h" namespace FNV { @@ -45,487 +45,487 @@ uint32_t CREARecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //actorEffects switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)SPLO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //unarmedEffect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 21: //unarmedAnim - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 22: //bodyParts switch(WhichAttribute) { case 0: //fieldType - return CB_ISTRING_ARRAY_FIELD; + return ISTRING_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)NIFZ.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //nift_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NIFT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 25: //fatigue - return CB_UINT16_FIELD; + return UINT16_FIELD; case 26: //barterGold - return CB_UINT16_FIELD; + return UINT16_FIELD; case 27: //level - return CB_SINT16_FIELD; + return SINT16_FIELD; case 28: //calcMin - return CB_UINT16_FIELD; + return UINT16_FIELD; case 29: //calcMax - return CB_UINT16_FIELD; + return UINT16_FIELD; case 30: //speedMult - return CB_UINT16_FIELD; + return UINT16_FIELD; case 31: //karma - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 32: //dispBase - return CB_SINT16_FIELD; + return SINT16_FIELD; case 33: //templateFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 34: //factions if(ListFieldID == 0) //factions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)SNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= SNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //faction - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //rank - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //deathItem - return CB_FORMID_FIELD; + return FORMID_FIELD; case 36: //voice - return CB_FORMID_FIELD; + return FORMID_FIELD; case 37: //template - return CB_FORMID_FIELD; + return FORMID_FIELD; case 38: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 39: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 40: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 41: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 42: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 43: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 44: //items if(ListFieldID == 0) //items { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CNTO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= CNTO.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //item - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 3: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //globalOrRank switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return CNTO.value[ListIndex]->IsGlobal() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return CNTO.value[ListIndex]->IsGlobal() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //condition - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 45: //aggression - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 46: //confidence - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 47: //energyLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 48: //responsibility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 49: //mood - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 50: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 51: //services - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 52: //trainSkill - return CB_SINT8_TYPE_FIELD; + return SINT8_TYPE_FIELD; case 53: //trainLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 54: //assistance - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 55: //aggroFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 56: //aggroRadius - return CB_SINT32_FIELD; + return SINT32_FIELD; case 57: //aiPackages switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PKID.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 58: //animations switch(WhichAttribute) { case 0: //fieldType - return CB_ISTRING_ARRAY_FIELD; + return ISTRING_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)KFFZ.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 59: //creatureType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 60: //combat - return CB_UINT8_FIELD; + return UINT8_FIELD; case 61: //magic - return CB_UINT8_FIELD; + return UINT8_FIELD; case 62: //stealth - return CB_UINT8_FIELD; + return UINT8_FIELD; case 63: //health - return CB_UINT16_FIELD; + return UINT16_FIELD; case 64: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 65: //attackDamage - return CB_SINT16_FIELD; + return SINT16_FIELD; case 66: //strength - return CB_UINT8_FIELD; + return UINT8_FIELD; case 67: //perception - return CB_UINT8_FIELD; + return UINT8_FIELD; case 68: //endurance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 69: //charisma - return CB_UINT8_FIELD; + return UINT8_FIELD; case 70: //intelligence - return CB_UINT8_FIELD; + return UINT8_FIELD; case 71: //agility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 72: //luck - return CB_UINT8_FIELD; + return UINT8_FIELD; case 73: //attackReach - return CB_UINT8_FIELD; + return UINT8_FIELD; case 74: //combatStyle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 75: //partData - return CB_FORMID_FIELD; + return FORMID_FIELD; case 76: //turningSpeed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 77: //baseScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 78: //footWeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 79: //impactType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 80: //soundLevel - return CB_UINT32_FIELD; + return UINT32_FIELD; case 81: //inheritsSoundsFrom - return CB_FORMID_FIELD; + return FORMID_FIELD; case 82: //soundTypes if(ListFieldID == 0) //soundTypes { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Types.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Types.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //soundType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 2: //sounds if(ListX2FieldID == 0) //sounds { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Types.value[ListIndex]->Sounds.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX2Index >= Types.value[ListIndex]->Sounds.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //chance - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 83: //impactData - return CB_FORMID_FIELD; + return FORMID_FIELD; case 84: //meleeList - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CREARecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -905,7 +905,7 @@ bool CREARecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/CSNORecordAPI.cpp b/src/FalloutNewVegas/Records/API/CSNORecordAPI.cpp index f169e39..6d55774 100644 --- a/src/FalloutNewVegas/Records/API/CSNORecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CSNORecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CSNORecord.h" +#include "../../../Common.h" +#include "../CSNORecord.h" namespace FNV { @@ -45,71 +45,71 @@ uint32_t CSNORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 11: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 12: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 13: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 15: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //modl Roulette Chip - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 17: //modl Slot Machine Model - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 18: //mod2 Slot Machine Model (again?) - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 19: //mod3 BlackJack Table Model - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //mod4 Roulette Table Model - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //icon Symbol W - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 22: //ico2 Deck 4 - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CSNORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/CSTYRecordAPI.cpp b/src/FalloutNewVegas/Records/API/CSTYRecordAPI.cpp index 3d39189..d3d5ec8 100644 --- a/src/FalloutNewVegas/Records/API/CSTYRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/CSTYRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CSTYRecord.h" +#include "../../../Common.h" +#include "../CSTYRecord.h" namespace FNV { @@ -45,246 +45,246 @@ uint32_t CSTYRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //dodgeChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //lrChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //lrTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //lrTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //forTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //forTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 14: //backTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //backTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //idleTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //idleTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //blkChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //atkChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 21: //atkBRecoil - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //atkBUnc - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //atkBh2h - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //pAtkChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 25: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 26: //pAtkBRecoil - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //pAtkBUnc - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //pAtkNormal - return CB_UINT8_FIELD; + return UINT8_FIELD; case 29: //pAtkFor - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //pAtkBack - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //pAtkL - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //pAtkR - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 34: //holdTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 35: //holdTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 36: //flags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 37: //unused5 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 38: //acroDodge - return CB_UINT8_FIELD; + return UINT8_FIELD; case 39: //rushChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 40: //unused6 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //rushMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 42: //dodgeFMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 43: //dodgeFBase - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 44: //encSBase - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 45: //encSMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 46: //dodgeAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 47: //dodgeNAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 48: //dodgeBAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 49: //dodgeBNAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 50: //dodgeFAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //dodgeFNAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //blockMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //blockBase - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 54: //blockAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 55: //blockNAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 56: //atkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 57: //atkBase - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 58: //atkAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 59: //atkNAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 60: //atkBlockMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 61: //pAtkFBase - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 62: //pAtkFMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 63: //coverRadius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 64: //coverChance - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 65: //waitTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 66: //waitFireTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 67: //waitFireTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 68: //waitTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 69: //fireTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 70: //fireTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 71: //rangedRangeMultMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 72: //unused7 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 73: //weaponRestrictions - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 74: //rangedRangeMultMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 75: //targetMaxFOV - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 76: //combatRadius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 77: //semiAutoFireDelayMultMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 78: //semiAutoFireDelayMultMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CSTYRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/DEBRRecordAPI.cpp b/src/FalloutNewVegas/Records/API/DEBRRecordAPI.cpp index b39c752..ab7e7ca 100644 --- a/src/FalloutNewVegas/Records/API/DEBRRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/DEBRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\DEBRRecord.h" +#include "../../../Common.h" +#include "../DEBRRecord.h" namespace FNV { @@ -45,80 +45,80 @@ uint32_t DEBRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //models if(ListFieldID == 0) //models { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Models.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Models.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //percentage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Models.MODS[ListIndex]->MODT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * DEBRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -213,7 +213,7 @@ bool DEBRRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; Models.MODS[ListIndex]->modPath = new char[ArraySize]; - strcpy_s(Models.MODS[ListIndex]->modPath, ArraySize, (char *)FieldValue); + strncpy(Models.MODS[ListIndex]->modPath, (char *)FieldValue, ArraySize); } break; case 3: //flags diff --git a/src/FalloutNewVegas/Records/API/DEHYRecordAPI.cpp b/src/FalloutNewVegas/Records/API/DEHYRecordAPI.cpp index 8275ebd..405d533 100644 --- a/src/FalloutNewVegas/Records/API/DEHYRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/DEHYRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\DEHYRecord.h" +#include "../../../Common.h" +#include "../DEHYRecord.h" namespace FNV { @@ -45,43 +45,43 @@ uint32_t DEHYRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * DEHYRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/DIALRecordAPI.cpp b/src/FalloutNewVegas/Records/API/DIALRecordAPI.cpp index 30ecab2..bcbc431 100644 --- a/src/FalloutNewVegas/Records/API/DIALRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/DIALRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\DIALRecord.h" +#include "../../../Common.h" +#include "../DIALRecord.h" namespace FNV { @@ -45,168 +45,168 @@ uint32_t DIALRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //quests if(ListFieldID == 0) //quests { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)QSTI.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= QSTI.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //quest - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknowns if(ListX2FieldID == 0) //quests { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)QSTI.value[ListIndex]->Unknown.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX2Index >= QSTI.value[ListIndex]->Unknown.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //unknownId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //removedQuests if(ListFieldID == 0) //removedQuests { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)QSTR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= QSTR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //quest - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknowns if(ListX2FieldID == 0) //unknowns { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)QSTR.value[ListIndex]->Unknown.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX2Index >= QSTR.value[ListIndex]->Unknown.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //unknownId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 10: //priority - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //unknown - return CB_STRING_FIELD; + return STRING_FIELD; case 12: //dialType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 13: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 14: //INFO switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)INFO.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * DIALRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/DOBJRecordAPI.cpp b/src/FalloutNewVegas/Records/API/DOBJRecordAPI.cpp index 474020b..bebb9ed 100644 --- a/src/FalloutNewVegas/Records/API/DOBJRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/DOBJRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\DOBJRecord.h" +#include "../../../Common.h" +#include "../DOBJRecord.h" namespace FNV { @@ -45,41 +45,41 @@ uint32_t DOBJRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //data Default Objects - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * DOBJRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/DOORRecordAPI.cpp b/src/FalloutNewVegas/Records/API/DOORRecordAPI.cpp index 59befe8..83053a4 100644 --- a/src/FalloutNewVegas/Records/API/DOORRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/DOORRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\DOORRecord.h" +#include "../../../Common.h" +#include "../DOORRecord.h" namespace FNV { @@ -45,183 +45,183 @@ uint32_t DOORRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 21: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 23: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //openSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 26: //closeSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 27: //loopSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 28: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * DOORRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -423,7 +423,7 @@ bool DOORRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/ECZNRecordAPI.cpp b/src/FalloutNewVegas/Records/API/ECZNRecordAPI.cpp index 43906fc..bf34e17 100644 --- a/src/FalloutNewVegas/Records/API/ECZNRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ECZNRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ECZNRecord.h" +#include "../../../Common.h" +#include "../ECZNRecord.h" namespace FNV { @@ -45,57 +45,57 @@ uint32_t ECZNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //data DATA ,, Struct - return CB_SINT8_FIELD; + return SINT8_FIELD; case 9: //data DATA ,, Struct - return CB_SINT8_FIELD; + return SINT8_FIELD; case 10: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 11: //data_p DATA ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ECZNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/EFSHRecordAPI.cpp b/src/FalloutNewVegas/Records/API/EFSHRecordAPI.cpp index 8e905c0..55d7028 100644 --- a/src/FalloutNewVegas/Records/API/EFSHRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/EFSHRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\EFSHRecord.h" +#include "../../../Common.h" +#include "../EFSHRecord.h" namespace FNV { @@ -45,300 +45,300 @@ uint32_t EFSHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //fillPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //particlePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //holesPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 11: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //memSBlend - return CB_UINT32_FIELD; + return UINT32_FIELD; case 13: //memBlendOp - return CB_UINT32_FIELD; + return UINT32_FIELD; case 14: //memZFunc - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //fill.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //fill.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //fill.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //fillAIn - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //fillAFull - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //fillAOut - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //fillAPRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //fillAAmp - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //fillAFreq - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //fillAnimSpdU - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //fillAnimSpdV - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //edgeEffOff - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //edgeEff.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 29: //edgeEff.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //edgeEff.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //edgeEffAIn - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 33: //edgeEffAFull - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 34: //edgeEffAOut - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 35: //edgeEffAPRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 36: //edgeEffAAmp - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 37: //edgeEffAFreq - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 38: //fillAFRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 39: //edgeEffAFRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 40: //memDBlend - return CB_UINT32_FIELD; + return UINT32_FIELD; case 41: //partSBlend - return CB_UINT32_FIELD; + return UINT32_FIELD; case 42: //partBlendOp - return CB_UINT32_FIELD; + return UINT32_FIELD; case 43: //partZFunc - return CB_UINT32_FIELD; + return UINT32_FIELD; case 44: //partDBlend - return CB_UINT32_FIELD; + return UINT32_FIELD; case 45: //partBUp - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 46: //partBFull - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 47: //partBDown - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 48: //partBFRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 49: //partBPRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 50: //partLTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //partLDelta - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //partNSpd - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //partNAcc - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 54: //partVel1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 55: //partVel2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 56: //partVel3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 57: //partAcc1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 58: //partAcc2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 59: //partAcc3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 60: //partKey1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 61: //partKey2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 62: //partKey1Time - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 63: //partKey2Time - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 64: //key1.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 65: //key1.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 66: //key1.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 67: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 68: //key2.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 69: //key2.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 70: //key2.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 71: //unused5 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 72: //key3.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 73: //key3.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 74: //key3.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 75: //unused6 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 76: //key1A - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 77: //key2A - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 78: //key3A - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 79: //key1Time - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 80: //key2Time - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 81: //key3Time - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 82: //partInitSpd - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 83: //partInitRot - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 84: //partInitRotDelta - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 85: //partRotSpd - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 86: //partRotDelta - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 87: //addon - return CB_FORMID_FIELD; + return FORMID_FIELD; case 88: //holesSTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 89: //holesETime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 90: //holesSValue - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 91: //holesEValue - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 92: //edgeWidth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 93: //edge.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 94: //edge.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 95: //edge.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 96: //unused7 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 97: //explWindSpd - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 98: //textCountU - return CB_UINT32_FIELD; + return UINT32_FIELD; case 99: //textCountV - return CB_UINT32_FIELD; + return UINT32_FIELD; case 100: //addonFITime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 101: //addonFOTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 102: //addonScaleStart - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 103: //addonScaleEnd - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 104: //addonScaleInTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 105: //addonScaleOutTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * EFSHRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/ENCHRecordAPI.cpp b/src/FalloutNewVegas/Records/API/ENCHRecordAPI.cpp index 344414d..5430488 100644 --- a/src/FalloutNewVegas/Records/API/ENCHRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/ENCHRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ENCHRecord.h" +#include "../../../Common.h" +#include "../ENCHRecord.h" namespace FNV { @@ -45,139 +45,139 @@ uint32_t ENCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //itemType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 9: //chargeAmountUnused - return CB_UINT32_FIELD; + return UINT32_FIELD; case 10: //enchantCostUnused - return CB_UINT32_FIELD; + return UINT32_FIELD; case 11: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //effects if(ListFieldID == 0) //effects { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Effects.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //effect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //magnitude - return CB_UINT32_FIELD; + return UINT32_FIELD; case 3: //area - return CB_UINT32_FIELD; + return UINT32_FIELD; case 4: //duration - return CB_UINT32_FIELD; + return UINT32_FIELD; case 5: //rangeType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 6: //actorValue - return CB_SINT32_FIELD; + return SINT32_FIELD; case 7: //conditions if(ListX2FieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value[ListIndex]->CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -187,24 +187,24 @@ uint32_t ENCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -214,59 +214,59 @@ uint32_t ENCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; case eVATSPARAM: if(Effects.value[ListIndex]->CTDA.value[ListX2Index]->param1 < VATSFUNCTIONSIZE) { switch(VATSFunction_Argument[Effects.value[ListIndex]->CTDA.value[ListX2Index]->param1]) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //runOnType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 8: //reference switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ENCHRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/EXPLRecordAPI.cpp b/src/FalloutNewVegas/Records/API/EXPLRecordAPI.cpp index de4ac1c..7096c94 100644 --- a/src/FalloutNewVegas/Records/API/EXPLRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/EXPLRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\EXPLRecord.h" +#include "../../../Common.h" +#include "../EXPLRecord.h" namespace FNV { @@ -45,134 +45,134 @@ uint32_t EXPLRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //effect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //imageSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 21: //force - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //damage - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //radius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //light - return CB_FORMID_FIELD; + return FORMID_FIELD; case 25: //sound1 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 26: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 27: //ISRadius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //impactDataSet - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //sound2 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 30: //radLevel - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //radTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 32: //radRadius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 33: //soundLevel - return CB_UINT32_FIELD; + return UINT32_FIELD; case 34: //impact - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * EXPLRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -353,7 +353,7 @@ bool EXPLRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/EYESRecordAPI.cpp b/src/FalloutNewVegas/Records/API/EYESRecordAPI.cpp index 4e514c2..7bb6d71 100644 --- a/src/FalloutNewVegas/Records/API/EYESRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/EYESRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\EYESRecord.h" +#include "../../../Common.h" +#include "../EYESRecord.h" namespace FNV { @@ -45,45 +45,45 @@ uint32_t EYESRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * EYESRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/FACTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/FACTRecordAPI.cpp index f3f885a..ac34796 100644 --- a/src/FalloutNewVegas/Records/API/FACTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/FACTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\FACTRecord.h" +#include "../../../Common.h" +#include "../FACTRecord.h" namespace FNV { @@ -45,118 +45,118 @@ uint32_t FACTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //relations if(ListFieldID == 0) //relations { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= XNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //faction - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //mod - return CB_SINT32_FIELD; + return SINT32_FIELD; case 3: //groupReactionType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //flags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 10: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //crimeGoldMultiplier - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //ranks if(ListFieldID == 0) //ranks { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)RNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= RNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 2: //male - return CB_STRING_FIELD; + return STRING_FIELD; case 3: //female - return CB_STRING_FIELD; + return STRING_FIELD; case 4: //insigniaPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //reputation - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * FACTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/FLSTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/FLSTRecordAPI.cpp index 9ef5fb8..608fd03 100644 --- a/src/FalloutNewVegas/Records/API/FLSTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/FLSTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\FLSTRecord.h" +#include "../../../Common.h" +#include "../FLSTRecord.h" namespace FNV { @@ -45,41 +45,41 @@ uint32_t FLSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //lnam FormID - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * FLSTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/FURNRecordAPI.cpp b/src/FalloutNewVegas/Records/API/FURNRecordAPI.cpp index 1c1bdcb..987a7d9 100644 --- a/src/FalloutNewVegas/Records/API/FURNRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/FURNRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\FURNRecord.h" +#include "../../../Common.h" +#include "../FURNRecord.h" namespace FNV { @@ -45,177 +45,177 @@ uint32_t FURNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 21: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 23: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * FURNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -411,7 +411,7 @@ bool FURNRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/GLOBRecordAPI.cpp b/src/FalloutNewVegas/Records/API/GLOBRecordAPI.cpp index e4d429a..b423140 100644 --- a/src/FalloutNewVegas/Records/API/GLOBRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/GLOBRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\GLOBRecord.h" +#include "../../../Common.h" +#include "../GLOBRecord.h" namespace FNV { @@ -45,43 +45,43 @@ uint32_t GLOBRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //fnam Type - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //fltv Value - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * GLOBRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/GMSTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/GMSTRecordAPI.cpp index 7117718..23c5fa9 100644 --- a/src/FalloutNewVegas/Records/API/GMSTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/GMSTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\GMSTRecord.h" +#include "../../../Common.h" +#include "../GMSTRecord.h" namespace FNV { @@ -45,59 +45,59 @@ uint32_t GMSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //value switch(WhichAttribute) { case 0: //fieldType - return CB_STRING_OR_FLOAT32_OR_SINT32_FIELD; + return STRING_OR_FLOAT32_OR_SINT32_FIELD; case 2: //WhichType switch(DATA.format) { case 's': - return CB_STRING_FIELD; + return STRING_FIELD; case 'i': - return CB_SINT32_FIELD; + return SINT32_FIELD; case 'f': - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * GMSTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -173,7 +173,7 @@ bool GMSTRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz delete []DATA.s; ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; DATA.s = new char[ArraySize]; - strcpy_s(DATA.s, ArraySize, (char *)FieldValue); + strncpy(DATA.s, (char *)FieldValue, ArraySize); } break; case 'i': @@ -225,7 +225,7 @@ void GMSTRecord::DeleteField(FIELD_IDENTIFIERS) { ArraySize = (uint32_t)strlen(defaultDATA.s) + 1; DATA.s = new char[ArraySize]; - strcpy_s(DATA.s, ArraySize, defaultDATA.s); + strncpy(DATA.s, defaultDATA.s, ArraySize); } return; case 'i': diff --git a/src/FalloutNewVegas/Records/API/GRASRecordAPI.cpp b/src/FalloutNewVegas/Records/API/GRASRecordAPI.cpp index 7bd94f6..1fddc67 100644 --- a/src/FalloutNewVegas/Records/API/GRASRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/GRASRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\GRASRecord.h" +#include "../../../Common.h" +#include "../GRASRecord.h" namespace FNV { @@ -45,153 +45,153 @@ uint32_t GRASRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 18: //density - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //minSlope - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //maxSlope - return CB_UINT8_FIELD; + return UINT8_FIELD; case 21: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //waterDistance - return CB_UINT16_FIELD; + return UINT16_FIELD; case 23: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //waterOp - return CB_UINT32_FIELD; + return UINT32_FIELD; case 25: //posRange - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //heightRange - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //colorRange - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //wavePeriod - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 30: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * GRASRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -364,7 +364,7 @@ bool GRASRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/HAIRRecordAPI.cpp b/src/FalloutNewVegas/Records/API/HAIRRecordAPI.cpp index 6acade9..fd9df68 100644 --- a/src/FalloutNewVegas/Records/API/HAIRRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/HAIRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\HAIRRecord.h" +#include "../../../Common.h" +#include "../HAIRRecord.h" namespace FNV { @@ -45,94 +45,94 @@ uint32_t HAIRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 13: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * HAIRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -255,7 +255,7 @@ bool HAIRRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/HDPTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/HDPTRecordAPI.cpp index c121a17..4d7cb0c 100644 --- a/src/FalloutNewVegas/Records/API/HDPTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/HDPTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\HDPTRecord.h" +#include "../../../Common.h" +#include "../HDPTRecord.h" namespace FNV { @@ -45,102 +45,102 @@ uint32_t HDPTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 13: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 14: //parts switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)HNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * HDPTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -264,7 +264,7 @@ bool HDPTRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/HUNGRecordAPI.cpp b/src/FalloutNewVegas/Records/API/HUNGRecordAPI.cpp index 7c98f4f..4273c89 100644 --- a/src/FalloutNewVegas/Records/API/HUNGRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/HUNGRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\HUNGRecord.h" +#include "../../../Common.h" +#include "../HUNGRecord.h" namespace FNV { @@ -45,43 +45,43 @@ uint32_t HUNGRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * HUNGRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/IDLERecordAPI.cpp b/src/FalloutNewVegas/Records/API/IDLERecordAPI.cpp index 1caa69a..5e604a8 100644 --- a/src/FalloutNewVegas/Records/API/IDLERecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/IDLERecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\IDLERecord.h" +#include "../../../Common.h" +#include "../IDLERecord.h" namespace FNV { @@ -45,135 +45,135 @@ uint32_t IDLERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //conditions if(ListFieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return CTDA.value[ListIndex]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -183,24 +183,24 @@ uint32_t IDLERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -210,98 +210,98 @@ uint32_t IDLERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; case eVATSPARAM: if(CTDA.value[ListIndex]->param1 < VATSFUNCTIONSIZE) { switch(VATSFunction_Argument[CTDA.value[ListIndex]->param1]) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //runOnType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 8: //reference switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return CTDA.value[ListIndex]->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //animations switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ANAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //group - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //minLooping - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //maxLooping - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //replayDelay - return CB_SINT16_FIELD; + return SINT16_FIELD; case 19: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 20: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * IDLERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -461,7 +461,7 @@ bool IDLERecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/IDLMRecordAPI.cpp b/src/FalloutNewVegas/Records/API/IDLMRecordAPI.cpp index d36e8ca..15f3e08 100644 --- a/src/FalloutNewVegas/Records/API/IDLMRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/IDLMRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\IDLMRecord.h" +#include "../../../Common.h" +#include "../IDLMRecord.h" namespace FNV { @@ -45,68 +45,68 @@ uint32_t IDLMRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //flags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //count - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //timer - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //animations switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)IDLA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * IDLMRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/IMADRecordAPI.cpp b/src/FalloutNewVegas/Records/API/IMADRecordAPI.cpp index 5c5e958..09aaea6 100644 --- a/src/FalloutNewVegas/Records/API/IMADRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/IMADRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\IMADRecord.h" +#include "../../../Common.h" +#include "../IMADRecord.h" namespace FNV { @@ -45,659 +45,659 @@ uint32_t IMADRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //dnam_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //bnam_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return BNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //vnam_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return VNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //tnam_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return TNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //nam3_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NAM3.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //rnam_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return RNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //snam_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return SNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //unam_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return UNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //nam1_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NAM1.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //nam2_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NAM2.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //wnam_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return WNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //xnam_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //ynam_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return YNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //nam4_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NAM4.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 21: //_00__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _00_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //_40__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _40_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //_01__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _01_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //_41__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _41_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //_02__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _02_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 26: //_42__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _42_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 27: //_03__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _03_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 28: //_43__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _43_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 29: //_04__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _04_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //_44__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _44_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 31: //_05__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _05_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //_45__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _45_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 33: //_06__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _06_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 34: //_46__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _46_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //_07__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _07_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 36: //_47__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _47_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 37: //_08__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _08_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 38: //_48__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _48_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 39: //_09__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _09_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 40: //_49__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _49_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //_0a__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _0A_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 42: //_4a__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _4A_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 43: //_0b__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _0B_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 44: //_4b__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _4B_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 45: //_0c__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _0C_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 46: //_4c__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _4C_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 47: //_0d__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _0D_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 48: //_4d__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _4D_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 49: //_0e__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _0E_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 50: //_4e__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _4E_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 51: //_0f__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _0F_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 52: //_4f__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _4F_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 53: //_10__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _10_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 54: //_50__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _50_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 55: //_11__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _11_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 56: //_51__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _51_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 57: //_12__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _12_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 58: //_52__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _52_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 59: //_13__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _13_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 60: //_53__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _53_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 61: //_14__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _14_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 62: //_54__p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return _54_.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 63: //rdsd Sound - Intro - return CB_FORMID_FIELD; + return FORMID_FIELD; case 64: //rdsi Sound - Outro - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * IMADRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/IMGSRecordAPI.cpp b/src/FalloutNewVegas/Records/API/IMGSRecordAPI.cpp index d1d997a..8de7a2c 100644 --- a/src/FalloutNewVegas/Records/API/IMGSRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/IMGSRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\IMGSRecord.h" +#include "../../../Common.h" +#include "../IMGSRecord.h" namespace FNV { @@ -45,161 +45,161 @@ uint32_t IMGSRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 14: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 32: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 33: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 34: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 35: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 36: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 37: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 38: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 39: //dnam DNAM ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 40: //dnam_p DNAM ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //dnam_p DNAM ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 42: //dnam_p DNAM ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 43: //dnam_p DNAM ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 44: //dnam DNAM ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 45: //dnam_p DNAM ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * IMGSRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/IMODRecordAPI.cpp b/src/FalloutNewVegas/Records/API/IMODRecordAPI.cpp index 84956d6..076eda6 100644 --- a/src/FalloutNewVegas/Records/API/IMODRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/IMODRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\IMODRecord.h" +#include "../../../Common.h" +#include "../IMODRecord.h" namespace FNV { @@ -45,159 +45,159 @@ uint32_t IMODRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 11: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 12: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize - return MODL->Textures.MODS.size(); + return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 17: //modelFlags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 19: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 21: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 22: //dest Header - return CB_SINT32_FIELD; + return SINT32_FIELD; case 23: //dest Header - return CB_UINT8_FIELD; + return UINT8_FIELD; case 24: //dest Header - return CB_UINT8_FIELD; + return UINT8_FIELD; case 25: //dest_p Header switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 26: //dstd Destruction Stage Data - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //dstd Destruction Stage Data - return CB_UINT8_FIELD; + return UINT8_FIELD; case 28: //dstd Destruction Stage Data - return CB_UINT8_FIELD; + return UINT8_FIELD; case 29: //dstd Destruction Stage Data - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //dstd Destruction Stage Data - return CB_SINT32_FIELD; + return SINT32_FIELD; case 31: //dstd Destruction Stage Data - return CB_FORMID_FIELD; + return FORMID_FIELD; case 32: //dstd Destruction Stage Data - return CB_FORMID_FIELD; + return FORMID_FIELD; case 33: //dstd Destruction Stage Data - return CB_SINT32_FIELD; + return SINT32_FIELD; case 34: //dmdl Model Filename - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 35: //dmdt_p Texture Files Hashes switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 0; //return DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 36: //ynam Sound - Pick Up - return CB_FORMID_FIELD; + return FORMID_FIELD; case 37: //znam Sound - Drop - return CB_FORMID_FIELD; + return FORMID_FIELD; case 38: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 39: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * IMODRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/INFORecordAPI.cpp b/src/FalloutNewVegas/Records/API/INFORecordAPI.cpp index ee01929..28bde60 100644 --- a/src/FalloutNewVegas/Records/API/INFORecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/INFORecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\INFORecord.h" +#include "../../../Common.h" +#include "../INFORecord.h" namespace FNV { @@ -45,186 +45,186 @@ uint32_t INFORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_MISSING_FIELD; + return MISSING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //dialType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 8: //nextSpeaker - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 9: //flags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 10: //quest - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //topic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //prevInfo - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //addTopics switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)NAME.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //responses if(ListFieldID == 0) //responses { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Responses.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Responses.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //emotionType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 2: //emotionValue - return CB_SINT32_FIELD; + return SINT32_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //responseNum - return CB_UINT8_FIELD; + return UINT8_FIELD; case 5: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 8: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //responseText - return CB_STRING_FIELD; + return STRING_FIELD; case 10: //actorNotes - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 11: //editNotes - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 12: //speakerAnim - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //listenerAnim - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //conditions if(ListFieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return CTDA.value[ListIndex]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -234,24 +234,24 @@ uint32_t INFORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -261,187 +261,187 @@ uint32_t INFORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; case eVATSPARAM: if(CTDA.value[ListIndex]->param1 < VATSFUNCTIONSIZE) { switch(VATSFunction_Argument[CTDA.value[ListIndex]->param1]) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //runOnType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 8: //reference switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return CTDA.value[ListIndex]->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //choices switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)TCLT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //linksFrom switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)TCLF.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //unknown switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)TCFU.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 21: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 22: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 23: //scriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 24: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 25: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return BeginSCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 26: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 27: //vars if(ListFieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)BeginVARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= BeginVARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 28: //references if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)BeginSCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= BeginSCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -449,120 +449,120 @@ uint32_t INFORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (BeginSCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD); + return (BeginSCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 29: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //endNumRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 31: //endCompiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 32: //endLastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 33: //endScriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 34: //endScriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 35: //endCompiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return EndSCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 36: //endScriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 37: //endVars if(ListFieldID == 0) //endVars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)EndVARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= EndVARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 38: //endReferences if(ListFieldID == 0) //endReferences { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)EndSCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= EndSCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -570,33 +570,33 @@ uint32_t INFORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (EndSCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD); + return (EndSCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 39: //unusedSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 40: //prompt - return CB_STRING_FIELD; + return STRING_FIELD; case 41: //speaker - return CB_FORMID_FIELD; + return FORMID_FIELD; case 42: //actorValueOrPerk - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //challengeType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 44: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * INFORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/INGRRecordAPI.cpp b/src/FalloutNewVegas/Records/API/INGRRecordAPI.cpp index 618bdec..cdd5a93 100644 --- a/src/FalloutNewVegas/Records/API/INGRRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/INGRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\INGRRecord.h" +#include "../../../Common.h" +#include "../INGRRecord.h" namespace FNV { @@ -45,206 +45,206 @@ uint32_t INGRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //equipmentType - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 23: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 25: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 26: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 27: //effects if(ListFieldID == 0) //effects { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Effects.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //effect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //magnitude - return CB_UINT32_FIELD; + return UINT32_FIELD; case 3: //area - return CB_UINT32_FIELD; + return UINT32_FIELD; case 4: //duration - return CB_UINT32_FIELD; + return UINT32_FIELD; case 5: //rangeType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 6: //actorValue - return CB_SINT32_FIELD; + return SINT32_FIELD; case 7: //conditions if(ListX2FieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value[ListIndex]->CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -254,24 +254,24 @@ uint32_t INGRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -281,59 +281,59 @@ uint32_t INGRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; case eVATSPARAM: if(Effects.value[ListIndex]->CTDA.value[ListX2Index]->param1 < VATSFUNCTIONSIZE) { switch(VATSFunction_Argument[Effects.value[ListIndex]->CTDA.value[ListX2Index]->param1]) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //runOnType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 8: //reference switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * INGRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -548,7 +548,7 @@ bool INGRRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/IPCTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/IPCTRecordAPI.cpp index 357b38e..1a60c05 100644 --- a/src/FalloutNewVegas/Records/API/IPCTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/IPCTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\IPCTRecord.h" +#include "../../../Common.h" +#include "../IPCTRecord.h" namespace FNV { @@ -45,152 +45,152 @@ uint32_t IPCTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize - return MODL->Textures.MODS.size(); + return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 13: //modelFlags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 19: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 20: //decalMinWidth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //decalMaxWidth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //decalMinHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //decalMaxHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //decalDepth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //decalShininess - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //decalScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //decalPasses - return CB_UINT8_FIELD; + return UINT8_FIELD; case 28: //decalFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 29: //decalUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DODT.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //decalRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //decalGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //decalBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //decalUnused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DODT.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 34: //dnam Texture Set - return CB_FORMID_FIELD; + return FORMID_FIELD; case 35: //snam Sound 1 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 36: //nam1 Sound 2 - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * IPCTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/IPDSRecordAPI.cpp b/src/FalloutNewVegas/Records/API/IPDSRecordAPI.cpp index 9dc27a5..c362dd0 100644 --- a/src/FalloutNewVegas/Records/API/IPDSRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/IPDSRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\IPDSRecord.h" +#include "../../../Common.h" +#include "../IPDSRecord.h" namespace FNV { @@ -45,63 +45,63 @@ uint32_t IPDSRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 15: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 16: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 17: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 18: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * IPDSRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/KEYMRecordAPI.cpp b/src/FalloutNewVegas/Records/API/KEYMRecordAPI.cpp index 9d6dd2d..2a628d1 100644 --- a/src/FalloutNewVegas/Records/API/KEYMRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/KEYMRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\KEYMRecord.h" +#include "../../../Common.h" +#include "../KEYMRecord.h" namespace FNV { @@ -45,189 +45,189 @@ uint32_t KEYMRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 23: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 24: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 25: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 26: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 27: //pickupSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 28: //dropSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 30: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //loopSound - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * KEYMRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -435,7 +435,7 @@ bool KEYMRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/LANDRecordAPI.cpp b/src/FalloutNewVegas/Records/API/LANDRecordAPI.cpp index 31c73d6..53518d5 100644 --- a/src/FalloutNewVegas/Records/API/LANDRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/LANDRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LANDRecord.h" +#include "../../../Common.h" +#include "../LANDRecord.h" namespace FNV { @@ -48,57 +48,57 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_MISSING_FIELD; + return MISSING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //data switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DATA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //normals if(ListFieldID == 0) //normals { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -107,45 +107,45 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //x - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //y - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //z - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //heightOffset - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //heights if(ListFieldID == 0) //heights { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -154,50 +154,50 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //height - return CB_SINT8_FIELD; + return SINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return VHGT.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //colors if(ListFieldID == 0) //colors { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -206,182 +206,182 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //blue - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //baseTextures if(ListFieldID == 0) //baseTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)BTXT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= BTXT.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //quadrant - return CB_SINT8_FIELD; + return SINT8_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //layer - return CB_SINT16_FIELD; + return SINT16_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //alphaLayers if(ListFieldID == 0) //alphaLayers { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Layers.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Layers.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //quadrant - return CB_SINT8_FIELD; + return SINT8_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //layer - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //opacities if(ListX2FieldID == 0) //opacities { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Layers.value[ListIndex]->VTXT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Layers.value[ListIndex]->VTXT.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //position - return CB_UINT16_FIELD; + return UINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //vertexTextures if(ListFieldID == 0) //vertexTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)VTEX.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= VTEX.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //Position if(ListFieldID == 0) //Position { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -390,79 +390,79 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //height - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 2: //normalX - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //normalY - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //normalZ - return CB_UINT8_FIELD; + return UINT8_FIELD; case 5: //red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 6: //green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 7: //blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //baseTexture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //alphaLayer1Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //alphaLayer1Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //alphaLayer2Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //alphaLayer2Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //alphaLayer3Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //alphaLayer3Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //alphaLayer4Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 16: //alphaLayer4Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //alphaLayer5Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 18: //alphaLayer5Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //alphaLayer6Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //alphaLayer6Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //alphaLayer7Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //alphaLayer7Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //alphaLayer8Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //alphaLayer8Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 17: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LANDRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/LGTMRecordAPI.cpp b/src/FalloutNewVegas/Records/API/LGTMRecordAPI.cpp index 8c791d0..5c97412 100644 --- a/src/FalloutNewVegas/Records/API/LGTMRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/LGTMRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LGTMRecord.h" +#include "../../../Common.h" +#include "../LGTMRecord.h" namespace FNV { @@ -45,104 +45,104 @@ uint32_t LGTMRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 10: //data_p DATA ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //data_p DATA ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //data_p DATA ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //data DATA ,, Struct - return CB_SINT32_FIELD; + return SINT32_FIELD; case 22: //data DATA ,, Struct - return CB_SINT32_FIELD; + return SINT32_FIELD; case 23: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LGTMRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/LIGHRecordAPI.cpp b/src/FalloutNewVegas/Records/API/LIGHRecordAPI.cpp index 82efe37..32fec81 100644 --- a/src/FalloutNewVegas/Records/API/LIGHRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/LIGHRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LIGHRecord.h" +#include "../../../Common.h" +#include "../LIGHRecord.h" namespace FNV { @@ -45,143 +45,143 @@ uint32_t LIGHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //duration - return CB_SINT32_FIELD; + return SINT32_FIELD; case 23: //radius - return CB_UINT32_FIELD; + return UINT32_FIELD; case 24: //red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 25: //green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 26: //blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 28: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 29: //falloff - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //fov - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //value - return CB_UINT32_FIELD; + return UINT32_FIELD; case 32: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 33: //fade - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 34: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LIGHRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -363,7 +363,7 @@ bool LIGHRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/LSCRRecordAPI.cpp b/src/FalloutNewVegas/Records/API/LSCRRecordAPI.cpp index 94a0188..cef5679 100644 --- a/src/FalloutNewVegas/Records/API/LSCRRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/LSCRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LSCRRecord.h" +#include "../../../Common.h" +#include "../LSCRRecord.h" namespace FNV { @@ -45,79 +45,79 @@ uint32_t LSCRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //text - return CB_STRING_FIELD; + return STRING_FIELD; case 10: //locations if(ListFieldID == 0) //locations { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)LNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= LNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //direct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //indirect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //gridY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 4: //gridX - return CB_SINT16_FIELD; + return SINT16_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //screentype - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LSCRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/LSCTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/LSCTRecordAPI.cpp index a826272..9a2fb27 100644 --- a/src/FalloutNewVegas/Records/API/LSCTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/LSCTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LSCTRecord.h" +#include "../../../Common.h" +#include "../LSCTRecord.h" namespace FNV { @@ -45,93 +45,93 @@ uint32_t LSCTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 9: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 10: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 11: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 12: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 14: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 18: //data_p DATA ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 20; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 20: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //data DATA ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //data_p DATA ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LSCTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/LTEXRecordAPI.cpp b/src/FalloutNewVegas/Records/API/LTEXRecordAPI.cpp index 4d11bba..5bf0330 100644 --- a/src/FalloutNewVegas/Records/API/LTEXRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/LTEXRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LTEXRecord.h" +#include "../../../Common.h" +#include "../LTEXRecord.h" namespace FNV { @@ -45,63 +45,63 @@ uint32_t LTEXRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //types - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 11: //friction - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //restitution - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //specularExponent - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //grasses switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)GNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LTEXRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/LVLCRecordAPI.cpp b/src/FalloutNewVegas/Records/API/LVLCRecordAPI.cpp index 17cf8dc..0779b65 100644 --- a/src/FalloutNewVegas/Records/API/LVLCRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/LVLCRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LVLCRecord.h" +#include "../../../Common.h" +#include "../LVLCRecord.h" namespace FNV { @@ -45,171 +45,171 @@ uint32_t LVLCRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //chanceNone - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 15: //entries if(ListFieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //level - return CB_SINT16_FIELD; + return SINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //listId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //count - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //globalOrRank switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Entries.value[ListIndex]->IsGlobal() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Entries.value[ListIndex]->IsGlobal() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //condition - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 17: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 20: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LVLCRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -440,7 +440,7 @@ bool LVLCRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/LVLIRecordAPI.cpp b/src/FalloutNewVegas/Records/API/LVLIRecordAPI.cpp index 8cfe2e9..74156d1 100644 --- a/src/FalloutNewVegas/Records/API/LVLIRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/LVLIRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LVLIRecord.h" +#include "../../../Common.h" +#include "../LVLIRecord.h" namespace FNV { @@ -45,124 +45,124 @@ uint32_t LVLIRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //chanceNone - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 15: //globalId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 16: //entries if(ListFieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //level - return CB_SINT16_FIELD; + return SINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //listId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //count - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //globalOrRank switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Entries.value[ListIndex]->IsGlobal() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Entries.value[ListIndex]->IsGlobal() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //condition - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LVLIRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/LVLNRecordAPI.cpp b/src/FalloutNewVegas/Records/API/LVLNRecordAPI.cpp index 8b89797..1b283ac 100644 --- a/src/FalloutNewVegas/Records/API/LVLNRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/LVLNRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LVLNRecord.h" +#include "../../../Common.h" +#include "../LVLNRecord.h" namespace FNV { @@ -45,171 +45,171 @@ uint32_t LVLNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //chanceNone - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 15: //entries if(ListFieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //level - return CB_SINT16_FIELD; + return SINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //listId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //count - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //globalOrRank switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Entries.value[ListIndex]->IsGlobal() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Entries.value[ListIndex]->IsGlobal() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //condition - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 17: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 20: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LVLNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -440,7 +440,7 @@ bool LVLNRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/MESGRecordAPI.cpp b/src/FalloutNewVegas/Records/API/MESGRecordAPI.cpp index 9c3216b..dfb9129 100644 --- a/src/FalloutNewVegas/Records/API/MESGRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/MESGRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\MESGRecord.h" +#include "../../../Common.h" +#include "../MESGRecord.h" namespace FNV { @@ -45,94 +45,94 @@ uint32_t MESGRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 9: //inam Icon - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //dnam Flags - return CB_UINT32_FIELD; + return UINT32_FIELD; case 11: //tnam Display Time - return CB_UINT32_FIELD; + return UINT32_FIELD; case 12: //itxt Button Text - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 13: //ctda Conditions - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //ctda Conditions - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; case 16: //ctda Conditions - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //ctda Conditions - return CB_UINT32_FIELD; + return UINT32_FIELD; case 20: //ctda Conditions - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * MESGRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/MGEFRecordAPI.cpp b/src/FalloutNewVegas/Records/API/MGEFRecordAPI.cpp index 8c7eb75..1f78224 100644 --- a/src/FalloutNewVegas/Records/API/MGEFRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/MGEFRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\MGEFRecord.h" +#include "../../../Common.h" +#include "../MGEFRecord.h" namespace FNV { @@ -45,143 +45,143 @@ uint32_t MGEFRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 11: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 12: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 16: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 17: //baseCostUnused - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //associated - return CB_FORMID_FIELD; + return FORMID_FIELD; case 19: //schoolUnused - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 20: //resistType - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 21: //numCounters - return CB_UINT16_FIELD; + return UINT16_FIELD; case 22: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //light - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //projectileSpeed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //effectShader - return CB_FORMID_FIELD; + return FORMID_FIELD; case 26: //displayShader - return CB_FORMID_FIELD; + return FORMID_FIELD; case 27: //effectSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 28: //boltSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //hitSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 30: //areaSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //cefEnchantmentUnused - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 32: //cefBarterUnused - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 33: //archType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 34: //actorValue - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * MGEFRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -354,7 +354,7 @@ bool MGEFRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/MICNRecordAPI.cpp b/src/FalloutNewVegas/Records/API/MICNRecordAPI.cpp index f9be668..698404d 100644 --- a/src/FalloutNewVegas/Records/API/MICNRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/MICNRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\MICNRecord.h" +#include "../../../Common.h" +#include "../MICNRecord.h" namespace FNV { @@ -45,43 +45,43 @@ uint32_t MICNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * MICNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/MISCRecordAPI.cpp b/src/FalloutNewVegas/Records/API/MISCRecordAPI.cpp index 904bed5..0acc843 100644 --- a/src/FalloutNewVegas/Records/API/MISCRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/MISCRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\MISCRecord.h" +#include "../../../Common.h" +#include "../MISCRecord.h" namespace FNV { @@ -45,189 +45,189 @@ uint32_t MISCRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 23: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 24: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 25: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 26: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 27: //pickupSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 28: //dropSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 30: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //loopSound - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * MISCRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -435,7 +435,7 @@ bool MISCRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/MSETRecordAPI.cpp b/src/FalloutNewVegas/Records/API/MSETRecordAPI.cpp index ca9514f..54497ef 100644 --- a/src/FalloutNewVegas/Records/API/MSETRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/MSETRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\MSETRecord.h" +#include "../../../Common.h" +#include "../MSETRecord.h" namespace FNV { @@ -45,103 +45,103 @@ uint32_t MSETRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //nam1 Type - return CB_UINT32_FIELD; + return UINT32_FIELD; case 9: //nam2 Loop (B) / Battle (D) / Day Outer (L) - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //nam3 Explore (D) / Day Middle (L) - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 11: //nam4 Suspense (D) / Day Inner (L) - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 12: //nam5 Night Outer (L) - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 13: //nam6 Night Middle (L) - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //nam7 Night Inner (L) - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //nam8 Loop dB (B) / Battle dB (D) / Day Outer dB (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //nam9 Explore dB (D) / Day Middle dB (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //nam0 Suspense dB (D) / Day Inner dB (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //anam Night Outer dB (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //bnam Night Middle dB (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //cnam Night Inner dB (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //jnam Day Outer Boundary % (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //knam Day Middle Boundary % (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //lnam Day Inner Boundary % (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //mnam Night Outer Boundary % (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //nnam Night Middle Boundary % (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //onam Night Inner Boundary % (L) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //pnam Enable Flags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 28: //dnam Wait Time (B) / Minimum Time On (D,L) / Daytime Min (I) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //enam Loop Fade Out (B) / Looping/Random Crossfade Overlap (D,L) / Nighttime Min (I) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //fnam Recovery Time (B) / Layer Crossfade Time (D,L) / Daytime Max (I) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //gnam Nighttime Max (I) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 32: //hnam Intro (B,D) / Daytime (I) - return CB_FORMID_FIELD; + return FORMID_FIELD; case 33: //inam Outro (B,D) / Nighttime (I) - return CB_FORMID_FIELD; + return FORMID_FIELD; case 34: //data_p Unknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DATA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * MSETRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/MSTTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/MSTTRecordAPI.cpp index 1e50e60..2936836 100644 --- a/src/FalloutNewVegas/Records/API/MSTTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/MSTTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\MSTTRecord.h" +#include "../../../Common.h" +#include "../MSTTRecord.h" namespace FNV { @@ -45,186 +45,186 @@ uint32_t MSTTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 20: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 21: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 22: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //data_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DATA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * MSTTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -421,7 +421,7 @@ bool MSTTRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/MUSCRecordAPI.cpp b/src/FalloutNewVegas/Records/API/MUSCRecordAPI.cpp index dfb8e56..7aeee17 100644 --- a/src/FalloutNewVegas/Records/API/MUSCRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/MUSCRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\MUSCRecord.h" +#include "../../../Common.h" +#include "../MUSCRecord.h" namespace FNV { @@ -45,43 +45,43 @@ uint32_t MUSCRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //fnam Filename - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //anam dB (positive = Loop) - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * MUSCRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/NAVIRecordAPI.cpp b/src/FalloutNewVegas/Records/API/NAVIRecordAPI.cpp index bedee45..06dd1c9 100644 --- a/src/FalloutNewVegas/Records/API/NAVIRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/NAVIRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\NAVIRecord.h" +#include "../../../Common.h" +#include "../NAVIRecord.h" namespace FNV { @@ -45,54 +45,54 @@ uint32_t NAVIRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //version - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //NVMI if(ListFieldID == 0) //NVMI { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)NVMI.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= NVMI.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -100,99 +100,99 @@ uint32_t NAVIRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 2: //mesh - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //location - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //xGrid - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //yGrid - return CB_SINT16_FIELD; + return SINT16_FIELD; case 6: //unknown2_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NVMI.value[ListIndex]->unknown2Size; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //NVCI if(ListFieldID == 0) //NVCI { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)NVCI.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= NVCI.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //unknown1 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown2 switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)NVCI.value[ListIndex]->unknown2.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //unknown3 switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)NVCI.value[ListIndex]->unknown3.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //doors switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)NVCI.value[ListIndex]->doors.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * NAVIRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/NAVMRecordAPI.cpp b/src/FalloutNewVegas/Records/API/NAVMRecordAPI.cpp index 8d9c214..873bab2 100644 --- a/src/FalloutNewVegas/Records/API/NAVMRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/NAVMRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\NAVMRecord.h" +#include "../../../Common.h" +#include "../NAVMRecord.h" namespace FNV { @@ -45,195 +45,195 @@ uint32_t NAVMRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //version - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //cell - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //numVertices - return CB_UINT32_FIELD; + return UINT32_FIELD; case 10: //numTriangles - return CB_UINT32_FIELD; + return UINT32_FIELD; case 11: //numConnections - return CB_UINT32_FIELD; + return UINT32_FIELD; case 12: //numUnknown - return CB_UINT32_FIELD; + return UINT32_FIELD; case 13: //numDoors - return CB_UINT32_FIELD; + return UINT32_FIELD; case 14: //vertices if(ListFieldID == 0) //vertices { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)NVVX.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= NVVX.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //x - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 2: //y - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 3: //z - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //triangles if(ListFieldID == 0) //triangles { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)NVTR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= NVTR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //vertex1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 2: //vertex2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 3: //vertex3 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 4: //edge1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //edge2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 6: //edge3 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 7: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //unknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_SINT16_ARRAY_FIELD; + return SINT16_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)NVCA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //doors if(ListFieldID == 0) //doors { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)NVDP.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= NVDP.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //door - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown1 - return CB_UINT16_FIELD; + return UINT16_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //nvgd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NVGD.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //connections if(ListFieldID == 0) //connections { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)NVEX.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= NVEX.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -241,27 +241,27 @@ uint32_t NAVMRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 2: //mesh - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //triangle - return CB_UINT16_FIELD; + return UINT16_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * NAVMRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/NOTERecordAPI.cpp b/src/FalloutNewVegas/Records/API/NOTERecordAPI.cpp index 4819f06..12e38e3 100644 --- a/src/FalloutNewVegas/Records/API/NOTERecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/NOTERecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\NOTERecord.h" +#include "../../../Common.h" +#include "../NOTERecord.h" namespace FNV { @@ -45,138 +45,138 @@ uint32_t NOTERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //pickupSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //dropSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 23: //noteType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 24: //quests switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ONAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //texturePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 26: //textOrTopic switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_STRING_FIELD; + return FORMID_OR_STRING_FIELD; case 2: //WhichType - return IsVoice() ? CB_FORMID_FIELD : CB_STRING_FIELD; + return IsVoice() ? FORMID_FIELD : STRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 27: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * NOTERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -344,7 +344,7 @@ bool NOTERecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/NPC_RecordAPI.cpp b/src/FalloutNewVegas/Records/API/NPC_RecordAPI.cpp index 7390f31..d05edfb 100644 --- a/src/FalloutNewVegas/Records/API/NPC_RecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/NPC_RecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\NPC_Record.h" +#include "../../../Common.h" +#include "../NPC_Record.h" namespace FNV { @@ -45,494 +45,494 @@ uint32_t NPC_Record::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 20: //fatigue - return CB_UINT16_FIELD; + return UINT16_FIELD; case 21: //barterGold - return CB_UINT16_FIELD; + return UINT16_FIELD; case 22: //level - return CB_SINT16_FIELD; + return SINT16_FIELD; case 23: //calcMin - return CB_UINT16_FIELD; + return UINT16_FIELD; case 24: //calcMax - return CB_UINT16_FIELD; + return UINT16_FIELD; case 25: //speedMult - return CB_UINT16_FIELD; + return UINT16_FIELD; case 26: //karma - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //dispBase - return CB_SINT16_FIELD; + return SINT16_FIELD; case 28: //templateFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 29: //factions if(ListFieldID == 0) //factions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)SNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= SNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //faction - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //rank - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //deathItem - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //voice - return CB_FORMID_FIELD; + return FORMID_FIELD; case 32: //template - return CB_FORMID_FIELD; + return FORMID_FIELD; case 33: //race - return CB_FORMID_FIELD; + return FORMID_FIELD; case 34: //actorEffects switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)SPLO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //unarmedEffect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 36: //unarmedAnim - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 37: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 38: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 39: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 40: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 42: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //items if(ListFieldID == 0) //items { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CNTO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= CNTO.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //item - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 3: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //globalOrRank switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return CNTO.value[ListIndex]->IsGlobal() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return CNTO.value[ListIndex]->IsGlobal() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //condition - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 44: //aggression - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 45: //confidence - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 46: //energyLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 47: //responsibility - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 48: //mood - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 49: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 50: //services - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 51: //trainSkill - return CB_SINT8_TYPE_FIELD; + return SINT8_TYPE_FIELD; case 52: //trainLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 53: //assistance - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 54: //aggroFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 55: //aggroRadius - return CB_SINT32_FIELD; + return SINT32_FIELD; case 56: //aiPackages switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PKID.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 57: //iclass - return CB_FORMID_FIELD; + return FORMID_FIELD; case 58: //baseHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 59: //strength - return CB_UINT8_FIELD; + return UINT8_FIELD; case 60: //perception - return CB_UINT8_FIELD; + return UINT8_FIELD; case 61: //endurance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 62: //charisma - return CB_UINT8_FIELD; + return UINT8_FIELD; case 63: //intelligence - return CB_UINT8_FIELD; + return UINT8_FIELD; case 64: //agility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 65: //luck - return CB_UINT8_FIELD; + return UINT8_FIELD; case 66: //barter - return CB_UINT8_FIELD; + return UINT8_FIELD; case 67: //bigGuns - return CB_UINT8_FIELD; + return UINT8_FIELD; case 68: //energy - return CB_UINT8_FIELD; + return UINT8_FIELD; case 69: //explosives - return CB_UINT8_FIELD; + return UINT8_FIELD; case 70: //lockpick - return CB_UINT8_FIELD; + return UINT8_FIELD; case 71: //medicine - return CB_UINT8_FIELD; + return UINT8_FIELD; case 72: //melee - return CB_UINT8_FIELD; + return UINT8_FIELD; case 73: //repair - return CB_UINT8_FIELD; + return UINT8_FIELD; case 74: //science - return CB_UINT8_FIELD; + return UINT8_FIELD; case 75: //guns - return CB_UINT8_FIELD; + return UINT8_FIELD; case 76: //sneak - return CB_UINT8_FIELD; + return UINT8_FIELD; case 77: //speech - return CB_UINT8_FIELD; + return UINT8_FIELD; case 78: //survival - return CB_UINT8_FIELD; + return UINT8_FIELD; case 79: //unarmed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 80: //barterBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 81: //bigGunsBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 82: //energyBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 83: //explosivesBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 84: //lockpickBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 85: //medicineBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 86: //meleeBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 87: //repairBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 88: //scienceBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 89: //gunsBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 90: //sneakBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 91: //speechBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 92: //survivalBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 93: //unarmedBoost - return CB_UINT8_FIELD; + return UINT8_FIELD; case 94: //headParts switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 95: //hair - return CB_FORMID_FIELD; + return FORMID_FIELD; case 96: //hairLength - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 97: //eyes - return CB_FORMID_FIELD; + return FORMID_FIELD; case 98: //hairRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 99: //hairGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 100: //hairBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 101: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 102: //combatStyle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 103: //impactType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 104: //fggs_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return FGGS.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 105: //fgga_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return FGGA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 106: //fgts_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return FGTS.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 107: //unknown - return CB_UINT16_FIELD; + return UINT16_FIELD; case 108: //height - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 109: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * NPC_Record::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -943,7 +943,7 @@ bool NPC_Record::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/PACKRecordAPI.cpp b/src/FalloutNewVegas/Records/API/PACKRecordAPI.cpp index 88cd151..d63878b 100644 --- a/src/FalloutNewVegas/Records/API/PACKRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/PACKRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\PACKRecord.h" +#include "../../../Common.h" +#include "../PACKRecord.h" namespace FNV { @@ -45,173 +45,173 @@ uint32_t PACKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 8: //aiType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 9: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //behaviorFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 11: //specificFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 12: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //loc1Type - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 14: //loc1Id switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (PLDT.IsLoaded() && (PLDT->locType < 2 || PLDT->locType == 4)) ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return (PLDT.IsLoaded() && (PLDT->locType < 2 || PLDT->locType == 4)) ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //loc1Radius - return CB_SINT32_FIELD; + return SINT32_FIELD; case 16: //loc2Type - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 17: //loc2Id switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (PLD2.IsLoaded() && (PLD2->locType < 2 || PLD2->locType == 4)) ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return (PLD2.IsLoaded() && (PLD2->locType < 2 || PLD2->locType == 4)) ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //loc2Radius - return CB_SINT32_FIELD; + return SINT32_FIELD; case 19: //month - return CB_SINT8_FIELD; + return SINT8_FIELD; case 20: //day - return CB_SINT8_FIELD; + return SINT8_FIELD; case 21: //date - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //time - return CB_SINT8_FIELD; + return SINT8_FIELD; case 23: //duration - return CB_SINT32_FIELD; + return SINT32_FIELD; case 24: //target1Type - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 25: //target1Id switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (PTDT.IsLoaded() && PTDT->targetType < 2) ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return (PTDT.IsLoaded() && PTDT->targetType < 2) ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 26: //target1CountOrDistance - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //target1Unknown - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //conditions if(ListFieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return CTDA.value[ListIndex]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -221,24 +221,24 @@ uint32_t PACKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -248,266 +248,266 @@ uint32_t PACKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; case eVATSPARAM: if(CTDA.value[ListIndex]->param1 < VATSFUNCTIONSIZE) { switch(VATSFunction_Argument[CTDA.value[ListIndex]->param1]) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //runOnType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 8: //reference switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return CTDA.value[ListIndex]->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 29: //idleAnimFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 30: //idleAnimCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //idleTimer - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 32: //animations switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)IDLA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 33: //unusedIDLB_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return IDLB.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 34: //escortDistance - return CB_UINT32_FIELD; + return UINT32_FIELD; case 35: //combatStyle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 36: //followTriggerRadius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 37: //patrolType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 38: //weaponFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 39: //fireRate - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 40: //fireType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 41: //burstNum - return CB_UINT16_FIELD; + return UINT16_FIELD; case 42: //minShots - return CB_UINT16_FIELD; + return UINT16_FIELD; case 43: //maxShots - return CB_UINT16_FIELD; + return UINT16_FIELD; case 44: //minPause - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 45: //maxPause - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 46: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return PKW3.IsLoaded() ? 4 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 47: //target2Type - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 48: //target2Id switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (PTD2.IsLoaded() && PTD2->targetType != 2) ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return (PTD2.IsLoaded() && PTD2->targetType != 2) ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 49: //target2CountOrDistance - return CB_SINT32_FIELD; + return SINT32_FIELD; case 50: //target2Unknown - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //FOV - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //topic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 53: //dialFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 54: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return PKDD.IsLoaded() ? 4 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 55: //dialType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 56: //dialUnknown switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return PKDD.IsLoaded() ? 4 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 57: //beginIdle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 58: //unused5 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 59: //beginNumRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 60: //beginCompiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 61: //beginLastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 62: //beginScriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 63: //beginScriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 64: //beginCompiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return BeginSCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 65: //beginScriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 66: //beginVars if(ListFieldID == 0) //beginVars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)BeginVARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= BeginVARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 67: //beginReferences if(ListFieldID == 0) //beginReferences { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)BeginSCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= BeginSCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -515,124 +515,124 @@ uint32_t PACKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (BeginSCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD); + return (BeginSCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 68: //beginTopic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 69: //endIdle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 70: //unused6 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 71: //endNumRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 72: //endCompiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 73: //endLastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 74: //endScriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 75: //endScriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 76: //endCompiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return EndSCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 77: //endScriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 78: //endVars if(ListFieldID == 0) //endVars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)EndVARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= EndVARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 79: //endReferences if(ListFieldID == 0) //endReferences { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)EndSCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= EndSCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -640,124 +640,124 @@ uint32_t PACKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (EndSCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD); + return (EndSCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 80: //endTopic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 81: //changeIdle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 82: //unused7 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 83: //changeNumRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 84: //changeCompiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 85: //changeLastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 86: //changeScriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 87: //changeScriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 88: //changeCompiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return ChangeSCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 89: //changeScriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 90: //changeVars if(ListFieldID == 0) //changeVars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)ChangeVARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= ChangeVARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 91: //changeReferences if(ListFieldID == 0) //changeReferences { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ChangeSCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= ChangeSCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -765,23 +765,23 @@ uint32_t PACKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (ChangeSCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD); + return (ChangeSCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 92: //changeTopic - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * PACKRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/PBEARecordAPI.cpp b/src/FalloutNewVegas/Records/API/PBEARecordAPI.cpp index e2d75a9..f6ff7df 100644 --- a/src/FalloutNewVegas/Records/API/PBEARecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/PBEARecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\PBEARecord.h" +#include "../../../Common.h" +#include "../PBEARecord.h" namespace FNV { @@ -45,174 +45,174 @@ uint32_t PBEARecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //xrgd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGD.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //xrgb_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGB.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //idleTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //idle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? 4 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //scriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 18: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 19: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? Patrol->SCDA.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //vars if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Patrol->VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //references if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Patrol->SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -220,206 +220,206 @@ uint32_t PBEARecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Patrol->SCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Patrol->SCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //topic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 25: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 26: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //radius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //health - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //decals if(ListFieldID == 0) //decals { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XDCR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XDCR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 24; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //linkedReference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //startRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //startGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //startBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //endRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //endGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //endBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 38: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 39: //activateParentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 40: //activateParentRefs if(!ActivateParents.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //activateParentRefs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)ActivateParents->XAPR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= ActivateParents->XAPR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //delay - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //prompt - return CB_STRING_FIELD; + return STRING_FIELD; case 42: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //parentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 44: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XESP.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 45: //emittance - return CB_FORMID_FIELD; + return FORMID_FIELD; case 46: //boundRef - return CB_FORMID_FIELD; + return FORMID_FIELD; case 47: //reflrefrs if(ListFieldID == 0) //reflrefrs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XPWR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XPWR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //type - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 48: //ignoredBySandbox - return CB_BOOL_FIELD; + return BOOL_FIELD; case 49: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 50: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 54: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 55: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 56: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * PBEARecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/PCBERecordAPI.cpp b/src/FalloutNewVegas/Records/API/PCBERecordAPI.cpp index c409f10..45a68f8 100644 --- a/src/FalloutNewVegas/Records/API/PCBERecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/PCBERecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\PCBERecord.h" +#include "../../../Common.h" +#include "../PCBERecord.h" namespace FNV { @@ -45,174 +45,174 @@ uint32_t PCBERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //xrgd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGD.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //xrgb_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGB.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //idleTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //idle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? 4 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //scriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 18: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 19: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? Patrol->SCDA.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //vars if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Patrol->VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //references if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Patrol->SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -220,206 +220,206 @@ uint32_t PCBERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Patrol->SCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Patrol->SCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //topic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 25: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 26: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //radius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //health - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //decals if(ListFieldID == 0) //decals { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XDCR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XDCR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 24; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //linkedReference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //startRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //startGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //startBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //endRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //endGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //endBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 38: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 39: //activateParentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 40: //activateParentRefs if(!ActivateParents.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //activateParentRefs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)ActivateParents->XAPR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= ActivateParents->XAPR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //delay - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //prompt - return CB_STRING_FIELD; + return STRING_FIELD; case 42: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //parentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 44: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XESP.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 45: //emittance - return CB_FORMID_FIELD; + return FORMID_FIELD; case 46: //boundRef - return CB_FORMID_FIELD; + return FORMID_FIELD; case 47: //reflrefrs if(ListFieldID == 0) //reflrefrs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XPWR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XPWR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //type - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 48: //ignoredBySandbox - return CB_BOOL_FIELD; + return BOOL_FIELD; case 49: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 50: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 54: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 55: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 56: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * PCBERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/PERKRecordAPI.cpp b/src/FalloutNewVegas/Records/API/PERKRecordAPI.cpp index e1dd3d8..de87039 100644 --- a/src/FalloutNewVegas/Records/API/PERKRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/PERKRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\PERKRecord.h" +#include "../../../Common.h" +#include "../PERKRecord.h" namespace FNV { @@ -45,235 +45,235 @@ uint32_t PERKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 11: //ctda Conditions - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //ctda Conditions - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; case 14: //ctda Conditions - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //ctda Conditions - return CB_UINT32_FIELD; + return UINT32_FIELD; case 18: //ctda Conditions - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; case 19: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 21: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 23: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 24: //prke PRKE ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 25: //prke PRKE ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 26: //prke PRKE ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //prke PRKE ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 28: //prke PRKE ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //prke PRKE ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //prke PRKE ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //prke PRKE ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //prkc Run On - return CB_SINT8_FIELD; + return SINT8_FIELD; case 33: //ctda Conditions - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //ctda Conditions - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; case 36: //ctda Conditions - return CB_UINT32_FIELD; + return UINT32_FIELD; case 37: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 38: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 39: //ctda Conditions - return CB_UINT32_FIELD; + return UINT32_FIELD; case 40: //ctda Conditions - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; case 41: //epft Type - return CB_UINT8_FIELD; + return UINT8_FIELD; case 42: //data Leveled Item - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //epf2 Button Label - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 44: //epf3 Script Flags - return CB_UINT16_FIELD; + return UINT16_FIELD; case 45: //schr_p Basic Script Data switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 46: //schr Basic Script Data - return CB_UINT32_FIELD; + return UINT32_FIELD; case 47: //schr Basic Script Data - return CB_UINT32_FIELD; + return UINT32_FIELD; case 48: //schr Basic Script Data - return CB_UINT32_FIELD; + return UINT32_FIELD; case 49: //schr Basic Script Data - return CB_UINT16_FIELD; + return UINT16_FIELD; case 50: //schr Basic Script Data - return CB_UINT16_FIELD; + return UINT16_FIELD; case 51: //scda_p Compiled Embedded Script switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 0; // SCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 52: //sctx Embedded Script Source - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 53: //slsd Local Variable Data - return CB_UINT32_FIELD; + return UINT32_FIELD; case 54: //slsd_p Local Variable Data switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 55: //slsd Local Variable Data - return CB_UINT8_FIELD; + return UINT8_FIELD; case 56: //slsd_p Local Variable Data switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 57: //scvr Name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 58: //scro Global Reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 59: //scrv Local Variable - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * PERKRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/PFLARecordAPI.cpp b/src/FalloutNewVegas/Records/API/PFLARecordAPI.cpp index 3f2796b..4d5f875 100644 --- a/src/FalloutNewVegas/Records/API/PFLARecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/PFLARecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\PFLARecord.h" +#include "../../../Common.h" +#include "../PFLARecord.h" namespace FNV { @@ -45,174 +45,174 @@ uint32_t PFLARecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //xrgd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGD.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //xrgb_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGB.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //idleTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //idle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? 4 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //scriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 18: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 19: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? Patrol->SCDA.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //vars if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Patrol->VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //references if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Patrol->SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -220,206 +220,206 @@ uint32_t PFLARecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Patrol->SCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Patrol->SCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //topic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 25: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 26: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //radius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //health - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //decals if(ListFieldID == 0) //decals { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XDCR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XDCR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 24; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //linkedReference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //startRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //startGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //startBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //endRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //endGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //endBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 38: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 39: //activateParentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 40: //activateParentRefs if(!ActivateParents.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //activateParentRefs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)ActivateParents->XAPR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= ActivateParents->XAPR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //delay - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //prompt - return CB_STRING_FIELD; + return STRING_FIELD; case 42: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //parentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 44: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XESP.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 45: //emittance - return CB_FORMID_FIELD; + return FORMID_FIELD; case 46: //boundRef - return CB_FORMID_FIELD; + return FORMID_FIELD; case 47: //reflrefrs if(ListFieldID == 0) //reflrefrs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XPWR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XPWR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //type - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 48: //ignoredBySandbox - return CB_BOOL_FIELD; + return BOOL_FIELD; case 49: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 50: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 54: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 55: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 56: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * PFLARecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/PGRERecordAPI.cpp b/src/FalloutNewVegas/Records/API/PGRERecordAPI.cpp index edf069e..e0736b6 100644 --- a/src/FalloutNewVegas/Records/API/PGRERecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/PGRERecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\PGRERecord.h" +#include "../../../Common.h" +#include "../PGRERecord.h" namespace FNV { @@ -45,174 +45,174 @@ uint32_t PGRERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //xrgd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGD.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //xrgb_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGB.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //idleTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //idle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? 4 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //scriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 18: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 19: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? Patrol->SCDA.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //vars if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Patrol->VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //references if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Patrol->SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -220,206 +220,206 @@ uint32_t PGRERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Patrol->SCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Patrol->SCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //topic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 25: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 26: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //radius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //health - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //decals if(ListFieldID == 0) //decals { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XDCR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XDCR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 24; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //linkedReference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //startRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //startGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //startBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //endRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //endGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //endBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 38: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 39: //activateParentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 40: //activateParentRefs if(!ActivateParents.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //activateParentRefs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)ActivateParents->XAPR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= ActivateParents->XAPR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //delay - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //prompt - return CB_STRING_FIELD; + return STRING_FIELD; case 42: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //parentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 44: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XESP.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 45: //emittance - return CB_FORMID_FIELD; + return FORMID_FIELD; case 46: //boundRef - return CB_FORMID_FIELD; + return FORMID_FIELD; case 47: //reflrefrs if(ListFieldID == 0) //reflrefrs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XPWR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XPWR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //type - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 48: //ignoredBySandbox - return CB_BOOL_FIELD; + return BOOL_FIELD; case 49: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 50: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 54: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 55: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 56: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * PGRERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/PMISRecordAPI.cpp b/src/FalloutNewVegas/Records/API/PMISRecordAPI.cpp index 0e36a15..bc0a1ed 100644 --- a/src/FalloutNewVegas/Records/API/PMISRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/PMISRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\PMISRecord.h" +#include "../../../Common.h" +#include "../PMISRecord.h" namespace FNV { @@ -45,174 +45,174 @@ uint32_t PMISRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //xrgd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGD.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //xrgb_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGB.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //idleTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //idle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? 4 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //scriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 18: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 19: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? Patrol->SCDA.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //vars if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Patrol->VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //references if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Patrol->SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -220,206 +220,206 @@ uint32_t PMISRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Patrol->SCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Patrol->SCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //topic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 25: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 26: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //radius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //health - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //decals if(ListFieldID == 0) //decals { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XDCR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XDCR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 24; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //linkedReference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //startRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //startGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //startBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //endRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //endGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //endBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 38: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 39: //activateParentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 40: //activateParentRefs if(!ActivateParents.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //activateParentRefs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)ActivateParents->XAPR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= ActivateParents->XAPR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //delay - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //prompt - return CB_STRING_FIELD; + return STRING_FIELD; case 42: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //parentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 44: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XESP.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 45: //emittance - return CB_FORMID_FIELD; + return FORMID_FIELD; case 46: //boundRef - return CB_FORMID_FIELD; + return FORMID_FIELD; case 47: //reflrefrs if(ListFieldID == 0) //reflrefrs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XPWR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XPWR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //type - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 48: //ignoredBySandbox - return CB_BOOL_FIELD; + return BOOL_FIELD; case 49: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 50: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 54: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 55: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 56: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * PMISRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/PROJRecordAPI.cpp b/src/FalloutNewVegas/Records/API/PROJRecordAPI.cpp index c5d6f91..f8843f8 100644 --- a/src/FalloutNewVegas/Records/API/PROJRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/PROJRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\PROJRecord.h" +#include "../../../Common.h" +#include "../PROJRecord.h" namespace FNV { @@ -45,232 +45,232 @@ uint32_t PROJRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 20: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 21: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 22: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //flags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 25: //projType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 26: //gravity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //speed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //range - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //light - return CB_FORMID_FIELD; + return FORMID_FIELD; case 30: //flash - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //tracerChance - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 32: //altExplProximityTrigger - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 33: //altExplProximityTimer - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 34: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 35: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 36: //flashDuration - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 37: //fadeDuration - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 38: //impactForce - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 39: //soundCountdown - return CB_FORMID_FIELD; + return FORMID_FIELD; case 40: //soundDisable - return CB_FORMID_FIELD; + return FORMID_FIELD; case 41: //defaultWeaponSource - return CB_FORMID_FIELD; + return FORMID_FIELD; case 42: //rotX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 43: //rotY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 44: //rotZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 45: //bouncyMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 46: //modelPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 47: //nam2_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NAM2.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 48: //soundLevel - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * PROJRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -513,7 +513,7 @@ bool PROJRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/PWATRecordAPI.cpp b/src/FalloutNewVegas/Records/API/PWATRecordAPI.cpp index 507a94a..1f094fb 100644 --- a/src/FalloutNewVegas/Records/API/PWATRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/PWATRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\PWATRecord.h" +#include "../../../Common.h" +#include "../PWATRecord.h" namespace FNV { @@ -45,104 +45,104 @@ uint32_t PWATRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 18: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 19: //water - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * PWATRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -290,7 +290,7 @@ bool PWATRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/QUSTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/QUSTRecordAPI.cpp index 7745bd7..b8c988b 100644 --- a/src/FalloutNewVegas/Records/API/QUSTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/QUSTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\QUSTRecord.h" +#include "../../../Common.h" +#include "../QUSTRecord.h" namespace FNV { @@ -45,111 +45,111 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 11: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //priority - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //delay - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //conditions if(ListFieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return CTDA.value[ListIndex]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -159,24 +159,24 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -186,146 +186,146 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; case eVATSPARAM: if(CTDA.value[ListIndex]->param1 < VATSFUNCTIONSIZE) { switch(VATSFunction_Argument[CTDA.value[ListIndex]->param1]) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //runOnType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 8: //reference switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return CTDA.value[ListIndex]->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //stages if(ListFieldID == 0) //stages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //stage - return CB_SINT16_FIELD; + return SINT16_FIELD; case 2: //entries if(ListX2FieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Stages.value[ListIndex]->Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Stages.value[ListIndex]->Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 2: //conditions if(ListX3FieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX3Index >= Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX3FieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->ifunc); @@ -335,24 +335,24 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->ifunc); @@ -362,153 +362,153 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; case eVATSPARAM: if(Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->param1 < VATSFUNCTIONSIZE) { switch(VATSFunction_Argument[Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->param1]) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //runOnType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 8: //reference switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //text - return CB_STRING_FIELD; + return STRING_FIELD; case 4: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 6: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 7: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //scriptType - return CB_UINT16_FIELD; + return UINT16_FIELD; case 9: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 10: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Stages.value[ListIndex]->Entries.value[ListX2Index]->SCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 12: //vars if(ListX3FieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Stages.value[ListIndex]->Entries.value[ListX2Index]->VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX3Index >= Stages.value[ListIndex]->Entries.value[ListX2Index]->VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX3FieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //references if(ListX3FieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Stages.value[ListIndex]->Entries.value[ListX2Index]->SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX3Index >= Stages.value[ListIndex]->Entries.value[ListX2Index]->SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX3FieldID) { @@ -516,137 +516,137 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (Stages.value[ListIndex]->Entries.value[ListX2Index]->SCR_.value[ListX3Index]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD); + return (Stages.value[ListIndex]->Entries.value[ListX2Index]->SCR_.value[ListX3Index]->isSCRO ? FORMID_FIELD : UINT32_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //nextQuest - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //objectives if(ListFieldID == 0) //objectives { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Objectives.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Objectives.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //objective - return CB_SINT32_FIELD; + return SINT32_FIELD; case 2: //text - return CB_STRING_FIELD; + return STRING_FIELD; case 3: //targets if(ListX2FieldID == 0) //targets { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Objectives.value[ListIndex]->Targets.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX2Index >= Objectives.value[ListIndex]->Targets.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //targetId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //conditions if(ListX3FieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Objectives.value[ListIndex]->Targets.value[ListX2Index]->CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX3Index >= Objectives.value[ListIndex]->Targets.value[ListX2Index]->CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX3FieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return Objectives.value[ListIndex]->Targets.value[ListX2Index]->CTDA.value[ListX3Index]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return Objectives.value[ListIndex]->Targets.value[ListX2Index]->CTDA.value[ListX3Index]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Objectives.value[ListIndex]->Targets.value[ListX2Index]->CTDA.value[ListX3Index]->ifunc); @@ -656,24 +656,24 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Objectives.value[ListIndex]->Targets.value[ListX2Index]->CTDA.value[ListX3Index]->ifunc); @@ -683,63 +683,63 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; case eVATSPARAM: if(Objectives.value[ListIndex]->Targets.value[ListX2Index]->CTDA.value[ListX3Index]->param1 < VATSFUNCTIONSIZE) { switch(VATSFunction_Argument[Objectives.value[ListIndex]->Targets.value[ListX2Index]->CTDA.value[ListX3Index]->param1]) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //runOnType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 8: //reference switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Objectives.value[ListIndex]->Targets.value[ListX2Index]->CTDA.value[ListX3Index]->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Objectives.value[ListIndex]->Targets.value[ListX2Index]->CTDA.value[ListX3Index]->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * QUSTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/RACERecordAPI.cpp b/src/FalloutNewVegas/Records/API/RACERecordAPI.cpp index 1d82e45..5300778 100644 --- a/src/FalloutNewVegas/Records/API/RACERecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/RACERecordAPI.cpp @@ -1,5437 +1,5437 @@ /* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is CBash code. - * - * The Initial Developer of the Original Code is - * Waruddar. - * Portions created by the Initial Developer are Copyright (C) 2010 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\RACERecord.h" +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../../Common.h" +#include "../RACERecord.h" namespace FNV { -uint32_t RACERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) - { - switch(FieldID) - { - case 0: //recType - return GetType(); - case 1: //flags1 - return CB_UINT32_FLAG_FIELD; - case 2: //fid - return CB_FORMID_FIELD; - case 3: //versionControl1 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 4; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 4: //eid - return CB_ISTRING_FIELD; - case 5: //formVersion - return CB_UINT16_FIELD; - case 6: //versionControl2 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 7: //full - return CB_STRING_FIELD; - case 8: //description - return CB_STRING_FIELD; - case 9: //relations - if(ListFieldID == 0) //relations - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)XNAM.value.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= XNAM.value.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //faction - return CB_FORMID_FIELD; - case 2: //mod - return CB_SINT32_FIELD; - case 3: //groupReactionType - return CB_UINT32_TYPE_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 10: //skill1 - return CB_SINT8_FIELD; - case 11: //skill1Boost - return CB_SINT8_FIELD; - case 12: //skill2 - return CB_SINT8_FIELD; - case 13: //skill2Boost - return CB_SINT8_FIELD; - case 14: //skill3 - return CB_SINT8_FIELD; - case 15: //skill3Boost - return CB_SINT8_FIELD; - case 16: //skill4 - return CB_SINT8_FIELD; - case 17: //skill4Boost - return CB_SINT8_FIELD; - case 18: //skill5 - return CB_SINT8_FIELD; - case 19: //skill5Boost - return CB_SINT8_FIELD; - case 20: //skill6 - return CB_SINT8_FIELD; - case 21: //skill6Boost - return CB_SINT8_FIELD; - case 22: //skill7 - return CB_SINT8_FIELD; - case 23: //skill7Boost - return CB_SINT8_FIELD; - case 24: //unused1 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 25: //maleHeight - return CB_FLOAT32_FIELD; - case 26: //femaleHeight - return CB_FLOAT32_FIELD; - case 27: //maleWeight - return CB_FLOAT32_FIELD; - case 28: //femaleWeight - return CB_FLOAT32_FIELD; - case 29: //flags - return CB_UINT32_FLAG_FIELD; - case 30: //older - return CB_FORMID_FIELD; - case 31: //younger - return CB_FORMID_FIELD; - case 32: //maleVoice - return CB_FORMID_FIELD; - case 33: //femaleVoice - return CB_FORMID_FIELD; - case 34: //defaultHairMale - return CB_FORMID_FIELD; - case 35: //defaultHairFemale - return CB_FORMID_FIELD; - case 36: //defaultHairMaleColor - return CB_UINT8_FIELD; - case 37: //defaultHairFemaleColor - return CB_UINT8_FIELD; - case 38: //mainClamp - return CB_FLOAT32_FIELD; - case 39: //faceClamp - return CB_FLOAT32_FIELD; - case 40: //attr_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return ATTR.GetSize(); - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 41: //maleHead_modPath - return CB_ISTRING_FIELD; - case 42: //maleHead_modb - return CB_FLOAT32_FIELD; - case 43: //maleHead_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MHMOD0.MODL.IsLoaded() ? MHMOD0.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 44: //maleHead_altTextures - if(!MHMOD0.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MHMOD0.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MHMOD0.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 45: //maleHead_modelFlags - return CB_UINT8_FLAG_FIELD; - case 46: //maleHead_iconPath - return CB_ISTRING_FIELD; - case 47: //maleHead_smallIconPath - return CB_ISTRING_FIELD; - case 48: //maleEars_modPath - return CB_ISTRING_FIELD; - case 49: //maleEars_modb - return CB_FLOAT32_FIELD; - case 50: //maleEars_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MHMOD1.MODL.IsLoaded() ? MHMOD1.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 51: //maleEars_altTextures - if(!MHMOD1.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MHMOD1.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MHMOD1.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 52: //maleEars_modelFlags - return CB_UINT8_FLAG_FIELD; - case 53: //maleEars_iconPath - return CB_ISTRING_FIELD; - case 54: //maleEars_smallIconPath - return CB_ISTRING_FIELD; - case 55: //maleMouth_modPath - return CB_ISTRING_FIELD; - case 56: //maleMouth_modb - return CB_FLOAT32_FIELD; - case 57: //maleMouth_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MHMOD2.MODL.IsLoaded() ? MHMOD2.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 58: //maleMouth_altTextures - if(!MHMOD2.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MHMOD2.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MHMOD2.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 59: //maleMouth_modelFlags - return CB_UINT8_FLAG_FIELD; - case 60: //maleMouth_iconPath - return CB_ISTRING_FIELD; - case 61: //maleMouth_smallIconPath - return CB_ISTRING_FIELD; - case 62: //maleTeethLower_modPath - return CB_ISTRING_FIELD; - case 63: //maleTeethLower_modb - return CB_FLOAT32_FIELD; - case 64: //maleTeethLower_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MHMOD3.MODL.IsLoaded() ? MHMOD3.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 65: //maleTeethLower_altTextures - if(!MHMOD3.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MHMOD3.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MHMOD3.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 66: //maleTeethLower_modelFlags - return CB_UINT8_FLAG_FIELD; - case 67: //maleTeethLower_iconPath - return CB_ISTRING_FIELD; - case 68: //maleTeethLower_smallIconPath - return CB_ISTRING_FIELD; - case 69: //maleTeethUpper_modPath - return CB_ISTRING_FIELD; - case 70: //maleTeethUpper_modb - return CB_FLOAT32_FIELD; - case 71: //maleTeethUpper_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MHMOD4.MODL.IsLoaded() ? MHMOD4.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 72: //maleTeethUpper_altTextures - if(!MHMOD4.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MHMOD4.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MHMOD4.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 73: //maleTeethUpper_modelFlags - return CB_UINT8_FLAG_FIELD; - case 74: //maleTeethUpper_iconPath - return CB_ISTRING_FIELD; - case 75: //maleTeethUpper_smallIconPath - return CB_ISTRING_FIELD; - case 76: //maleTongue_modPath - return CB_ISTRING_FIELD; - case 77: //maleTongue_modb - return CB_FLOAT32_FIELD; - case 78: //maleTongue_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MHMOD5.MODL.IsLoaded() ? MHMOD5.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 79: //maleTongue_altTextures - if(!MHMOD5.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MHMOD5.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MHMOD5.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 80: //maleTongue_modelFlags - return CB_UINT8_FLAG_FIELD; - case 81: //maleTongue_iconPath - return CB_ISTRING_FIELD; - case 82: //maleTongue_smallIconPath - return CB_ISTRING_FIELD; - case 83: //maleLeftEye_modPath - return CB_ISTRING_FIELD; - case 84: //maleLeftEye_modb - return CB_FLOAT32_FIELD; - case 85: //maleLeftEye_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MHMOD6.MODL.IsLoaded() ? MHMOD6.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 86: //maleLeftEye_altTextures - if(!MHMOD6.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MHMOD6.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MHMOD6.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 87: //maleLeftEye_modelFlags - return CB_UINT8_FLAG_FIELD; - case 88: //maleLeftEye_iconPath - return CB_ISTRING_FIELD; - case 89: //maleLeftEye_smallIconPath - return CB_ISTRING_FIELD; - case 90: //maleRightEye_modPath - return CB_ISTRING_FIELD; - case 91: //maleRightEye_modb - return CB_FLOAT32_FIELD; - case 92: //maleRightEye_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MHMOD7.MODL.IsLoaded() ? MHMOD7.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 93: //maleRightEye_altTextures - if(!MHMOD7.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MHMOD7.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MHMOD7.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 94: //maleRightEye_modelFlags - return CB_UINT8_FLAG_FIELD; - case 95: //maleRightEye_iconPath - return CB_ISTRING_FIELD; - case 96: //maleRightEye_smallIconPath - return CB_ISTRING_FIELD; - case 97: //femaleHead_modPath - return CB_ISTRING_FIELD; - case 98: //femaleHead_modb - return CB_FLOAT32_FIELD; - case 99: //femaleHead_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FHMOD0.MODL.IsLoaded() ? FHMOD0.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 100: //femaleHead_altTextures - if(!FHMOD0.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FHMOD0.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FHMOD0.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 101: //femaleHead_modelFlags - return CB_UINT8_FLAG_FIELD; - case 102: //femaleHead_iconPath - return CB_ISTRING_FIELD; - case 103: //femaleHead_smallIconPath - return CB_ISTRING_FIELD; - case 104: //femaleEars_modPath - return CB_ISTRING_FIELD; - case 105: //femaleEars_modb - return CB_FLOAT32_FIELD; - case 106: //femaleEars_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FHMOD1.MODL.IsLoaded() ? FHMOD1.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 107: //femaleEars_altTextures - if(!FHMOD1.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FHMOD1.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FHMOD1.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 108: //femaleEars_modelFlags - return CB_UINT8_FLAG_FIELD; - case 109: //femaleEars_iconPath - return CB_ISTRING_FIELD; - case 110: //femaleEars_smallIconPath - return CB_ISTRING_FIELD; - case 111: //femaleMouth_modPath - return CB_ISTRING_FIELD; - case 112: //femaleMouth_modb - return CB_FLOAT32_FIELD; - case 113: //femaleMouth_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FHMOD2.MODL.IsLoaded() ? FHMOD2.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 114: //femaleMouth_altTextures - if(!FHMOD2.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FHMOD2.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FHMOD2.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 115: //femaleMouth_modelFlags - return CB_UINT8_FLAG_FIELD; - case 116: //femaleMouth_iconPath - return CB_ISTRING_FIELD; - case 117: //femaleMouth_smallIconPath - return CB_ISTRING_FIELD; - case 118: //femaleTeethLower_modPath - return CB_ISTRING_FIELD; - case 119: //femaleTeethLower_modb - return CB_FLOAT32_FIELD; - case 120: //femaleTeethLower_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FHMOD3.MODL.IsLoaded() ? FHMOD3.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 121: //femaleTeethLower_altTextures - if(!FHMOD3.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FHMOD3.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FHMOD3.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 122: //femaleTeethLower_modelFlags - return CB_UINT8_FLAG_FIELD; - case 123: //femaleTeethLower_iconPath - return CB_ISTRING_FIELD; - case 124: //femaleTeethLower_smallIconPath - return CB_ISTRING_FIELD; - case 125: //femaleTeethUpper_modPath - return CB_ISTRING_FIELD; - case 126: //femaleTeethUpper_modb - return CB_FLOAT32_FIELD; - case 127: //femaleTeethUpper_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FHMOD4.MODL.IsLoaded() ? FHMOD4.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 128: //femaleTeethUpper_altTextures - if(!FHMOD4.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FHMOD4.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FHMOD4.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 129: //femaleTeethUpper_modelFlags - return CB_UINT8_FLAG_FIELD; - case 130: //femaleTeethUpper_iconPath - return CB_ISTRING_FIELD; - case 131: //femaleTeethUpper_smallIconPath - return CB_ISTRING_FIELD; - case 132: //femaleTongue_modPath - return CB_ISTRING_FIELD; - case 133: //femaleTongue_modb - return CB_FLOAT32_FIELD; - case 134: //femaleTongue_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FHMOD5.MODL.IsLoaded() ? FHMOD5.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 135: //femaleTongue_altTextures - if(!FHMOD5.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FHMOD5.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FHMOD5.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 136: //femaleTongue_modelFlags - return CB_UINT8_FLAG_FIELD; - case 137: //femaleTongue_iconPath - return CB_ISTRING_FIELD; - case 138: //femaleTongue_smallIconPath - return CB_ISTRING_FIELD; - case 139: //femaleLeftEye_modPath - return CB_ISTRING_FIELD; - case 140: //femaleLeftEye_modb - return CB_FLOAT32_FIELD; - case 141: //femaleLeftEye_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FHMOD6.MODL.IsLoaded() ? FHMOD6.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 142: //femaleLeftEye_altTextures - if(!FHMOD6.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FHMOD6.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FHMOD6.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 143: //femaleLeftEye_modelFlags - return CB_UINT8_FLAG_FIELD; - case 144: //femaleLeftEye_iconPath - return CB_ISTRING_FIELD; - case 145: //femaleLeftEye_smallIconPath - return CB_ISTRING_FIELD; - case 146: //femaleRightEye_modPath - return CB_ISTRING_FIELD; - case 147: //femaleRightEye_modb - return CB_FLOAT32_FIELD; - case 148: //femaleRightEye_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FHMOD7.MODL.IsLoaded() ? FHMOD7.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 149: //femaleRightEye_altTextures - if(!FHMOD7.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FHMOD7.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FHMOD7.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 150: //femaleRightEye_modelFlags - return CB_UINT8_FLAG_FIELD; - case 151: //femaleRightEye_iconPath - return CB_ISTRING_FIELD; - case 152: //femaleRightEye_smallIconPath - return CB_ISTRING_FIELD; - case 153: //maleUpperBody_modPath - return CB_ISTRING_FIELD; - case 154: //maleUpperBody_modb - return CB_FLOAT32_FIELD; - case 155: //maleUpperBody_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MBMOD0.MODL.IsLoaded() ? MBMOD0.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 156: //maleUpperBody_altTextures - if(!MBMOD0.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MBMOD0.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MBMOD0.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 157: //maleUpperBody_modelFlags - return CB_UINT8_FLAG_FIELD; - case 158: //maleUpperBody_iconPath - return CB_ISTRING_FIELD; - case 159: //maleUpperBody_smallIconPath - return CB_ISTRING_FIELD; - case 160: //maleLeftHand_modPath - return CB_ISTRING_FIELD; - case 161: //maleLeftHand_modb - return CB_FLOAT32_FIELD; - case 162: //maleLeftHand_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MBMOD1.MODL.IsLoaded() ? MBMOD1.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 163: //maleLeftHand_altTextures - if(!MBMOD1.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MBMOD1.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MBMOD1.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 164: //maleLeftHand_modelFlags - return CB_UINT8_FLAG_FIELD; - case 165: //maleLeftHand_iconPath - return CB_ISTRING_FIELD; - case 166: //maleLeftHand_smallIconPath - return CB_ISTRING_FIELD; - case 167: //maleRightHand_modPath - return CB_ISTRING_FIELD; - case 168: //maleRightHand_modb - return CB_FLOAT32_FIELD; - case 169: //maleRightHand_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MBMOD2.MODL.IsLoaded() ? MBMOD2.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 170: //maleRightHand_altTextures - if(!MBMOD2.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MBMOD2.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MBMOD2.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 171: //maleRightHand_modelFlags - return CB_UINT8_FLAG_FIELD; - case 172: //maleRightHand_iconPath - return CB_ISTRING_FIELD; - case 173: //maleRightHand_smallIconPath - return CB_ISTRING_FIELD; - case 174: //maleUpperBodyTexture_modPath - return CB_ISTRING_FIELD; - case 175: //maleUpperBodyTexture_modb - return CB_FLOAT32_FIELD; - case 176: //maleUpperBodyTexture_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MBMOD3.MODL.IsLoaded() ? MBMOD3.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 177: //maleUpperBodyTexture_altTextures - if(!MBMOD3.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MBMOD3.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= MBMOD3.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 178: //maleUpperBodyTexture_modelFlags - return CB_UINT8_FLAG_FIELD; - case 179: //maleUpperBodyTexture_iconPath - return CB_ISTRING_FIELD; - case 180: //maleUpperBodyTexture_smallIconPath - return CB_ISTRING_FIELD; - case 181: //femaleUpperBody_modPath - return CB_ISTRING_FIELD; - case 182: //femaleUpperBody_modb - return CB_FLOAT32_FIELD; - case 183: //femaleUpperBody_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FBMOD0.MODL.IsLoaded() ? FBMOD0.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 184: //femaleUpperBody_altTextures - if(!FBMOD0.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FBMOD0.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FBMOD0.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 185: //femaleUpperBody_modelFlags - return CB_UINT8_FLAG_FIELD; - case 186: //femaleUpperBody_iconPath - return CB_ISTRING_FIELD; - case 187: //femaleUpperBody_smallIconPath - return CB_ISTRING_FIELD; - case 188: //femaleLeftHand_modPath - return CB_ISTRING_FIELD; - case 189: //femaleLeftHand_modb - return CB_FLOAT32_FIELD; - case 190: //femaleLeftHand_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FBMOD1.MODL.IsLoaded() ? FBMOD1.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 191: //femaleLeftHand_altTextures - if(!FBMOD1.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FBMOD1.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FBMOD1.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 192: //femaleLeftHand_modelFlags - return CB_UINT8_FLAG_FIELD; - case 193: //femaleLeftHand_iconPath - return CB_ISTRING_FIELD; - case 194: //femaleLeftHand_smallIconPath - return CB_ISTRING_FIELD; - case 195: //femaleRightHand_modPath - return CB_ISTRING_FIELD; - case 196: //femaleRightHand_modb - return CB_FLOAT32_FIELD; - case 197: //femaleRightHand_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FBMOD2.MODL.IsLoaded() ? FBMOD2.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 198: //femaleRightHand_altTextures - if(!FBMOD2.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FBMOD2.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FBMOD2.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 199: //femaleRightHand_modelFlags - return CB_UINT8_FLAG_FIELD; - case 200: //femaleRightHand_iconPath - return CB_ISTRING_FIELD; - case 201: //femaleRightHand_smallIconPath - return CB_ISTRING_FIELD; - case 202: //femaleUpperBodyTexture_modPath - return CB_ISTRING_FIELD; - case 203: //femaleUpperBodyTexture_modb - return CB_FLOAT32_FIELD; - case 204: //femaleUpperBodyTexture_modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FBMOD3.MODL.IsLoaded() ? FBMOD3.MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 205: //femaleUpperBodyTexture_altTextures - if(!FBMOD3.MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if(ListFieldID == 0) //altTextures - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)FBMOD3.MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if(ListIndex >= FBMOD3.MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch(ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 206: //femaleUpperBodyTexture_modelFlags - return CB_UINT8_FLAG_FIELD; - case 207: //femaleUpperBodyTexture_iconPath - return CB_ISTRING_FIELD; - case 208: //femaleUpperBodyTexture_smallIconPath - return CB_ISTRING_FIELD; - case 209: //hairs - switch(WhichAttribute) - { - case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; - case 1: //fieldSize - return (uint32_t)HNAM.value.size(); - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 210: //eyes - switch(WhichAttribute) - { - case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; - case 1: //fieldSize - return (uint32_t)ENAM.value.size(); - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 211: //maleFggs_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MaleFGGS.IsLoaded() ? 200 : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 212: //maleFgga_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MaleFGGA.IsLoaded() ? 120 : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 213: //maleFgts_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MaleFGTS.IsLoaded() ? 200 : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 214: //maleSnam_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 215: //femaleFggs_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FemaleFGGS.IsLoaded() ? 200 : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 216: //femaleFgga_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FemaleFGGA.IsLoaded() ? 120 : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 217: //femaleFgts_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return FemaleFGTS.IsLoaded() ? 200 : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 218: //femaleSnam_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - } - -void * RACERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) - { - switch(FieldID) - { - case 1: //flags1 - return &flags; - case 2: //fid - return &formID; - case 3: //versionControl1 - *FieldValues = &flagsUnk; - return NULL; - case 4: //eid - return EDID.value; - case 5: //formVersion - return &formVersion; - case 6: //versionControl2 - *FieldValues = &versionControl2[0]; - return NULL; - case 7: //full - return FULL.value; - case 8: //description - return DESC.value; - case 9: //relations - if(ListIndex >= XNAM.value.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //faction - return &XNAM.value[ListIndex]->faction; - case 2: //mod - return &XNAM.value[ListIndex]->mod; - case 3: //groupReactionType - return &XNAM.value[ListIndex]->groupReactionType; - default: - return NULL; - } - return NULL; - case 10: //skill1 - return &DATA.value.skills[0].value; - case 11: //skill1Boost - return &DATA.value.skills[0].boost; - case 12: //skill2 - return &DATA.value.skills[1].value; - case 13: //skill2Boost - return &DATA.value.skills[1].boost; - case 14: //skill3 - return &DATA.value.skills[2].value; - case 15: //skill3Boost - return &DATA.value.skills[2].boost; - case 16: //skill4 - return &DATA.value.skills[3].value; - case 17: //skill4Boost - return &DATA.value.skills[3].boost; - case 18: //skill5 - return &DATA.value.skills[4].value; - case 19: //skill5Boost - return &DATA.value.skills[4].boost; - case 20: //skill6 - return &DATA.value.skills[5].value; - case 21: //skill6Boost - return &DATA.value.skills[5].boost; - case 22: //skill7 - return &DATA.value.skills[6].value; - case 23: //skill7Boost - return &DATA.value.skills[6].boost; - case 24: //unused1 - *FieldValues = &DATA.value.unused1[0]; - return NULL; - case 25: //maleHeight - return &DATA.value.maleHeight; - case 26: //femaleHeight - return &DATA.value.femaleHeight; - case 27: //maleWeight - return &DATA.value.maleWeight; - case 28: //femaleWeight - return &DATA.value.femaleWeight; - case 29: //flags - return &DATA.value.flags; - case 30: //older - return ONAM.IsLoaded() ? &ONAM.value : NULL; - case 31: //younger - return YNAM.IsLoaded() ? &YNAM.value : NULL; - case 32: //maleVoice - return VTCK.IsLoaded() ? &VTCK.value.maleVoice : NULL; - case 33: //femaleVoice - return VTCK.IsLoaded() ? &VTCK.value.femaleVoice : NULL; - case 34: //defaultHairMale - return DNAM.IsLoaded() ? &DNAM.value.defaultHairMale : NULL; - case 35: //defaultHairFemale - return DNAM.IsLoaded() ? &DNAM.value.defaultHairFemale : NULL; - case 36: //defaultHairMaleColor - return CNAM.IsLoaded() ? &CNAM.value.defaultHairMale : NULL; - case 37: //defaultHairFemaleColor - return CNAM.IsLoaded() ? &CNAM.value.defaultHairFemale : NULL; - case 38: //mainClamp - return PNAM.IsLoaded() ? &PNAM.value : NULL; - case 39: //faceClamp - return UNAM.IsLoaded() ? &UNAM.value : NULL; - case 40: //attr_p - *FieldValues = ATTR.value; - return NULL; - case 41: //maleHead_modPath - return MHMOD0.MODL.IsLoaded() ? MHMOD0.MODL->MODL.value : NULL; - case 42: //maleHead_modb - return MHMOD0.MODL.IsLoaded() ? (MHMOD0.MODL->MODB.IsLoaded() ? &MHMOD0.MODL->MODB.value : NULL) : NULL; - case 43: //maleHead_modt_p - *FieldValues = MHMOD0.MODL.IsLoaded() ? MHMOD0.MODL->MODT.value : NULL; - return NULL; - case 44: //maleHead_altTextures - if(!MHMOD0.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MHMOD0.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MHMOD0.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MHMOD0.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MHMOD0.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 45: //maleHead_modelFlags - return MHMOD0.MODL.IsLoaded() ? (MHMOD0.MODL->MODD.IsLoaded() ? &MHMOD0.MODL->MODD.value : NULL) : NULL; - case 46: //maleHead_iconPath - return MHMOD0.ICON.value; - case 47: //maleHead_smallIconPath - return MHMOD0.MICO.value; - case 48: //maleEars_modPath - return MHMOD1.MODL.IsLoaded() ? MHMOD1.MODL->MODL.value : NULL; - case 49: //maleEars_modb - return MHMOD1.MODL.IsLoaded() ? (MHMOD1.MODL->MODB.IsLoaded() ? &MHMOD1.MODL->MODB.value : NULL) : NULL; - case 50: //maleEars_modt_p - *FieldValues = MHMOD1.MODL.IsLoaded() ? MHMOD1.MODL->MODT.value : NULL; - return NULL; - case 51: //maleEars_altTextures - if(!MHMOD1.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MHMOD1.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MHMOD1.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MHMOD1.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MHMOD1.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 52: //maleEars_modelFlags - return MHMOD1.MODL.IsLoaded() ? (MHMOD1.MODL->MODD.IsLoaded() ? &MHMOD1.MODL->MODD.value : NULL) : NULL; - case 53: //maleEars_iconPath - return MHMOD1.ICON.value; - case 54: //maleEars_smallIconPath - return MHMOD1.MICO.value; - case 55: //maleMouth_modPath - return MHMOD2.MODL.IsLoaded() ? MHMOD2.MODL->MODL.value : NULL; - case 56: //maleMouth_modb - return MHMOD2.MODL.IsLoaded() ? (MHMOD2.MODL->MODB.IsLoaded() ? &MHMOD2.MODL->MODB.value : NULL) : NULL; - case 57: //maleMouth_modt_p - *FieldValues = MHMOD2.MODL.IsLoaded() ? MHMOD2.MODL->MODT.value : NULL; - return NULL; - case 58: //maleMouth_altTextures - if(!MHMOD2.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MHMOD2.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MHMOD2.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MHMOD2.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MHMOD2.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 59: //maleMouth_modelFlags - return MHMOD2.MODL.IsLoaded() ? (MHMOD2.MODL->MODD.IsLoaded() ? &MHMOD2.MODL->MODD.value : NULL) : NULL; - case 60: //maleMouth_iconPath - return MHMOD2.ICON.value; - case 61: //maleMouth_smallIconPath - return MHMOD2.MICO.value; - case 62: //maleTeethLower_modPath - return MHMOD3.MODL.IsLoaded() ? MHMOD3.MODL->MODL.value : NULL; - case 63: //maleTeethLower_modb - return MHMOD3.MODL.IsLoaded() ? (MHMOD3.MODL->MODB.IsLoaded() ? &MHMOD3.MODL->MODB.value : NULL) : NULL; - case 64: //maleTeethLower_modt_p - *FieldValues = MHMOD3.MODL.IsLoaded() ? MHMOD3.MODL->MODT.value : NULL; - return NULL; - case 65: //maleTeethLower_altTextures - if(!MHMOD3.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MHMOD3.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MHMOD3.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MHMOD3.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MHMOD3.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 66: //maleTeethLower_modelFlags - return MHMOD3.MODL.IsLoaded() ? (MHMOD3.MODL->MODD.IsLoaded() ? &MHMOD3.MODL->MODD.value : NULL) : NULL; - case 67: //maleTeethLower_iconPath - return MHMOD3.ICON.value; - case 68: //maleTeethLower_smallIconPath - return MHMOD3.MICO.value; - case 69: //maleTeethUpper_modPath - return MHMOD4.MODL.IsLoaded() ? MHMOD4.MODL->MODL.value : NULL; - case 70: //maleTeethUpper_modb - return MHMOD4.MODL.IsLoaded() ? (MHMOD4.MODL->MODB.IsLoaded() ? &MHMOD4.MODL->MODB.value : NULL) : NULL; - case 71: //maleTeethUpper_modt_p - *FieldValues = MHMOD4.MODL.IsLoaded() ? MHMOD4.MODL->MODT.value : NULL; - return NULL; - case 72: //maleTeethUpper_altTextures - if(!MHMOD4.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MHMOD4.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MHMOD4.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MHMOD4.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MHMOD4.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 73: //maleTeethUpper_modelFlags - return MHMOD4.MODL.IsLoaded() ? (MHMOD4.MODL->MODD.IsLoaded() ? &MHMOD4.MODL->MODD.value : NULL) : NULL; - case 74: //maleTeethUpper_iconPath - return MHMOD4.ICON.value; - case 75: //maleTeethUpper_smallIconPath - return MHMOD4.MICO.value; - case 76: //maleTongue_modPath - return MHMOD5.MODL.IsLoaded() ? MHMOD5.MODL->MODL.value : NULL; - case 77: //maleTongue_modb - return MHMOD5.MODL.IsLoaded() ? (MHMOD5.MODL->MODB.IsLoaded() ? &MHMOD5.MODL->MODB.value : NULL) : NULL; - case 78: //maleTongue_modt_p - *FieldValues = MHMOD5.MODL.IsLoaded() ? MHMOD5.MODL->MODT.value : NULL; - return NULL; - case 79: //maleTongue_altTextures - if(!MHMOD5.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MHMOD5.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MHMOD5.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MHMOD5.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MHMOD5.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 80: //maleTongue_modelFlags - return MHMOD5.MODL.IsLoaded() ? (MHMOD5.MODL->MODD.IsLoaded() ? &MHMOD5.MODL->MODD.value : NULL) : NULL; - case 81: //maleTongue_iconPath - return MHMOD5.ICON.value; - case 82: //maleTongue_smallIconPath - return MHMOD5.MICO.value; - case 83: //maleLeftEye_modPath - return MHMOD6.MODL.IsLoaded() ? MHMOD6.MODL->MODL.value : NULL; - case 84: //maleLeftEye_modb - return MHMOD6.MODL.IsLoaded() ? (MHMOD6.MODL->MODB.IsLoaded() ? &MHMOD6.MODL->MODB.value : NULL) : NULL; - case 85: //maleLeftEye_modt_p - *FieldValues = MHMOD6.MODL.IsLoaded() ? MHMOD6.MODL->MODT.value : NULL; - return NULL; - case 86: //maleLeftEye_altTextures - if(!MHMOD6.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MHMOD6.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MHMOD6.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MHMOD6.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MHMOD6.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 87: //maleLeftEye_modelFlags - return MHMOD6.MODL.IsLoaded() ? (MHMOD6.MODL->MODD.IsLoaded() ? &MHMOD6.MODL->MODD.value : NULL) : NULL; - case 88: //maleLeftEye_iconPath - return MHMOD6.ICON.value; - case 89: //maleLeftEye_smallIconPath - return MHMOD6.MICO.value; - case 90: //maleRightEye_modPath - return MHMOD7.MODL.IsLoaded() ? MHMOD7.MODL->MODL.value : NULL; - case 91: //maleRightEye_modb - return MHMOD7.MODL.IsLoaded() ? (MHMOD7.MODL->MODB.IsLoaded() ? &MHMOD7.MODL->MODB.value : NULL) : NULL; - case 92: //maleRightEye_modt_p - *FieldValues = MHMOD7.MODL.IsLoaded() ? MHMOD7.MODL->MODT.value : NULL; - return NULL; - case 93: //maleRightEye_altTextures - if(!MHMOD7.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MHMOD7.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MHMOD7.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MHMOD7.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MHMOD7.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 94: //maleRightEye_modelFlags - return MHMOD7.MODL.IsLoaded() ? (MHMOD7.MODL->MODD.IsLoaded() ? &MHMOD7.MODL->MODD.value : NULL) : NULL; - case 95: //maleRightEye_iconPath - return MHMOD7.ICON.value; - case 96: //maleRightEye_smallIconPath - return MHMOD7.MICO.value; - case 97: //femaleHead_modPath - return FHMOD0.MODL.IsLoaded() ? FHMOD0.MODL->MODL.value : NULL; - case 98: //femaleHead_modb - return FHMOD0.MODL.IsLoaded() ? (FHMOD0.MODL->MODB.IsLoaded() ? &FHMOD0.MODL->MODB.value : NULL) : NULL; - case 99: //femaleHead_modt_p - *FieldValues = FHMOD0.MODL.IsLoaded() ? FHMOD0.MODL->MODT.value : NULL; - return NULL; - case 100: //femaleHead_altTextures - if(!FHMOD0.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FHMOD0.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FHMOD0.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FHMOD0.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FHMOD0.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 101: //femaleHead_modelFlags - return FHMOD0.MODL.IsLoaded() ? (FHMOD0.MODL->MODD.IsLoaded() ? &FHMOD0.MODL->MODD.value : NULL) : NULL; - case 102: //femaleHead_iconPath - return FHMOD0.ICON.value; - case 103: //femaleHead_smallIconPath - return FHMOD0.MICO.value; - case 104: //femaleEars_modPath - return FHMOD1.MODL.IsLoaded() ? FHMOD1.MODL->MODL.value : NULL; - case 105: //femaleEars_modb - return FHMOD1.MODL.IsLoaded() ? (FHMOD1.MODL->MODB.IsLoaded() ? &FHMOD1.MODL->MODB.value : NULL) : NULL; - case 106: //femaleEars_modt_p - *FieldValues = FHMOD1.MODL.IsLoaded() ? FHMOD1.MODL->MODT.value : NULL; - return NULL; - case 107: //femaleEars_altTextures - if(!FHMOD1.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FHMOD1.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FHMOD1.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FHMOD1.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FHMOD1.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 108: //femaleEars_modelFlags - return FHMOD1.MODL.IsLoaded() ? (FHMOD1.MODL->MODD.IsLoaded() ? &FHMOD1.MODL->MODD.value : NULL) : NULL; - case 109: //femaleEars_iconPath - return FHMOD1.ICON.value; - case 110: //femaleEars_smallIconPath - return FHMOD1.MICO.value; - case 111: //femaleMouth_modPath - return FHMOD2.MODL.IsLoaded() ? FHMOD2.MODL->MODL.value : NULL; - case 112: //femaleMouth_modb - return FHMOD2.MODL.IsLoaded() ? (FHMOD2.MODL->MODB.IsLoaded() ? &FHMOD2.MODL->MODB.value : NULL) : NULL; - case 113: //femaleMouth_modt_p - *FieldValues = FHMOD2.MODL.IsLoaded() ? FHMOD2.MODL->MODT.value : NULL; - return NULL; - case 114: //femaleMouth_altTextures - if(!FHMOD2.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FHMOD2.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FHMOD2.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FHMOD2.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FHMOD2.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 115: //femaleMouth_modelFlags - return FHMOD2.MODL.IsLoaded() ? (FHMOD2.MODL->MODD.IsLoaded() ? &FHMOD2.MODL->MODD.value : NULL) : NULL; - case 116: //femaleMouth_iconPath - return FHMOD2.ICON.value; - case 117: //femaleMouth_smallIconPath - return FHMOD2.MICO.value; - case 118: //femaleTeethLower_modPath - return FHMOD3.MODL.IsLoaded() ? FHMOD3.MODL->MODL.value : NULL; - case 119: //femaleTeethLower_modb - return FHMOD3.MODL.IsLoaded() ? (FHMOD3.MODL->MODB.IsLoaded() ? &FHMOD3.MODL->MODB.value : NULL) : NULL; - case 120: //femaleTeethLower_modt_p - *FieldValues = FHMOD3.MODL.IsLoaded() ? FHMOD3.MODL->MODT.value : NULL; - return NULL; - case 121: //femaleTeethLower_altTextures - if(!FHMOD3.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FHMOD3.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FHMOD3.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FHMOD3.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FHMOD3.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 122: //femaleTeethLower_modelFlags - return FHMOD3.MODL.IsLoaded() ? (FHMOD3.MODL->MODD.IsLoaded() ? &FHMOD3.MODL->MODD.value : NULL) : NULL; - case 123: //femaleTeethLower_iconPath - return FHMOD3.ICON.value; - case 124: //femaleTeethLower_smallIconPath - return FHMOD3.MICO.value; - case 125: //femaleTeethUpper_modPath - return FHMOD4.MODL.IsLoaded() ? FHMOD4.MODL->MODL.value : NULL; - case 126: //femaleTeethUpper_modb - return FHMOD4.MODL.IsLoaded() ? (FHMOD4.MODL->MODB.IsLoaded() ? &FHMOD4.MODL->MODB.value : NULL) : NULL; - case 127: //femaleTeethUpper_modt_p - *FieldValues = FHMOD4.MODL.IsLoaded() ? FHMOD4.MODL->MODT.value : NULL; - return NULL; - case 128: //femaleTeethUpper_altTextures - if(!FHMOD4.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FHMOD4.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FHMOD4.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FHMOD4.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FHMOD4.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 129: //femaleTeethUpper_modelFlags - return FHMOD4.MODL.IsLoaded() ? (FHMOD4.MODL->MODD.IsLoaded() ? &FHMOD4.MODL->MODD.value : NULL) : NULL; - case 130: //femaleTeethUpper_iconPath - return FHMOD4.ICON.value; - case 131: //femaleTeethUpper_smallIconPath - return FHMOD4.MICO.value; - case 132: //femaleTongue_modPath - return FHMOD5.MODL.IsLoaded() ? FHMOD5.MODL->MODL.value : NULL; - case 133: //femaleTongue_modb - return FHMOD5.MODL.IsLoaded() ? (FHMOD5.MODL->MODB.IsLoaded() ? &FHMOD5.MODL->MODB.value : NULL) : NULL; - case 134: //femaleTongue_modt_p - *FieldValues = FHMOD5.MODL.IsLoaded() ? FHMOD5.MODL->MODT.value : NULL; - return NULL; - case 135: //femaleTongue_altTextures - if(!FHMOD5.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FHMOD5.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FHMOD5.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FHMOD5.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FHMOD5.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 136: //femaleTongue_modelFlags - return FHMOD5.MODL.IsLoaded() ? (FHMOD5.MODL->MODD.IsLoaded() ? &FHMOD5.MODL->MODD.value : NULL) : NULL; - case 137: //femaleTongue_iconPath - return FHMOD5.ICON.value; - case 138: //femaleTongue_smallIconPath - return FHMOD5.MICO.value; - case 139: //femaleLeftEye_modPath - return FHMOD6.MODL.IsLoaded() ? FHMOD6.MODL->MODL.value : NULL; - case 140: //femaleLeftEye_modb - return FHMOD6.MODL.IsLoaded() ? (FHMOD6.MODL->MODB.IsLoaded() ? &FHMOD6.MODL->MODB.value : NULL) : NULL; - case 141: //femaleLeftEye_modt_p - *FieldValues = FHMOD6.MODL.IsLoaded() ? FHMOD6.MODL->MODT.value : NULL; - return NULL; - case 142: //femaleLeftEye_altTextures - if(!FHMOD6.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FHMOD6.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FHMOD6.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FHMOD6.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FHMOD6.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 143: //femaleLeftEye_modelFlags - return FHMOD6.MODL.IsLoaded() ? (FHMOD6.MODL->MODD.IsLoaded() ? &FHMOD6.MODL->MODD.value : NULL) : NULL; - case 144: //femaleLeftEye_iconPath - return FHMOD6.ICON.value; - case 145: //femaleLeftEye_smallIconPath - return FHMOD6.MICO.value; - case 146: //femaleRightEye_modPath - return FHMOD7.MODL.IsLoaded() ? FHMOD7.MODL->MODL.value : NULL; - case 147: //femaleRightEye_modb - return FHMOD7.MODL.IsLoaded() ? (FHMOD7.MODL->MODB.IsLoaded() ? &FHMOD7.MODL->MODB.value : NULL) : NULL; - case 148: //femaleRightEye_modt_p - *FieldValues = FHMOD7.MODL.IsLoaded() ? FHMOD7.MODL->MODT.value : NULL; - return NULL; - case 149: //femaleRightEye_altTextures - if(!FHMOD7.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FHMOD7.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FHMOD7.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FHMOD7.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FHMOD7.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 150: //femaleRightEye_modelFlags - return FHMOD7.MODL.IsLoaded() ? (FHMOD7.MODL->MODD.IsLoaded() ? &FHMOD7.MODL->MODD.value : NULL) : NULL; - case 151: //femaleRightEye_iconPath - return FHMOD7.ICON.value; - case 152: //femaleRightEye_smallIconPath - return FHMOD7.MICO.value; - case 153: //maleUpperBody_modPath - return MBMOD0.MODL.IsLoaded() ? MBMOD0.MODL->MODL.value : NULL; - case 154: //maleUpperBody_modb - return MBMOD0.MODL.IsLoaded() ? (MBMOD0.MODL->MODB.IsLoaded() ? &MBMOD0.MODL->MODB.value : NULL) : NULL; - case 155: //maleUpperBody_modt_p - *FieldValues = MBMOD0.MODL.IsLoaded() ? MBMOD0.MODL->MODT.value : NULL; - return NULL; - case 156: //maleUpperBody_altTextures - if(!MBMOD0.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MBMOD0.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MBMOD0.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MBMOD0.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MBMOD0.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 157: //maleUpperBody_modelFlags - return MBMOD0.MODL.IsLoaded() ? (MBMOD0.MODL->MODD.IsLoaded() ? &MBMOD0.MODL->MODD.value : NULL) : NULL; - case 158: //maleUpperBody_iconPath - return MBMOD0.ICON.value; - case 159: //maleUpperBody_smallIconPath - return MBMOD0.MICO.value; - case 160: //maleLeftHand_modPath - return MBMOD1.MODL.IsLoaded() ? MBMOD1.MODL->MODL.value : NULL; - case 161: //maleLeftHand_modb - return MBMOD1.MODL.IsLoaded() ? (MBMOD1.MODL->MODB.IsLoaded() ? &MBMOD1.MODL->MODB.value : NULL) : NULL; - case 162: //maleLeftHand_modt_p - *FieldValues = MBMOD1.MODL.IsLoaded() ? MBMOD1.MODL->MODT.value : NULL; - return NULL; - case 163: //maleLeftHand_altTextures - if(!MBMOD1.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MBMOD1.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MBMOD1.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MBMOD1.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MBMOD1.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 164: //maleLeftHand_modelFlags - return MBMOD1.MODL.IsLoaded() ? (MBMOD1.MODL->MODD.IsLoaded() ? &MBMOD1.MODL->MODD.value : NULL) : NULL; - case 165: //maleLeftHand_iconPath - return MBMOD1.ICON.value; - case 166: //maleLeftHand_smallIconPath - return MBMOD1.MICO.value; - case 167: //maleRightHand_modPath - return MBMOD2.MODL.IsLoaded() ? MBMOD2.MODL->MODL.value : NULL; - case 168: //maleRightHand_modb - return MBMOD2.MODL.IsLoaded() ? (MBMOD2.MODL->MODB.IsLoaded() ? &MBMOD2.MODL->MODB.value : NULL) : NULL; - case 169: //maleRightHand_modt_p - *FieldValues = MBMOD2.MODL.IsLoaded() ? MBMOD2.MODL->MODT.value : NULL; - return NULL; - case 170: //maleRightHand_altTextures - if(!MBMOD2.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MBMOD2.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MBMOD2.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MBMOD2.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MBMOD2.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 171: //maleRightHand_modelFlags - return MBMOD2.MODL.IsLoaded() ? (MBMOD2.MODL->MODD.IsLoaded() ? &MBMOD2.MODL->MODD.value : NULL) : NULL; - case 172: //maleRightHand_iconPath - return MBMOD2.ICON.value; - case 173: //maleRightHand_smallIconPath - return MBMOD2.MICO.value; - case 174: //maleUpperBodyTexture_modPath - return MBMOD3.MODL.IsLoaded() ? MBMOD3.MODL->MODL.value : NULL; - case 175: //maleUpperBodyTexture_modb - return MBMOD3.MODL.IsLoaded() ? (MBMOD3.MODL->MODB.IsLoaded() ? &MBMOD3.MODL->MODB.value : NULL) : NULL; - case 176: //maleUpperBodyTexture_modt_p - *FieldValues = MBMOD3.MODL.IsLoaded() ? MBMOD3.MODL->MODT.value : NULL; - return NULL; - case 177: //maleUpperBodyTexture_altTextures - if(!MBMOD3.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= MBMOD3.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return MBMOD3.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MBMOD3.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MBMOD3.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 178: //maleUpperBodyTexture_modelFlags - return MBMOD3.MODL.IsLoaded() ? (MBMOD3.MODL->MODD.IsLoaded() ? &MBMOD3.MODL->MODD.value : NULL) : NULL; - case 179: //maleUpperBodyTexture_iconPath - return MBMOD3.ICON.value; - case 180: //maleUpperBodyTexture_smallIconPath - return MBMOD3.MICO.value; - case 181: //femaleUpperBody_modPath - return FBMOD0.MODL.IsLoaded() ? FBMOD0.MODL->MODL.value : NULL; - case 182: //femaleUpperBody_modb - return FBMOD0.MODL.IsLoaded() ? (FBMOD0.MODL->MODB.IsLoaded() ? &FBMOD0.MODL->MODB.value : NULL) : NULL; - case 183: //femaleUpperBody_modt_p - *FieldValues = FBMOD0.MODL.IsLoaded() ? FBMOD0.MODL->MODT.value : NULL; - return NULL; - case 184: //femaleUpperBody_altTextures - if(!FBMOD0.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FBMOD0.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FBMOD0.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FBMOD0.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FBMOD0.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 185: //femaleUpperBody_modelFlags - return FBMOD0.MODL.IsLoaded() ? (FBMOD0.MODL->MODD.IsLoaded() ? &FBMOD0.MODL->MODD.value : NULL) : NULL; - case 186: //femaleUpperBody_iconPath - return FBMOD0.ICON.value; - case 187: //femaleUpperBody_smallIconPath - return FBMOD0.MICO.value; - case 188: //femaleLeftHand_modPath - return FBMOD1.MODL.IsLoaded() ? FBMOD1.MODL->MODL.value : NULL; - case 189: //femaleLeftHand_modb - return FBMOD1.MODL.IsLoaded() ? (FBMOD1.MODL->MODB.IsLoaded() ? &FBMOD1.MODL->MODB.value : NULL) : NULL; - case 190: //femaleLeftHand_modt_p - *FieldValues = FBMOD1.MODL.IsLoaded() ? FBMOD1.MODL->MODT.value : NULL; - return NULL; - case 191: //femaleLeftHand_altTextures - if(!FBMOD1.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FBMOD1.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FBMOD1.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FBMOD1.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FBMOD1.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 192: //femaleLeftHand_modelFlags - return FBMOD1.MODL.IsLoaded() ? (FBMOD1.MODL->MODD.IsLoaded() ? &FBMOD1.MODL->MODD.value : NULL) : NULL; - case 193: //femaleLeftHand_iconPath - return FBMOD1.ICON.value; - case 194: //femaleLeftHand_smallIconPath - return FBMOD1.MICO.value; - case 195: //femaleRightHand_modPath - return FBMOD2.MODL.IsLoaded() ? FBMOD2.MODL->MODL.value : NULL; - case 196: //femaleRightHand_modb - return FBMOD2.MODL.IsLoaded() ? (FBMOD2.MODL->MODB.IsLoaded() ? &FBMOD2.MODL->MODB.value : NULL) : NULL; - case 197: //femaleRightHand_modt_p - *FieldValues = FBMOD2.MODL.IsLoaded() ? FBMOD2.MODL->MODT.value : NULL; - return NULL; - case 198: //femaleRightHand_altTextures - if(!FBMOD2.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FBMOD2.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FBMOD2.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FBMOD2.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FBMOD2.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 199: //femaleRightHand_modelFlags - return FBMOD2.MODL.IsLoaded() ? (FBMOD2.MODL->MODD.IsLoaded() ? &FBMOD2.MODL->MODD.value : NULL) : NULL; - case 200: //femaleRightHand_iconPath - return FBMOD2.ICON.value; - case 201: //femaleRightHand_smallIconPath - return FBMOD2.MICO.value; - case 202: //femaleUpperBodyTexture_modPath - return FBMOD3.MODL.IsLoaded() ? FBMOD3.MODL->MODL.value : NULL; - case 203: //femaleUpperBodyTexture_modb - return FBMOD3.MODL.IsLoaded() ? (FBMOD3.MODL->MODB.IsLoaded() ? &FBMOD3.MODL->MODB.value : NULL) : NULL; - case 204: //femaleUpperBodyTexture_modt_p - *FieldValues = FBMOD3.MODL.IsLoaded() ? FBMOD3.MODL->MODT.value : NULL; - return NULL; - case 205: //femaleUpperBodyTexture_altTextures - if(!FBMOD3.MODL.IsLoaded()) - return NULL; - - if(ListIndex >= FBMOD3.MODL->Textures.MODS.size()) - return NULL; - - switch(ListFieldID) - { - case 1: //name - return FBMOD3.MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &FBMOD3.MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &FBMOD3.MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 206: //femaleUpperBodyTexture_modelFlags - return FBMOD3.MODL.IsLoaded() ? (FBMOD3.MODL->MODD.IsLoaded() ? &FBMOD3.MODL->MODD.value : NULL) : NULL; - case 207: //femaleUpperBodyTexture_iconPath - return FBMOD3.ICON.value; - case 208: //femaleUpperBodyTexture_smallIconPath - return FBMOD3.MICO.value; - case 209: //hairs - *FieldValues = HNAM.value.size() ? &HNAM.value[0] : NULL; - return NULL; - case 210: //eyes - *FieldValues = ENAM.value.size() ? &ENAM.value[0] : NULL; - return NULL; - case 211: //maleFggs_p - *FieldValues = MaleFGGS.value; - return NULL; - case 212: //maleFgga_p - *FieldValues = MaleFGGA.value; - return NULL; - case 213: //maleFgts_p - *FieldValues = MaleFGTS.value; - return NULL; - case 214: //maleSnam_p - *FieldValues = &MaleSNAM.value.SNAM[0]; - return NULL; - case 215: //femaleFggs_p - *FieldValues = FemaleFGGS.value; - return NULL; - case 216: //femaleFgga_p - *FieldValues = FemaleFGGA.value; - return NULL; - case 217: //femaleFgts_p - *FieldValues = FemaleFGTS.value; - return NULL; - case 218: //femaleSnam_p - *FieldValues = &FemaleSNAM.value.SNAM[0]; - return NULL; - default: - return NULL; - } - return NULL; - } - -bool RACERecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) - { - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(*(uint32_t *)FieldValue); - break; - case 3: //versionControl1 - if(ArraySize != 4) - break; - ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; - ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; - ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; - ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; - break; - case 4: //eid - EDID.Copy((char *)FieldValue); - break; - case 5: //formVersion - formVersion = *(uint16_t *)FieldValue; - break; - case 6: //versionControl2 - if(ArraySize != 2) - break; - versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; - versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 7: //full - FULL.Copy((char *)FieldValue); - break; - case 8: //description - DESC.Copy((char *)FieldValue); - break; - case 9: //relations - if(ListFieldID == 0) //relationsSize - { - XNAM.resize(ArraySize); - return false; - } - - if(ListIndex >= XNAM.value.size()) - break; - - switch(ListFieldID) - { - case 1: //faction - XNAM.value[ListIndex]->faction = *(FORMID *)FieldValue; - return true; - case 2: //mod - XNAM.value[ListIndex]->mod = *(int32_t *)FieldValue; - break; - case 3: //groupReactionType - XNAM.value[ListIndex]->SetType(*(uint32_t *)FieldValue); - break; - default: - break; - } - break; - case 10: //skill1 - DATA.value.skills[0].value = *(int8_t *)FieldValue; - break; - case 11: //skill1Boost - DATA.value.skills[0].boost = *(int8_t *)FieldValue; - break; - case 12: //skill2 - DATA.value.skills[1].value = *(int8_t *)FieldValue; - break; - case 13: //skill2Boost - DATA.value.skills[1].boost = *(int8_t *)FieldValue; - break; - case 14: //skill3 - DATA.value.skills[2].value = *(int8_t *)FieldValue; - break; - case 15: //skill3Boost - DATA.value.skills[2].boost = *(int8_t *)FieldValue; - break; - case 16: //skill4 - DATA.value.skills[3].value = *(int8_t *)FieldValue; - break; - case 17: //skill4Boost - DATA.value.skills[3].boost = *(int8_t *)FieldValue; - break; - case 18: //skill5 - DATA.value.skills[4].value = *(int8_t *)FieldValue; - break; - case 19: //skill5Boost - DATA.value.skills[4].boost = *(int8_t *)FieldValue; - break; - case 20: //skill6 - DATA.value.skills[5].value = *(int8_t *)FieldValue; - break; - case 21: //skill6Boost - DATA.value.skills[5].boost = *(int8_t *)FieldValue; - break; - case 22: //skill7 - DATA.value.skills[6].value = *(int8_t *)FieldValue; - break; - case 23: //skill7Boost - DATA.value.skills[6].boost = *(int8_t *)FieldValue; - break; - case 24: //unused1 - if(ArraySize != 2) - break; - DATA.value.unused1[0] = ((UINT8ARRAY)FieldValue)[0]; - DATA.value.unused1[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 25: //maleHeight - DATA.value.maleHeight = *(float *)FieldValue; - break; - case 26: //femaleHeight - DATA.value.femaleHeight = *(float *)FieldValue; - break; - case 27: //maleWeight - DATA.value.maleWeight = *(float *)FieldValue; - break; - case 28: //femaleWeight - DATA.value.femaleWeight = *(float *)FieldValue; - break; - case 29: //flags - SetFlagMask(*(uint32_t *)FieldValue); - break; - case 30: //older - ONAM.value = *(FORMID *)FieldValue; - return true; - case 31: //younger - YNAM.value = *(FORMID *)FieldValue; - return true; - case 32: //maleVoice - VTCK.Load(); - VTCK.value.maleVoice = *(FORMID *)FieldValue; - return true; - case 33: //femaleVoice - VTCK.Load(); - VTCK.value.femaleVoice = *(FORMID *)FieldValue; - return true; - case 34: //defaultHairMale - DNAM.Load(); - DNAM.value.defaultHairMale = *(FORMID *)FieldValue; - return true; - case 35: //defaultHairFemale - DNAM.Load(); - DNAM.value.defaultHairFemale = *(FORMID *)FieldValue; - return true; - case 36: //defaultHairMaleColor - CNAM.Load(); - CNAM.value.defaultHairMale = *(uint8_t *)FieldValue; - break; - case 37: //defaultHairFemaleColor - CNAM.Load(); - CNAM.value.defaultHairFemale = *(uint8_t *)FieldValue; - break; - case 38: //mainClamp - PNAM.value = *(float *)FieldValue; - break; - case 39: //faceClamp - UNAM.value = *(float *)FieldValue; - break; - case 40: //attr_p - ATTR.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 41: //maleHead_modPath - MHMOD0.MODL.Load(); - MHMOD0.MODL->MODL.Copy((char *)FieldValue); - break; - case 42: //maleHead_modb - MHMOD0.MODL.Load(); - MHMOD0.MODL->MODB.value = *(float *)FieldValue; - break; - case 43: //maleHead_modt_p - MHMOD0.MODL.Load(); - MHMOD0.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 44: //maleHead_altTextures - MHMOD0.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MHMOD0.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MHMOD0.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD0.MODL->Textures.MODS[ListIndex]->name; - MHMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MHMOD0.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MHMOD0.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MHMOD0.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MHMOD0.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 45: //maleHead_modelFlags - MHMOD0.MODL.Load(); - MHMOD0.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 46: //maleHead_iconPath - MHMOD0.ICON.Copy((char *)FieldValue); - break; - case 47: //maleHead_smallIconPath - MHMOD0.MICO.Copy((char *)FieldValue); - break; - case 48: //maleEars_modPath - MHMOD1.MODL.Load(); - MHMOD1.MODL->MODL.Copy((char *)FieldValue); - break; - case 49: //maleEars_modb - MHMOD1.MODL.Load(); - MHMOD1.MODL->MODB.value = *(float *)FieldValue; - break; - case 50: //maleEars_modt_p - MHMOD1.MODL.Load(); - MHMOD1.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 51: //maleEars_altTextures - MHMOD1.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MHMOD1.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MHMOD1.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD1.MODL->Textures.MODS[ListIndex]->name; - MHMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MHMOD1.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MHMOD1.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MHMOD1.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MHMOD1.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 52: //maleEars_modelFlags - MHMOD1.MODL.Load(); - MHMOD1.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 53: //maleEars_iconPath - MHMOD1.ICON.Copy((char *)FieldValue); - break; - case 54: //maleEars_smallIconPath - MHMOD1.MICO.Copy((char *)FieldValue); - break; - case 55: //maleMouth_modPath - MHMOD2.MODL.Load(); - MHMOD2.MODL->MODL.Copy((char *)FieldValue); - break; - case 56: //maleMouth_modb - MHMOD2.MODL.Load(); - MHMOD2.MODL->MODB.value = *(float *)FieldValue; - break; - case 57: //maleMouth_modt_p - MHMOD2.MODL.Load(); - MHMOD2.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 58: //maleMouth_altTextures - MHMOD2.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MHMOD2.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MHMOD2.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD2.MODL->Textures.MODS[ListIndex]->name; - MHMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MHMOD2.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MHMOD2.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MHMOD2.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MHMOD2.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 59: //maleMouth_modelFlags - MHMOD2.MODL.Load(); - MHMOD2.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 60: //maleMouth_iconPath - MHMOD2.ICON.Copy((char *)FieldValue); - break; - case 61: //maleMouth_smallIconPath - MHMOD2.MICO.Copy((char *)FieldValue); - break; - case 62: //maleTeethLower_modPath - MHMOD3.MODL.Load(); - MHMOD3.MODL->MODL.Copy((char *)FieldValue); - break; - case 63: //maleTeethLower_modb - MHMOD3.MODL.Load(); - MHMOD3.MODL->MODB.value = *(float *)FieldValue; - break; - case 64: //maleTeethLower_modt_p - MHMOD3.MODL.Load(); - MHMOD3.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 65: //maleTeethLower_altTextures - MHMOD3.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MHMOD3.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MHMOD3.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD3.MODL->Textures.MODS[ListIndex]->name; - MHMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MHMOD3.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MHMOD3.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MHMOD3.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MHMOD3.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 66: //maleTeethLower_modelFlags - MHMOD3.MODL.Load(); - MHMOD3.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 67: //maleTeethLower_iconPath - MHMOD3.ICON.Copy((char *)FieldValue); - break; - case 68: //maleTeethLower_smallIconPath - MHMOD3.MICO.Copy((char *)FieldValue); - break; - case 69: //maleTeethUpper_modPath - MHMOD4.MODL.Load(); - MHMOD4.MODL->MODL.Copy((char *)FieldValue); - break; - case 70: //maleTeethUpper_modb - MHMOD4.MODL.Load(); - MHMOD4.MODL->MODB.value = *(float *)FieldValue; - break; - case 71: //maleTeethUpper_modt_p - MHMOD4.MODL.Load(); - MHMOD4.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 72: //maleTeethUpper_altTextures - MHMOD4.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MHMOD4.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MHMOD4.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD4.MODL->Textures.MODS[ListIndex]->name; - MHMOD4.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MHMOD4.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MHMOD4.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MHMOD4.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MHMOD4.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 73: //maleTeethUpper_modelFlags - MHMOD4.MODL.Load(); - MHMOD4.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 74: //maleTeethUpper_iconPath - MHMOD4.ICON.Copy((char *)FieldValue); - break; - case 75: //maleTeethUpper_smallIconPath - MHMOD4.MICO.Copy((char *)FieldValue); - break; - case 76: //maleTongue_modPath - MHMOD5.MODL.Load(); - MHMOD5.MODL->MODL.Copy((char *)FieldValue); - break; - case 77: //maleTongue_modb - MHMOD5.MODL.Load(); - MHMOD5.MODL->MODB.value = *(float *)FieldValue; - break; - case 78: //maleTongue_modt_p - MHMOD5.MODL.Load(); - MHMOD5.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 79: //maleTongue_altTextures - MHMOD5.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MHMOD5.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MHMOD5.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD5.MODL->Textures.MODS[ListIndex]->name; - MHMOD5.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MHMOD5.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MHMOD5.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MHMOD5.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MHMOD5.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 80: //maleTongue_modelFlags - MHMOD5.MODL.Load(); - MHMOD5.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 81: //maleTongue_iconPath - MHMOD5.ICON.Copy((char *)FieldValue); - break; - case 82: //maleTongue_smallIconPath - MHMOD5.MICO.Copy((char *)FieldValue); - break; - case 83: //maleLeftEye_modPath - MHMOD6.MODL.Load(); - MHMOD6.MODL->MODL.Copy((char *)FieldValue); - break; - case 84: //maleLeftEye_modb - MHMOD6.MODL.Load(); - MHMOD6.MODL->MODB.value = *(float *)FieldValue; - break; - case 85: //maleLeftEye_modt_p - MHMOD6.MODL.Load(); - MHMOD6.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 86: //maleLeftEye_altTextures - MHMOD6.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MHMOD6.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MHMOD6.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD6.MODL->Textures.MODS[ListIndex]->name; - MHMOD6.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MHMOD6.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MHMOD6.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MHMOD6.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MHMOD6.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 87: //maleLeftEye_modelFlags - MHMOD6.MODL.Load(); - MHMOD6.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 88: //maleLeftEye_iconPath - MHMOD6.ICON.Copy((char *)FieldValue); - break; - case 89: //maleLeftEye_smallIconPath - MHMOD6.MICO.Copy((char *)FieldValue); - break; - case 90: //maleRightEye_modPath - MHMOD7.MODL.Load(); - MHMOD7.MODL->MODL.Copy((char *)FieldValue); - break; - case 91: //maleRightEye_modb - MHMOD7.MODL.Load(); - MHMOD7.MODL->MODB.value = *(float *)FieldValue; - break; - case 92: //maleRightEye_modt_p - MHMOD7.MODL.Load(); - MHMOD7.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 93: //maleRightEye_altTextures - MHMOD7.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MHMOD7.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MHMOD7.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD7.MODL->Textures.MODS[ListIndex]->name; - MHMOD7.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MHMOD7.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MHMOD7.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MHMOD7.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MHMOD7.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 94: //maleRightEye_modelFlags - MHMOD7.MODL.Load(); - MHMOD7.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 95: //maleRightEye_iconPath - MHMOD7.ICON.Copy((char *)FieldValue); - break; - case 96: //maleRightEye_smallIconPath - MHMOD7.MICO.Copy((char *)FieldValue); - break; - case 97: //femaleHead_modPath - FHMOD0.MODL.Load(); - FHMOD0.MODL->MODL.Copy((char *)FieldValue); - break; - case 98: //femaleHead_modb - FHMOD0.MODL.Load(); - FHMOD0.MODL->MODB.value = *(float *)FieldValue; - break; - case 99: //femaleHead_modt_p - FHMOD0.MODL.Load(); - FHMOD0.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 100: //femaleHead_altTextures - FHMOD0.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FHMOD0.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FHMOD0.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD0.MODL->Textures.MODS[ListIndex]->name; - FHMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FHMOD0.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FHMOD0.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FHMOD0.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FHMOD0.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 101: //femaleHead_modelFlags - FHMOD0.MODL.Load(); - FHMOD0.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 102: //femaleHead_iconPath - FHMOD0.ICON.Copy((char *)FieldValue); - break; - case 103: //femaleHead_smallIconPath - FHMOD0.MICO.Copy((char *)FieldValue); - break; - case 104: //femaleEars_modPath - FHMOD1.MODL.Load(); - FHMOD1.MODL->MODL.Copy((char *)FieldValue); - break; - case 105: //femaleEars_modb - FHMOD1.MODL.Load(); - FHMOD1.MODL->MODB.value = *(float *)FieldValue; - break; - case 106: //femaleEars_modt_p - FHMOD1.MODL.Load(); - FHMOD1.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 107: //femaleEars_altTextures - FHMOD1.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FHMOD1.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FHMOD1.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD1.MODL->Textures.MODS[ListIndex]->name; - FHMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FHMOD1.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FHMOD1.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FHMOD1.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FHMOD1.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 108: //femaleEars_modelFlags - FHMOD1.MODL.Load(); - FHMOD1.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 109: //femaleEars_iconPath - FHMOD1.ICON.Copy((char *)FieldValue); - break; - case 110: //femaleEars_smallIconPath - FHMOD1.MICO.Copy((char *)FieldValue); - break; - case 111: //femaleMouth_modPath - FHMOD2.MODL.Load(); - FHMOD2.MODL->MODL.Copy((char *)FieldValue); - break; - case 112: //femaleMouth_modb - FHMOD2.MODL.Load(); - FHMOD2.MODL->MODB.value = *(float *)FieldValue; - break; - case 113: //femaleMouth_modt_p - FHMOD2.MODL.Load(); - FHMOD2.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 114: //femaleMouth_altTextures - FHMOD2.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FHMOD2.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FHMOD2.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD2.MODL->Textures.MODS[ListIndex]->name; - FHMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FHMOD2.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FHMOD2.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FHMOD2.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FHMOD2.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 115: //femaleMouth_modelFlags - FHMOD2.MODL.Load(); - FHMOD2.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 116: //femaleMouth_iconPath - FHMOD2.ICON.Copy((char *)FieldValue); - break; - case 117: //femaleMouth_smallIconPath - FHMOD2.MICO.Copy((char *)FieldValue); - break; - case 118: //femaleTeethLower_modPath - FHMOD3.MODL.Load(); - FHMOD3.MODL->MODL.Copy((char *)FieldValue); - break; - case 119: //femaleTeethLower_modb - FHMOD3.MODL.Load(); - FHMOD3.MODL->MODB.value = *(float *)FieldValue; - break; - case 120: //femaleTeethLower_modt_p - FHMOD3.MODL.Load(); - FHMOD3.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 121: //femaleTeethLower_altTextures - FHMOD3.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FHMOD3.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FHMOD3.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD3.MODL->Textures.MODS[ListIndex]->name; - FHMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FHMOD3.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FHMOD3.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FHMOD3.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FHMOD3.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 122: //femaleTeethLower_modelFlags - FHMOD3.MODL.Load(); - FHMOD3.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 123: //femaleTeethLower_iconPath - FHMOD3.ICON.Copy((char *)FieldValue); - break; - case 124: //femaleTeethLower_smallIconPath - FHMOD3.MICO.Copy((char *)FieldValue); - break; - case 125: //femaleTeethUpper_modPath - FHMOD4.MODL.Load(); - FHMOD4.MODL->MODL.Copy((char *)FieldValue); - break; - case 126: //femaleTeethUpper_modb - FHMOD4.MODL.Load(); - FHMOD4.MODL->MODB.value = *(float *)FieldValue; - break; - case 127: //femaleTeethUpper_modt_p - FHMOD4.MODL.Load(); - FHMOD4.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 128: //femaleTeethUpper_altTextures - FHMOD4.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FHMOD4.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FHMOD4.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD4.MODL->Textures.MODS[ListIndex]->name; - FHMOD4.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FHMOD4.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FHMOD4.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FHMOD4.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FHMOD4.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 129: //femaleTeethUpper_modelFlags - FHMOD4.MODL.Load(); - FHMOD4.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 130: //femaleTeethUpper_iconPath - FHMOD4.ICON.Copy((char *)FieldValue); - break; - case 131: //femaleTeethUpper_smallIconPath - FHMOD4.MICO.Copy((char *)FieldValue); - break; - case 132: //femaleTongue_modPath - FHMOD5.MODL.Load(); - FHMOD5.MODL->MODL.Copy((char *)FieldValue); - break; - case 133: //femaleTongue_modb - FHMOD5.MODL.Load(); - FHMOD5.MODL->MODB.value = *(float *)FieldValue; - break; - case 134: //femaleTongue_modt_p - FHMOD5.MODL.Load(); - FHMOD5.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 135: //femaleTongue_altTextures - FHMOD5.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FHMOD5.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FHMOD5.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD5.MODL->Textures.MODS[ListIndex]->name; - FHMOD5.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FHMOD5.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FHMOD5.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FHMOD5.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FHMOD5.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 136: //femaleTongue_modelFlags - FHMOD5.MODL.Load(); - FHMOD5.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 137: //femaleTongue_iconPath - FHMOD5.ICON.Copy((char *)FieldValue); - break; - case 138: //femaleTongue_smallIconPath - FHMOD5.MICO.Copy((char *)FieldValue); - break; - case 139: //femaleLeftEye_modPath - FHMOD6.MODL.Load(); - FHMOD6.MODL->MODL.Copy((char *)FieldValue); - break; - case 140: //femaleLeftEye_modb - FHMOD6.MODL.Load(); - FHMOD6.MODL->MODB.value = *(float *)FieldValue; - break; - case 141: //femaleLeftEye_modt_p - FHMOD6.MODL.Load(); - FHMOD6.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 142: //femaleLeftEye_altTextures - FHMOD6.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FHMOD6.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FHMOD6.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD6.MODL->Textures.MODS[ListIndex]->name; - FHMOD6.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FHMOD6.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FHMOD6.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FHMOD6.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FHMOD6.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 143: //femaleLeftEye_modelFlags - FHMOD6.MODL.Load(); - FHMOD6.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 144: //femaleLeftEye_iconPath - FHMOD6.ICON.Copy((char *)FieldValue); - break; - case 145: //femaleLeftEye_smallIconPath - FHMOD6.MICO.Copy((char *)FieldValue); - break; - case 146: //femaleRightEye_modPath - FHMOD7.MODL.Load(); - FHMOD7.MODL->MODL.Copy((char *)FieldValue); - break; - case 147: //femaleRightEye_modb - FHMOD7.MODL.Load(); - FHMOD7.MODL->MODB.value = *(float *)FieldValue; - break; - case 148: //femaleRightEye_modt_p - FHMOD7.MODL.Load(); - FHMOD7.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 149: //femaleRightEye_altTextures - FHMOD7.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FHMOD7.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FHMOD7.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD7.MODL->Textures.MODS[ListIndex]->name; - FHMOD7.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FHMOD7.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FHMOD7.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FHMOD7.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FHMOD7.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 150: //femaleRightEye_modelFlags - FHMOD7.MODL.Load(); - FHMOD7.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 151: //femaleRightEye_iconPath - FHMOD7.ICON.Copy((char *)FieldValue); - break; - case 152: //femaleRightEye_smallIconPath - FHMOD7.MICO.Copy((char *)FieldValue); - break; - case 153: //maleUpperBody_modPath - MBMOD0.MODL.Load(); - MBMOD0.MODL->MODL.Copy((char *)FieldValue); - break; - case 154: //maleUpperBody_modb - MBMOD0.MODL.Load(); - MBMOD0.MODL->MODB.value = *(float *)FieldValue; - break; - case 155: //maleUpperBody_modt_p - MBMOD0.MODL.Load(); - MBMOD0.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 156: //maleUpperBody_altTextures - MBMOD0.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MBMOD0.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MBMOD0.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MBMOD0.MODL->Textures.MODS[ListIndex]->name; - MBMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MBMOD0.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MBMOD0.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MBMOD0.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MBMOD0.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 157: //maleUpperBody_modelFlags - MBMOD0.MODL.Load(); - MBMOD0.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 158: //maleUpperBody_iconPath - MBMOD0.ICON.Copy((char *)FieldValue); - break; - case 159: //maleUpperBody_smallIconPath - MBMOD0.MICO.Copy((char *)FieldValue); - break; - case 160: //maleLeftHand_modPath - MBMOD1.MODL.Load(); - MBMOD1.MODL->MODL.Copy((char *)FieldValue); - break; - case 161: //maleLeftHand_modb - MBMOD1.MODL.Load(); - MBMOD1.MODL->MODB.value = *(float *)FieldValue; - break; - case 162: //maleLeftHand_modt_p - MBMOD1.MODL.Load(); - MBMOD1.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 163: //maleLeftHand_altTextures - MBMOD1.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MBMOD1.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MBMOD1.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MBMOD1.MODL->Textures.MODS[ListIndex]->name; - MBMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MBMOD1.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MBMOD1.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MBMOD1.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MBMOD1.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 164: //maleLeftHand_modelFlags - MBMOD1.MODL.Load(); - MBMOD1.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 165: //maleLeftHand_iconPath - MBMOD1.ICON.Copy((char *)FieldValue); - break; - case 166: //maleLeftHand_smallIconPath - MBMOD1.MICO.Copy((char *)FieldValue); - break; - case 167: //maleRightHand_modPath - MBMOD2.MODL.Load(); - MBMOD2.MODL->MODL.Copy((char *)FieldValue); - break; - case 168: //maleRightHand_modb - MBMOD2.MODL.Load(); - MBMOD2.MODL->MODB.value = *(float *)FieldValue; - break; - case 169: //maleRightHand_modt_p - MBMOD2.MODL.Load(); - MBMOD2.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 170: //maleRightHand_altTextures - MBMOD2.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MBMOD2.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MBMOD2.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MBMOD2.MODL->Textures.MODS[ListIndex]->name; - MBMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MBMOD2.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MBMOD2.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MBMOD2.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MBMOD2.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 171: //maleRightHand_modelFlags - MBMOD2.MODL.Load(); - MBMOD2.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 172: //maleRightHand_iconPath - MBMOD2.ICON.Copy((char *)FieldValue); - break; - case 173: //maleRightHand_smallIconPath - MBMOD2.MICO.Copy((char *)FieldValue); - break; - case 174: //maleUpperBodyTexture_modPath - MBMOD3.MODL.Load(); - MBMOD3.MODL->MODL.Copy((char *)FieldValue); - break; - case 175: //maleUpperBodyTexture_modb - MBMOD3.MODL.Load(); - MBMOD3.MODL->MODB.value = *(float *)FieldValue; - break; - case 176: //maleUpperBodyTexture_modt_p - MBMOD3.MODL.Load(); - MBMOD3.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 177: //maleUpperBodyTexture_altTextures - MBMOD3.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - MBMOD3.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= MBMOD3.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []MBMOD3.MODL->Textures.MODS[ListIndex]->name; - MBMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MBMOD3.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MBMOD3.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MBMOD3.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MBMOD3.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 178: //maleUpperBodyTexture_modelFlags - MBMOD3.MODL.Load(); - MBMOD3.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 179: //maleUpperBodyTexture_iconPath - MBMOD3.ICON.Copy((char *)FieldValue); - break; - case 180: //maleUpperBodyTexture_smallIconPath - MBMOD3.MICO.Copy((char *)FieldValue); - break; - case 181: //femaleUpperBody_modPath - FBMOD0.MODL.Load(); - FBMOD0.MODL->MODL.Copy((char *)FieldValue); - break; - case 182: //femaleUpperBody_modb - FBMOD0.MODL.Load(); - FBMOD0.MODL->MODB.value = *(float *)FieldValue; - break; - case 183: //femaleUpperBody_modt_p - FBMOD0.MODL.Load(); - FBMOD0.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 184: //femaleUpperBody_altTextures - FBMOD0.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FBMOD0.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FBMOD0.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FBMOD0.MODL->Textures.MODS[ListIndex]->name; - FBMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FBMOD0.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FBMOD0.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FBMOD0.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FBMOD0.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 185: //femaleUpperBody_modelFlags - FBMOD0.MODL.Load(); - FBMOD0.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 186: //femaleUpperBody_iconPath - FBMOD0.ICON.Copy((char *)FieldValue); - break; - case 187: //femaleUpperBody_smallIconPath - FBMOD0.MICO.Copy((char *)FieldValue); - break; - case 188: //femaleLeftHand_modPath - FBMOD1.MODL.Load(); - FBMOD1.MODL->MODL.Copy((char *)FieldValue); - break; - case 189: //femaleLeftHand_modb - FBMOD1.MODL.Load(); - FBMOD1.MODL->MODB.value = *(float *)FieldValue; - break; - case 190: //femaleLeftHand_modt_p - FBMOD1.MODL.Load(); - FBMOD1.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 191: //femaleLeftHand_altTextures - FBMOD1.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FBMOD1.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FBMOD1.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FBMOD1.MODL->Textures.MODS[ListIndex]->name; - FBMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FBMOD1.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FBMOD1.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FBMOD1.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FBMOD1.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 192: //femaleLeftHand_modelFlags - FBMOD1.MODL.Load(); - FBMOD1.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 193: //femaleLeftHand_iconPath - FBMOD1.ICON.Copy((char *)FieldValue); - break; - case 194: //femaleLeftHand_smallIconPath - FBMOD1.MICO.Copy((char *)FieldValue); - break; - case 195: //femaleRightHand_modPath - FBMOD2.MODL.Load(); - FBMOD2.MODL->MODL.Copy((char *)FieldValue); - break; - case 196: //femaleRightHand_modb - FBMOD2.MODL.Load(); - FBMOD2.MODL->MODB.value = *(float *)FieldValue; - break; - case 197: //femaleRightHand_modt_p - FBMOD2.MODL.Load(); - FBMOD2.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 198: //femaleRightHand_altTextures - FBMOD2.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FBMOD2.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FBMOD2.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FBMOD2.MODL->Textures.MODS[ListIndex]->name; - FBMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FBMOD2.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FBMOD2.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FBMOD2.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FBMOD2.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 199: //femaleRightHand_modelFlags - FBMOD2.MODL.Load(); - FBMOD2.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 200: //femaleRightHand_iconPath - FBMOD2.ICON.Copy((char *)FieldValue); - break; - case 201: //femaleRightHand_smallIconPath - FBMOD2.MICO.Copy((char *)FieldValue); - break; - case 202: //femaleUpperBodyTexture_modPath - FBMOD3.MODL.Load(); - FBMOD3.MODL->MODL.Copy((char *)FieldValue); - break; - case 203: //femaleUpperBodyTexture_modb - FBMOD3.MODL.Load(); - FBMOD3.MODL->MODB.value = *(float *)FieldValue; - break; - case 204: //femaleUpperBodyTexture_modt_p - FBMOD3.MODL.Load(); - FBMOD3.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 205: //femaleUpperBodyTexture_altTextures - FBMOD3.MODL.Load(); - if(ListFieldID == 0) //altTexturesSize - { - FBMOD3.MODL->Textures.resize(ArraySize); - return false; - } - - if(ListIndex >= FBMOD3.MODL->Textures.MODS.size()) - break; - - switch(ListFieldID) - { - case 1: //name - delete []FBMOD3.MODL->Textures.MODS[ListIndex]->name; - FBMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; - if(FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - FBMOD3.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(FBMOD3.MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - FBMOD3.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - FBMOD3.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 206: //femaleUpperBodyTexture_modelFlags - FBMOD3.MODL.Load(); - FBMOD3.MODL->SetFlagMask(*(uint8_t *)FieldValue); - break; - case 207: //femaleUpperBodyTexture_iconPath - FBMOD3.ICON.Copy((char *)FieldValue); - break; - case 208: //femaleUpperBodyTexture_smallIconPath - FBMOD3.MICO.Copy((char *)FieldValue); - break; - case 209: //hairs - HNAM.value.resize(ArraySize); - for(uint32_t x = 0; x < ArraySize; x++) - HNAM.value[x] = ((FORMIDARRAY)FieldValue)[x]; - return true; - case 210: //eyes - ENAM.value.resize(ArraySize); - for(uint32_t x = 0; x < ArraySize; x++) - ENAM.value[x] = ((FORMIDARRAY)FieldValue)[x]; - return true; - case 211: //maleFggs_p - if(ArraySize != 200) - break; - MaleFGGS.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 212: //maleFgga_p - if(ArraySize != 120) - break; - MaleFGGA.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 213: //maleFgts_p - if(ArraySize != 200) - break; - MaleFGTS.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 214: //maleSnam_p - if(ArraySize != 2) - break; - MaleSNAM.value.SNAM[0] = ((UINT8ARRAY)FieldValue)[0]; - MaleSNAM.value.SNAM[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 215: //femaleFggs_p - if(ArraySize != 200) - break; - FemaleFGGS.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 216: //femaleFgga_p - if(ArraySize != 120) - break; - FemaleFGGA.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 217: //femaleFgts_p - if(ArraySize != 200) - break; - FemaleFGTS.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 218: //femaleSnam_p - if(ArraySize != 2) - break; - FemaleSNAM.value.SNAM[0] = ((UINT8ARRAY)FieldValue)[0]; - FemaleSNAM.value.SNAM[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - default: - break; - } - return false; - } - -void RACERecord::DeleteField(FIELD_IDENTIFIERS) - { - RACEVNAM defaultVNAM; - RACEDNAM defaultDNAM; - RACECNAM defaultCNAM; - FNVXNAM defaultXNAM; - RACEDATA defaultDATA; - FNVMODS defaultMODS; - - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(0); - return; - case 3: //versionControl1 - flagsUnk = 0; - return; - case 4: //eid - EDID.Unload(); - return; - case 5: //formVersion - formVersion = 0; - return; - case 6: //versionControl2 - versionControl2[0] = 0; - versionControl2[1] = 0; - return; - case 7: //full - FULL.Unload(); - return; - case 8: //description - DESC.Unload(); - return; - case 9: //relations - if(ListFieldID == 0) //relations - { - XNAM.Unload(); - return; - } - - if(ListIndex >= XNAM.value.size()) - return; - - switch(ListFieldID) - { - case 1: //faction - XNAM.value[ListIndex]->faction = defaultXNAM.faction; - return; - case 2: //mod - XNAM.value[ListIndex]->mod = defaultXNAM.mod; - return; - case 3: //groupReactionType - XNAM.value[ListIndex]->groupReactionType = defaultXNAM.groupReactionType; - return; - default: - return; - } - return; - case 10: //skill1 - DATA.value.skills[0].value = defaultDATA.skills[0].value; - return; - case 11: //skill1Boost - DATA.value.skills[0].boost = defaultDATA.skills[0].boost; - return; - case 12: //skill2 - DATA.value.skills[1].value = defaultDATA.skills[1].value; - return; - case 13: //skill2Boost - DATA.value.skills[1].boost = defaultDATA.skills[1].boost; - return; - case 14: //skill3 - DATA.value.skills[2].value = defaultDATA.skills[2].value; - return; - case 15: //skill3Boost - DATA.value.skills[2].boost = defaultDATA.skills[2].boost; - return; - case 16: //skill4 - DATA.value.skills[3].value = defaultDATA.skills[3].value; - return; - case 17: //skill4Boost - DATA.value.skills[3].boost = defaultDATA.skills[3].boost; - return; - case 18: //skill5 - DATA.value.skills[4].value = defaultDATA.skills[4].value; - return; - case 19: //skill5Boost - DATA.value.skills[4].boost = defaultDATA.skills[4].boost; - return; - case 20: //skill6 - DATA.value.skills[5].value = defaultDATA.skills[5].value; - return; - case 21: //skill6Boost - DATA.value.skills[5].boost = defaultDATA.skills[5].boost; - return; - case 22: //skill7 - DATA.value.skills[6].value = defaultDATA.skills[6].value; - return; - case 23: //skill7Boost - DATA.value.skills[6].boost = defaultDATA.skills[6].boost; - return; - case 24: //unused1 - DATA.value.unused1[0] = defaultDATA.unused1[0]; - DATA.value.unused1[1] = defaultDATA.unused1[1]; - return; - case 25: //maleHeight - DATA.value.maleHeight = defaultDATA.maleHeight; - return; - case 26: //femaleHeight - DATA.value.femaleHeight = defaultDATA.femaleHeight; - return; - case 27: //maleWeight - DATA.value.maleWeight = defaultDATA.maleWeight; - return; - case 28: //femaleWeight - DATA.value.femaleWeight = defaultDATA.femaleWeight; - return; - case 29: //flags - DATA.value.flags = defaultDATA.flags; - return; - case 30: //older - ONAM.Unload(); - return; - case 31: //younger - YNAM.Unload(); - return; - case 32: //maleVoice - if(VTCK.IsLoaded()) - VTCK.value.maleVoice = defaultVNAM.maleVoice; - return; - case 33: //femaleVoice - if(VTCK.IsLoaded()) - VTCK.value.femaleVoice = defaultVNAM.femaleVoice; - return; - case 34: //defaultHairMale - if(DNAM.IsLoaded()) - DNAM.value.defaultHairMale = defaultDNAM.defaultHairMale; - return; - case 35: //defaultHairFemale - if(DNAM.IsLoaded()) - DNAM.value.defaultHairFemale = defaultDNAM.defaultHairFemale; - return; - case 36: //defaultHairMaleColor - if(CNAM.IsLoaded()) - CNAM.value.defaultHairMale = defaultCNAM.defaultHairMale; - return; - case 37: //defaultHairFemaleColor - if(CNAM.IsLoaded()) - CNAM.value.defaultHairFemale = defaultCNAM.defaultHairFemale; - return; - case 38: //mainClamp - PNAM.Unload(); - return; - case 39: //faceClamp - UNAM.Unload(); - return; - case 40: //attr_p - ATTR.Unload(); - return; - case 41: //maleHead_modPath - if(MHMOD0.MODL.IsLoaded()) - MHMOD0.MODL->MODL.Unload(); - return; - case 42: //maleHead_modb - if(MHMOD0.MODL.IsLoaded()) - MHMOD0.MODL->MODB.Unload(); - return; - case 43: //maleHead_modt_p - if(MHMOD0.MODL.IsLoaded()) - MHMOD0.MODL->MODT.Unload(); - return; - case 44: //maleHead_altTextures - if(MHMOD0.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MHMOD0.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MHMOD0.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD0.MODL->Textures.MODS[ListIndex]->name; - MHMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MHMOD0.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MHMOD0.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 45: //maleHead_modelFlags - if(MHMOD0.MODL.IsLoaded()) - MHMOD0.MODL->MODD.Unload(); - return; - case 46: //maleHead_iconPath - MHMOD0.ICON.Unload(); - return; - case 47: //maleHead_smallIconPath - MHMOD0.MICO.Unload(); - return; - case 48: //maleEars_modPath - if(MHMOD1.MODL.IsLoaded()) - MHMOD1.MODL->MODL.Unload(); - return; - case 49: //maleEars_modb - if(MHMOD1.MODL.IsLoaded()) - MHMOD1.MODL->MODB.Unload(); - return; - case 50: //maleEars_modt_p - if(MHMOD1.MODL.IsLoaded()) - MHMOD1.MODL->MODT.Unload(); - return; - case 51: //maleEars_altTextures - if(MHMOD1.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MHMOD1.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MHMOD1.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD1.MODL->Textures.MODS[ListIndex]->name; - MHMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MHMOD1.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MHMOD1.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 52: //maleEars_modelFlags - if(MHMOD1.MODL.IsLoaded()) - MHMOD1.MODL->MODD.Unload(); - return; - case 53: //maleEars_iconPath - MHMOD1.ICON.Unload(); - return; - case 54: //maleEars_smallIconPath - MHMOD1.MICO.Unload(); - return; - case 55: //maleMouth_modPath - if(MHMOD2.MODL.IsLoaded()) - MHMOD2.MODL->MODL.Unload(); - return; - case 56: //maleMouth_modb - if(MHMOD2.MODL.IsLoaded()) - MHMOD2.MODL->MODB.Unload(); - return; - case 57: //maleMouth_modt_p - if(MHMOD2.MODL.IsLoaded()) - MHMOD2.MODL->MODT.Unload(); - return; - case 58: //maleMouth_altTextures - if(MHMOD2.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MHMOD2.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MHMOD2.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD2.MODL->Textures.MODS[ListIndex]->name; - MHMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MHMOD2.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MHMOD2.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 59: //maleMouth_modelFlags - if(MHMOD2.MODL.IsLoaded()) - MHMOD2.MODL->MODD.Unload(); - return; - case 60: //maleMouth_iconPath - MHMOD2.ICON.Unload(); - return; - case 61: //maleMouth_smallIconPath - MHMOD2.MICO.Unload(); - return; - case 62: //maleTeethLower_modPath - if(MHMOD3.MODL.IsLoaded()) - MHMOD3.MODL->MODL.Unload(); - return; - case 63: //maleTeethLower_modb - if(MHMOD3.MODL.IsLoaded()) - MHMOD3.MODL->MODB.Unload(); - return; - case 64: //maleTeethLower_modt_p - if(MHMOD3.MODL.IsLoaded()) - MHMOD3.MODL->MODT.Unload(); - return; - case 65: //maleTeethLower_altTextures - if(MHMOD3.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MHMOD3.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MHMOD3.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD3.MODL->Textures.MODS[ListIndex]->name; - MHMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MHMOD3.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MHMOD3.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 66: //maleTeethLower_modelFlags - if(MHMOD3.MODL.IsLoaded()) - MHMOD3.MODL->MODD.Unload(); - return; - case 67: //maleTeethLower_iconPath - MHMOD3.ICON.Unload(); - return; - case 68: //maleTeethLower_smallIconPath - MHMOD3.MICO.Unload(); - return; - case 69: //maleTeethUpper_modPath - if(MHMOD4.MODL.IsLoaded()) - MHMOD4.MODL->MODL.Unload(); - return; - case 70: //maleTeethUpper_modb - if(MHMOD4.MODL.IsLoaded()) - MHMOD4.MODL->MODB.Unload(); - return; - case 71: //maleTeethUpper_modt_p - if(MHMOD4.MODL.IsLoaded()) - MHMOD4.MODL->MODT.Unload(); - return; - case 72: //maleTeethUpper_altTextures - if(MHMOD4.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MHMOD4.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MHMOD4.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD4.MODL->Textures.MODS[ListIndex]->name; - MHMOD4.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MHMOD4.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MHMOD4.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 73: //maleTeethUpper_modelFlags - if(MHMOD4.MODL.IsLoaded()) - MHMOD4.MODL->MODD.Unload(); - return; - case 74: //maleTeethUpper_iconPath - MHMOD4.ICON.Unload(); - return; - case 75: //maleTeethUpper_smallIconPath - MHMOD4.MICO.Unload(); - return; - case 76: //maleTongue_modPath - if(MHMOD5.MODL.IsLoaded()) - MHMOD5.MODL->MODL.Unload(); - return; - case 77: //maleTongue_modb - if(MHMOD5.MODL.IsLoaded()) - MHMOD5.MODL->MODB.Unload(); - return; - case 78: //maleTongue_modt_p - if(MHMOD5.MODL.IsLoaded()) - MHMOD5.MODL->MODT.Unload(); - return; - case 79: //maleTongue_altTextures - if(MHMOD5.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MHMOD5.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MHMOD5.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD5.MODL->Textures.MODS[ListIndex]->name; - MHMOD5.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MHMOD5.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MHMOD5.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 80: //maleTongue_modelFlags - if(MHMOD5.MODL.IsLoaded()) - MHMOD5.MODL->MODD.Unload(); - return; - case 81: //maleTongue_iconPath - MHMOD5.ICON.Unload(); - return; - case 82: //maleTongue_smallIconPath - MHMOD5.MICO.Unload(); - return; - case 83: //maleLeftEye_modPath - if(MHMOD6.MODL.IsLoaded()) - MHMOD6.MODL->MODL.Unload(); - return; - case 84: //maleLeftEye_modb - if(MHMOD6.MODL.IsLoaded()) - MHMOD6.MODL->MODB.Unload(); - return; - case 85: //maleLeftEye_modt_p - if(MHMOD6.MODL.IsLoaded()) - MHMOD6.MODL->MODT.Unload(); - return; - case 86: //maleLeftEye_altTextures - if(MHMOD6.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MHMOD6.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MHMOD6.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD6.MODL->Textures.MODS[ListIndex]->name; - MHMOD6.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MHMOD6.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MHMOD6.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 87: //maleLeftEye_modelFlags - if(MHMOD6.MODL.IsLoaded()) - MHMOD6.MODL->MODD.Unload(); - return; - case 88: //maleLeftEye_iconPath - MHMOD6.ICON.Unload(); - return; - case 89: //maleLeftEye_smallIconPath - MHMOD6.MICO.Unload(); - return; - case 90: //maleRightEye_modPath - if(MHMOD7.MODL.IsLoaded()) - MHMOD7.MODL->MODL.Unload(); - return; - case 91: //maleRightEye_modb - if(MHMOD7.MODL.IsLoaded()) - MHMOD7.MODL->MODB.Unload(); - return; - case 92: //maleRightEye_modt_p - if(MHMOD7.MODL.IsLoaded()) - MHMOD7.MODL->MODT.Unload(); - return; - case 93: //maleRightEye_altTextures - if(MHMOD7.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MHMOD7.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MHMOD7.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MHMOD7.MODL->Textures.MODS[ListIndex]->name; - MHMOD7.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MHMOD7.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MHMOD7.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 94: //maleRightEye_modelFlags - if(MHMOD7.MODL.IsLoaded()) - MHMOD7.MODL->MODD.Unload(); - return; - case 95: //maleRightEye_iconPath - MHMOD7.ICON.Unload(); - return; - case 96: //maleRightEye_smallIconPath - MHMOD7.MICO.Unload(); - return; - case 97: //femaleHead_modPath - if(FHMOD0.MODL.IsLoaded()) - FHMOD0.MODL->MODL.Unload(); - return; - case 98: //femaleHead_modb - if(FHMOD0.MODL.IsLoaded()) - FHMOD0.MODL->MODB.Unload(); - return; - case 99: //femaleHead_modt_p - if(FHMOD0.MODL.IsLoaded()) - FHMOD0.MODL->MODT.Unload(); - return; - case 100: //femaleHead_altTextures - if(FHMOD0.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FHMOD0.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FHMOD0.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD0.MODL->Textures.MODS[ListIndex]->name; - FHMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FHMOD0.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FHMOD0.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 101: //femaleHead_modelFlags - if(FHMOD0.MODL.IsLoaded()) - FHMOD0.MODL->MODD.Unload(); - return; - case 102: //femaleHead_iconPath - FHMOD0.ICON.Unload(); - return; - case 103: //femaleHead_smallIconPath - FHMOD0.MICO.Unload(); - return; - case 104: //femaleEars_modPath - if(FHMOD1.MODL.IsLoaded()) - FHMOD1.MODL->MODL.Unload(); - return; - case 105: //femaleEars_modb - if(FHMOD1.MODL.IsLoaded()) - FHMOD1.MODL->MODB.Unload(); - return; - case 106: //femaleEars_modt_p - if(FHMOD1.MODL.IsLoaded()) - FHMOD1.MODL->MODT.Unload(); - return; - case 107: //femaleEars_altTextures - if(FHMOD1.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FHMOD1.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FHMOD1.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD1.MODL->Textures.MODS[ListIndex]->name; - FHMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FHMOD1.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FHMOD1.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 108: //femaleEars_modelFlags - if(FHMOD1.MODL.IsLoaded()) - FHMOD1.MODL->MODD.Unload(); - return; - case 109: //femaleEars_iconPath - FHMOD1.ICON.Unload(); - return; - case 110: //femaleEars_smallIconPath - FHMOD1.MICO.Unload(); - return; - case 111: //femaleMouth_modPath - if(FHMOD2.MODL.IsLoaded()) - FHMOD2.MODL->MODL.Unload(); - return; - case 112: //femaleMouth_modb - if(FHMOD2.MODL.IsLoaded()) - FHMOD2.MODL->MODB.Unload(); - return; - case 113: //femaleMouth_modt_p - if(FHMOD2.MODL.IsLoaded()) - FHMOD2.MODL->MODT.Unload(); - return; - case 114: //femaleMouth_altTextures - if(FHMOD2.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FHMOD2.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FHMOD2.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD2.MODL->Textures.MODS[ListIndex]->name; - FHMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FHMOD2.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FHMOD2.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 115: //femaleMouth_modelFlags - if(FHMOD2.MODL.IsLoaded()) - FHMOD2.MODL->MODD.Unload(); - return; - case 116: //femaleMouth_iconPath - FHMOD2.ICON.Unload(); - return; - case 117: //femaleMouth_smallIconPath - FHMOD2.MICO.Unload(); - return; - case 118: //femaleTeethLower_modPath - if(FHMOD3.MODL.IsLoaded()) - FHMOD3.MODL->MODL.Unload(); - return; - case 119: //femaleTeethLower_modb - if(FHMOD3.MODL.IsLoaded()) - FHMOD3.MODL->MODB.Unload(); - return; - case 120: //femaleTeethLower_modt_p - if(FHMOD3.MODL.IsLoaded()) - FHMOD3.MODL->MODT.Unload(); - return; - case 121: //femaleTeethLower_altTextures - if(FHMOD3.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FHMOD3.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FHMOD3.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD3.MODL->Textures.MODS[ListIndex]->name; - FHMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FHMOD3.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FHMOD3.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 122: //femaleTeethLower_modelFlags - if(FHMOD3.MODL.IsLoaded()) - FHMOD3.MODL->MODD.Unload(); - return; - case 123: //femaleTeethLower_iconPath - FHMOD3.ICON.Unload(); - return; - case 124: //femaleTeethLower_smallIconPath - FHMOD3.MICO.Unload(); - return; - case 125: //femaleTeethUpper_modPath - if(FHMOD4.MODL.IsLoaded()) - FHMOD4.MODL->MODL.Unload(); - return; - case 126: //femaleTeethUpper_modb - if(FHMOD4.MODL.IsLoaded()) - FHMOD4.MODL->MODB.Unload(); - return; - case 127: //femaleTeethUpper_modt_p - if(FHMOD4.MODL.IsLoaded()) - FHMOD4.MODL->MODT.Unload(); - return; - case 128: //femaleTeethUpper_altTextures - if(FHMOD4.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FHMOD4.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FHMOD4.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD4.MODL->Textures.MODS[ListIndex]->name; - FHMOD4.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FHMOD4.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FHMOD4.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 129: //femaleTeethUpper_modelFlags - if(FHMOD4.MODL.IsLoaded()) - FHMOD4.MODL->MODD.Unload(); - return; - case 130: //femaleTeethUpper_iconPath - FHMOD4.ICON.Unload(); - return; - case 131: //femaleTeethUpper_smallIconPath - FHMOD4.MICO.Unload(); - return; - case 132: //femaleTongue_modPath - if(FHMOD5.MODL.IsLoaded()) - FHMOD5.MODL->MODL.Unload(); - return; - case 133: //femaleTongue_modb - if(FHMOD5.MODL.IsLoaded()) - FHMOD5.MODL->MODB.Unload(); - return; - case 134: //femaleTongue_modt_p - if(FHMOD5.MODL.IsLoaded()) - FHMOD5.MODL->MODT.Unload(); - return; - case 135: //femaleTongue_altTextures - if(FHMOD5.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FHMOD5.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FHMOD5.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD5.MODL->Textures.MODS[ListIndex]->name; - FHMOD5.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FHMOD5.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FHMOD5.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 136: //femaleTongue_modelFlags - if(FHMOD5.MODL.IsLoaded()) - FHMOD5.MODL->MODD.Unload(); - return; - case 137: //femaleTongue_iconPath - FHMOD5.ICON.Unload(); - return; - case 138: //femaleTongue_smallIconPath - FHMOD5.MICO.Unload(); - return; - case 139: //femaleLeftEye_modPath - if(FHMOD6.MODL.IsLoaded()) - FHMOD6.MODL->MODL.Unload(); - return; - case 140: //femaleLeftEye_modb - if(FHMOD6.MODL.IsLoaded()) - FHMOD6.MODL->MODB.Unload(); - return; - case 141: //femaleLeftEye_modt_p - if(FHMOD6.MODL.IsLoaded()) - FHMOD6.MODL->MODT.Unload(); - return; - case 142: //femaleLeftEye_altTextures - if(FHMOD6.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FHMOD6.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FHMOD6.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD6.MODL->Textures.MODS[ListIndex]->name; - FHMOD6.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FHMOD6.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FHMOD6.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 143: //femaleLeftEye_modelFlags - if(FHMOD6.MODL.IsLoaded()) - FHMOD6.MODL->MODD.Unload(); - return; - case 144: //femaleLeftEye_iconPath - FHMOD6.ICON.Unload(); - return; - case 145: //femaleLeftEye_smallIconPath - FHMOD6.MICO.Unload(); - return; - case 146: //femaleRightEye_modPath - if(FHMOD7.MODL.IsLoaded()) - FHMOD7.MODL->MODL.Unload(); - return; - case 147: //femaleRightEye_modb - if(FHMOD7.MODL.IsLoaded()) - FHMOD7.MODL->MODB.Unload(); - return; - case 148: //femaleRightEye_modt_p - if(FHMOD7.MODL.IsLoaded()) - FHMOD7.MODL->MODT.Unload(); - return; - case 149: //femaleRightEye_altTextures - if(FHMOD7.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FHMOD7.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FHMOD7.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FHMOD7.MODL->Textures.MODS[ListIndex]->name; - FHMOD7.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FHMOD7.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FHMOD7.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 150: //femaleRightEye_modelFlags - if(FHMOD7.MODL.IsLoaded()) - FHMOD7.MODL->MODD.Unload(); - return; - case 151: //femaleRightEye_iconPath - FHMOD7.ICON.Unload(); - return; - case 152: //femaleRightEye_smallIconPath - FHMOD7.MICO.Unload(); - return; - case 153: //maleUpperBody_modPath - if(MBMOD0.MODL.IsLoaded()) - MBMOD0.MODL->MODL.Unload(); - return; - case 154: //maleUpperBody_modb - if(MBMOD0.MODL.IsLoaded()) - MBMOD0.MODL->MODB.Unload(); - return; - case 155: //maleUpperBody_modt_p - if(MBMOD0.MODL.IsLoaded()) - MBMOD0.MODL->MODT.Unload(); - return; - case 156: //maleUpperBody_altTextures - if(MBMOD0.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MBMOD0.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MBMOD0.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MBMOD0.MODL->Textures.MODS[ListIndex]->name; - MBMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MBMOD0.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MBMOD0.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 157: //maleUpperBody_modelFlags - if(MBMOD0.MODL.IsLoaded()) - MBMOD0.MODL->MODD.Unload(); - return; - case 158: //maleUpperBody_iconPath - MBMOD0.ICON.Unload(); - return; - case 159: //maleUpperBody_smallIconPath - MBMOD0.MICO.Unload(); - return; - case 160: //maleLeftHand_modPath - if(MBMOD1.MODL.IsLoaded()) - MBMOD1.MODL->MODL.Unload(); - return; - case 161: //maleLeftHand_modb - if(MBMOD1.MODL.IsLoaded()) - MBMOD1.MODL->MODB.Unload(); - return; - case 162: //maleLeftHand_modt_p - if(MBMOD1.MODL.IsLoaded()) - MBMOD1.MODL->MODT.Unload(); - return; - case 163: //maleLeftHand_altTextures - if(MBMOD1.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MBMOD1.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MBMOD1.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MBMOD1.MODL->Textures.MODS[ListIndex]->name; - MBMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MBMOD1.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MBMOD1.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 164: //maleLeftHand_modelFlags - if(MBMOD1.MODL.IsLoaded()) - MBMOD1.MODL->MODD.Unload(); - return; - case 165: //maleLeftHand_iconPath - MBMOD1.ICON.Unload(); - return; - case 166: //maleLeftHand_smallIconPath - MBMOD1.MICO.Unload(); - return; - case 167: //maleRightHand_modPath - if(MBMOD2.MODL.IsLoaded()) - MBMOD2.MODL->MODL.Unload(); - return; - case 168: //maleRightHand_modb - if(MBMOD2.MODL.IsLoaded()) - MBMOD2.MODL->MODB.Unload(); - return; - case 169: //maleRightHand_modt_p - if(MBMOD2.MODL.IsLoaded()) - MBMOD2.MODL->MODT.Unload(); - return; - case 170: //maleRightHand_altTextures - if(MBMOD2.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MBMOD2.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MBMOD2.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MBMOD2.MODL->Textures.MODS[ListIndex]->name; - MBMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MBMOD2.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MBMOD2.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 171: //maleRightHand_modelFlags - if(MBMOD2.MODL.IsLoaded()) - MBMOD2.MODL->MODD.Unload(); - return; - case 172: //maleRightHand_iconPath - MBMOD2.ICON.Unload(); - return; - case 173: //maleRightHand_smallIconPath - MBMOD2.MICO.Unload(); - return; - case 174: //maleUpperBodyTexture_modPath - if(MBMOD3.MODL.IsLoaded()) - MBMOD3.MODL->MODL.Unload(); - return; - case 175: //maleUpperBodyTexture_modb - if(MBMOD3.MODL.IsLoaded()) - MBMOD3.MODL->MODB.Unload(); - return; - case 176: //maleUpperBodyTexture_modt_p - if(MBMOD3.MODL.IsLoaded()) - MBMOD3.MODL->MODT.Unload(); - return; - case 177: //maleUpperBodyTexture_altTextures - if(MBMOD3.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - MBMOD3.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= MBMOD3.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []MBMOD3.MODL->Textures.MODS[ListIndex]->name; - MBMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MBMOD3.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MBMOD3.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 178: //maleUpperBodyTexture_modelFlags - if(MBMOD3.MODL.IsLoaded()) - MBMOD3.MODL->MODD.Unload(); - return; - case 179: //maleUpperBodyTexture_iconPath - MBMOD3.ICON.Unload(); - return; - case 180: //maleUpperBodyTexture_smallIconPath - MBMOD3.MICO.Unload(); - return; - case 181: //femaleUpperBody_modPath - if(FBMOD0.MODL.IsLoaded()) - FBMOD0.MODL->MODL.Unload(); - return; - case 182: //femaleUpperBody_modb - if(FBMOD0.MODL.IsLoaded()) - FBMOD0.MODL->MODB.Unload(); - return; - case 183: //femaleUpperBody_modt_p - if(FBMOD0.MODL.IsLoaded()) - FBMOD0.MODL->MODT.Unload(); - return; - case 184: //femaleUpperBody_altTextures - if(FBMOD0.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FBMOD0.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FBMOD0.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FBMOD0.MODL->Textures.MODS[ListIndex]->name; - FBMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FBMOD0.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FBMOD0.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 185: //femaleUpperBody_modelFlags - if(FBMOD0.MODL.IsLoaded()) - FBMOD0.MODL->MODD.Unload(); - return; - case 186: //femaleUpperBody_iconPath - FBMOD0.ICON.Unload(); - return; - case 187: //femaleUpperBody_smallIconPath - FBMOD0.MICO.Unload(); - return; - case 188: //femaleLeftHand_modPath - if(FBMOD1.MODL.IsLoaded()) - FBMOD1.MODL->MODL.Unload(); - return; - case 189: //femaleLeftHand_modb - if(FBMOD1.MODL.IsLoaded()) - FBMOD1.MODL->MODB.Unload(); - return; - case 190: //femaleLeftHand_modt_p - if(FBMOD1.MODL.IsLoaded()) - FBMOD1.MODL->MODT.Unload(); - return; - case 191: //femaleLeftHand_altTextures - if(FBMOD1.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FBMOD1.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FBMOD1.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FBMOD1.MODL->Textures.MODS[ListIndex]->name; - FBMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FBMOD1.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FBMOD1.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 192: //femaleLeftHand_modelFlags - if(FBMOD1.MODL.IsLoaded()) - FBMOD1.MODL->MODD.Unload(); - return; - case 193: //femaleLeftHand_iconPath - FBMOD1.ICON.Unload(); - return; - case 194: //femaleLeftHand_smallIconPath - FBMOD1.MICO.Unload(); - return; - case 195: //femaleRightHand_modPath - if(FBMOD2.MODL.IsLoaded()) - FBMOD2.MODL->MODL.Unload(); - return; - case 196: //femaleRightHand_modb - if(FBMOD2.MODL.IsLoaded()) - FBMOD2.MODL->MODB.Unload(); - return; - case 197: //femaleRightHand_modt_p - if(FBMOD2.MODL.IsLoaded()) - FBMOD2.MODL->MODT.Unload(); - return; - case 198: //femaleRightHand_altTextures - if(FBMOD2.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FBMOD2.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FBMOD2.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FBMOD2.MODL->Textures.MODS[ListIndex]->name; - FBMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FBMOD2.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FBMOD2.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 199: //femaleRightHand_modelFlags - if(FBMOD2.MODL.IsLoaded()) - FBMOD2.MODL->MODD.Unload(); - return; - case 200: //femaleRightHand_iconPath - FBMOD2.ICON.Unload(); - return; - case 201: //femaleRightHand_smallIconPath - FBMOD2.MICO.Unload(); - return; - case 202: //femaleUpperBodyTexture_modPath - if(FBMOD3.MODL.IsLoaded()) - FBMOD3.MODL->MODL.Unload(); - return; - case 203: //femaleUpperBodyTexture_modb - if(FBMOD3.MODL.IsLoaded()) - FBMOD3.MODL->MODB.Unload(); - return; - case 204: //femaleUpperBodyTexture_modt_p - if(FBMOD3.MODL.IsLoaded()) - FBMOD3.MODL->MODT.Unload(); - return; - case 205: //femaleUpperBodyTexture_altTextures - if(FBMOD3.MODL.IsLoaded()) - { - if(ListFieldID == 0) //altTextures - { - FBMOD3.MODL->Textures.Unload(); - return; - } - - if(ListIndex >= FBMOD3.MODL->Textures.MODS.size()) - return; - - switch(ListFieldID) - { - case 1: //name - delete []FBMOD3.MODL->Textures.MODS[ListIndex]->name; - FBMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - FBMOD3.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - FBMOD3.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 206: //femaleUpperBodyTexture_modelFlags - if(FBMOD3.MODL.IsLoaded()) - FBMOD3.MODL->MODD.Unload(); - return; - case 207: //femaleUpperBodyTexture_iconPath - FBMOD3.ICON.Unload(); - return; - case 208: //femaleUpperBodyTexture_smallIconPath - FBMOD3.MICO.Unload(); - return; - case 209: //hairs - HNAM.Unload(); - return; - case 210: //eyes - ENAM.Unload(); - return; - case 211: //maleFggs_p - MaleFGGS.Unload(); - return; - case 212: //maleFgga_p - MaleFGGA.Unload(); - return; - case 213: //maleFgts_p - MaleFGTS.Unload(); - return; - case 214: //maleSnam_p - MaleSNAM.Unload(); - return; - case 215: //femaleFggs_p - FemaleFGGS.Unload(); - return; - case 216: //femaleFgga_p - FemaleFGGA.Unload(); - return; - case 217: //femaleFgts_p - FemaleFGTS.Unload(); - return; - case 218: //femaleSnam_p - FemaleSNAM.Unload(); - return; - default: - return; - } - } + uint32_t RACERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) + { + switch (FieldID) + { + case 0: //recType + return GetType(); + case 1: //flags1 + return UINT32_FLAG_FIELD; + case 2: //fid + return FORMID_FIELD; + case 3: //versionControl1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 4; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 4: //eid + return ISTRING_FIELD; + case 5: //formVersion + return UINT16_FIELD; + case 6: //versionControl2 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 7: //full + return STRING_FIELD; + case 8: //description + return STRING_FIELD; + case 9: //relations + if (ListFieldID == 0) //relations + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)XNAM.value.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= XNAM.value.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //faction + return FORMID_FIELD; + case 2: //mod + return SINT32_FIELD; + case 3: //groupReactionType + return UINT32_TYPE_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 10: //skill1 + return SINT8_FIELD; + case 11: //skill1Boost + return SINT8_FIELD; + case 12: //skill2 + return SINT8_FIELD; + case 13: //skill2Boost + return SINT8_FIELD; + case 14: //skill3 + return SINT8_FIELD; + case 15: //skill3Boost + return SINT8_FIELD; + case 16: //skill4 + return SINT8_FIELD; + case 17: //skill4Boost + return SINT8_FIELD; + case 18: //skill5 + return SINT8_FIELD; + case 19: //skill5Boost + return SINT8_FIELD; + case 20: //skill6 + return SINT8_FIELD; + case 21: //skill6Boost + return SINT8_FIELD; + case 22: //skill7 + return SINT8_FIELD; + case 23: //skill7Boost + return SINT8_FIELD; + case 24: //unused1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 25: //maleHeight + return FLOAT32_FIELD; + case 26: //femaleHeight + return FLOAT32_FIELD; + case 27: //maleWeight + return FLOAT32_FIELD; + case 28: //femaleWeight + return FLOAT32_FIELD; + case 29: //flags + return UINT32_FLAG_FIELD; + case 30: //older + return FORMID_FIELD; + case 31: //younger + return FORMID_FIELD; + case 32: //maleVoice + return FORMID_FIELD; + case 33: //femaleVoice + return FORMID_FIELD; + case 34: //defaultHairMale + return FORMID_FIELD; + case 35: //defaultHairFemale + return FORMID_FIELD; + case 36: //defaultHairMaleColor + return UINT8_FIELD; + case 37: //defaultHairFemaleColor + return UINT8_FIELD; + case 38: //mainClamp + return FLOAT32_FIELD; + case 39: //faceClamp + return FLOAT32_FIELD; + case 40: //attr_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return ATTR.GetSize(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 41: //maleHead_modPath + return ISTRING_FIELD; + case 42: //maleHead_modb + return FLOAT32_FIELD; + case 43: //maleHead_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MHMOD0.MODL.IsLoaded() ? MHMOD0.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 44: //maleHead_altTextures + if (!MHMOD0.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MHMOD0.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MHMOD0.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 45: //maleHead_modelFlags + return UINT8_FLAG_FIELD; + case 46: //maleHead_iconPath + return ISTRING_FIELD; + case 47: //maleHead_smallIconPath + return ISTRING_FIELD; + case 48: //maleEars_modPath + return ISTRING_FIELD; + case 49: //maleEars_modb + return FLOAT32_FIELD; + case 50: //maleEars_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MHMOD1.MODL.IsLoaded() ? MHMOD1.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 51: //maleEars_altTextures + if (!MHMOD1.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MHMOD1.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MHMOD1.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 52: //maleEars_modelFlags + return UINT8_FLAG_FIELD; + case 53: //maleEars_iconPath + return ISTRING_FIELD; + case 54: //maleEars_smallIconPath + return ISTRING_FIELD; + case 55: //maleMouth_modPath + return ISTRING_FIELD; + case 56: //maleMouth_modb + return FLOAT32_FIELD; + case 57: //maleMouth_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MHMOD2.MODL.IsLoaded() ? MHMOD2.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 58: //maleMouth_altTextures + if (!MHMOD2.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MHMOD2.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MHMOD2.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 59: //maleMouth_modelFlags + return UINT8_FLAG_FIELD; + case 60: //maleMouth_iconPath + return ISTRING_FIELD; + case 61: //maleMouth_smallIconPath + return ISTRING_FIELD; + case 62: //maleTeethLower_modPath + return ISTRING_FIELD; + case 63: //maleTeethLower_modb + return FLOAT32_FIELD; + case 64: //maleTeethLower_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MHMOD3.MODL.IsLoaded() ? MHMOD3.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 65: //maleTeethLower_altTextures + if (!MHMOD3.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MHMOD3.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MHMOD3.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 66: //maleTeethLower_modelFlags + return UINT8_FLAG_FIELD; + case 67: //maleTeethLower_iconPath + return ISTRING_FIELD; + case 68: //maleTeethLower_smallIconPath + return ISTRING_FIELD; + case 69: //maleTeethUpper_modPath + return ISTRING_FIELD; + case 70: //maleTeethUpper_modb + return FLOAT32_FIELD; + case 71: //maleTeethUpper_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MHMOD4.MODL.IsLoaded() ? MHMOD4.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 72: //maleTeethUpper_altTextures + if (!MHMOD4.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MHMOD4.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MHMOD4.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 73: //maleTeethUpper_modelFlags + return UINT8_FLAG_FIELD; + case 74: //maleTeethUpper_iconPath + return ISTRING_FIELD; + case 75: //maleTeethUpper_smallIconPath + return ISTRING_FIELD; + case 76: //maleTongue_modPath + return ISTRING_FIELD; + case 77: //maleTongue_modb + return FLOAT32_FIELD; + case 78: //maleTongue_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MHMOD5.MODL.IsLoaded() ? MHMOD5.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 79: //maleTongue_altTextures + if (!MHMOD5.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MHMOD5.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MHMOD5.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 80: //maleTongue_modelFlags + return UINT8_FLAG_FIELD; + case 81: //maleTongue_iconPath + return ISTRING_FIELD; + case 82: //maleTongue_smallIconPath + return ISTRING_FIELD; + case 83: //maleLeftEye_modPath + return ISTRING_FIELD; + case 84: //maleLeftEye_modb + return FLOAT32_FIELD; + case 85: //maleLeftEye_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MHMOD6.MODL.IsLoaded() ? MHMOD6.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 86: //maleLeftEye_altTextures + if (!MHMOD6.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MHMOD6.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MHMOD6.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 87: //maleLeftEye_modelFlags + return UINT8_FLAG_FIELD; + case 88: //maleLeftEye_iconPath + return ISTRING_FIELD; + case 89: //maleLeftEye_smallIconPath + return ISTRING_FIELD; + case 90: //maleRightEye_modPath + return ISTRING_FIELD; + case 91: //maleRightEye_modb + return FLOAT32_FIELD; + case 92: //maleRightEye_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MHMOD7.MODL.IsLoaded() ? MHMOD7.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 93: //maleRightEye_altTextures + if (!MHMOD7.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MHMOD7.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MHMOD7.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 94: //maleRightEye_modelFlags + return UINT8_FLAG_FIELD; + case 95: //maleRightEye_iconPath + return ISTRING_FIELD; + case 96: //maleRightEye_smallIconPath + return ISTRING_FIELD; + case 97: //femaleHead_modPath + return ISTRING_FIELD; + case 98: //femaleHead_modb + return FLOAT32_FIELD; + case 99: //femaleHead_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FHMOD0.MODL.IsLoaded() ? FHMOD0.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 100: //femaleHead_altTextures + if (!FHMOD0.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FHMOD0.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FHMOD0.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 101: //femaleHead_modelFlags + return UINT8_FLAG_FIELD; + case 102: //femaleHead_iconPath + return ISTRING_FIELD; + case 103: //femaleHead_smallIconPath + return ISTRING_FIELD; + case 104: //femaleEars_modPath + return ISTRING_FIELD; + case 105: //femaleEars_modb + return FLOAT32_FIELD; + case 106: //femaleEars_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FHMOD1.MODL.IsLoaded() ? FHMOD1.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 107: //femaleEars_altTextures + if (!FHMOD1.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FHMOD1.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FHMOD1.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 108: //femaleEars_modelFlags + return UINT8_FLAG_FIELD; + case 109: //femaleEars_iconPath + return ISTRING_FIELD; + case 110: //femaleEars_smallIconPath + return ISTRING_FIELD; + case 111: //femaleMouth_modPath + return ISTRING_FIELD; + case 112: //femaleMouth_modb + return FLOAT32_FIELD; + case 113: //femaleMouth_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FHMOD2.MODL.IsLoaded() ? FHMOD2.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 114: //femaleMouth_altTextures + if (!FHMOD2.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FHMOD2.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FHMOD2.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 115: //femaleMouth_modelFlags + return UINT8_FLAG_FIELD; + case 116: //femaleMouth_iconPath + return ISTRING_FIELD; + case 117: //femaleMouth_smallIconPath + return ISTRING_FIELD; + case 118: //femaleTeethLower_modPath + return ISTRING_FIELD; + case 119: //femaleTeethLower_modb + return FLOAT32_FIELD; + case 120: //femaleTeethLower_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FHMOD3.MODL.IsLoaded() ? FHMOD3.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 121: //femaleTeethLower_altTextures + if (!FHMOD3.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FHMOD3.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FHMOD3.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 122: //femaleTeethLower_modelFlags + return UINT8_FLAG_FIELD; + case 123: //femaleTeethLower_iconPath + return ISTRING_FIELD; + case 124: //femaleTeethLower_smallIconPath + return ISTRING_FIELD; + case 125: //femaleTeethUpper_modPath + return ISTRING_FIELD; + case 126: //femaleTeethUpper_modb + return FLOAT32_FIELD; + case 127: //femaleTeethUpper_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FHMOD4.MODL.IsLoaded() ? FHMOD4.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 128: //femaleTeethUpper_altTextures + if (!FHMOD4.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FHMOD4.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FHMOD4.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 129: //femaleTeethUpper_modelFlags + return UINT8_FLAG_FIELD; + case 130: //femaleTeethUpper_iconPath + return ISTRING_FIELD; + case 131: //femaleTeethUpper_smallIconPath + return ISTRING_FIELD; + case 132: //femaleTongue_modPath + return ISTRING_FIELD; + case 133: //femaleTongue_modb + return FLOAT32_FIELD; + case 134: //femaleTongue_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FHMOD5.MODL.IsLoaded() ? FHMOD5.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 135: //femaleTongue_altTextures + if (!FHMOD5.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FHMOD5.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FHMOD5.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 136: //femaleTongue_modelFlags + return UINT8_FLAG_FIELD; + case 137: //femaleTongue_iconPath + return ISTRING_FIELD; + case 138: //femaleTongue_smallIconPath + return ISTRING_FIELD; + case 139: //femaleLeftEye_modPath + return ISTRING_FIELD; + case 140: //femaleLeftEye_modb + return FLOAT32_FIELD; + case 141: //femaleLeftEye_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FHMOD6.MODL.IsLoaded() ? FHMOD6.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 142: //femaleLeftEye_altTextures + if (!FHMOD6.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FHMOD6.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FHMOD6.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 143: //femaleLeftEye_modelFlags + return UINT8_FLAG_FIELD; + case 144: //femaleLeftEye_iconPath + return ISTRING_FIELD; + case 145: //femaleLeftEye_smallIconPath + return ISTRING_FIELD; + case 146: //femaleRightEye_modPath + return ISTRING_FIELD; + case 147: //femaleRightEye_modb + return FLOAT32_FIELD; + case 148: //femaleRightEye_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FHMOD7.MODL.IsLoaded() ? FHMOD7.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 149: //femaleRightEye_altTextures + if (!FHMOD7.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FHMOD7.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FHMOD7.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 150: //femaleRightEye_modelFlags + return UINT8_FLAG_FIELD; + case 151: //femaleRightEye_iconPath + return ISTRING_FIELD; + case 152: //femaleRightEye_smallIconPath + return ISTRING_FIELD; + case 153: //maleUpperBody_modPath + return ISTRING_FIELD; + case 154: //maleUpperBody_modb + return FLOAT32_FIELD; + case 155: //maleUpperBody_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MBMOD0.MODL.IsLoaded() ? MBMOD0.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 156: //maleUpperBody_altTextures + if (!MBMOD0.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MBMOD0.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MBMOD0.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 157: //maleUpperBody_modelFlags + return UINT8_FLAG_FIELD; + case 158: //maleUpperBody_iconPath + return ISTRING_FIELD; + case 159: //maleUpperBody_smallIconPath + return ISTRING_FIELD; + case 160: //maleLeftHand_modPath + return ISTRING_FIELD; + case 161: //maleLeftHand_modb + return FLOAT32_FIELD; + case 162: //maleLeftHand_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MBMOD1.MODL.IsLoaded() ? MBMOD1.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 163: //maleLeftHand_altTextures + if (!MBMOD1.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MBMOD1.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MBMOD1.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 164: //maleLeftHand_modelFlags + return UINT8_FLAG_FIELD; + case 165: //maleLeftHand_iconPath + return ISTRING_FIELD; + case 166: //maleLeftHand_smallIconPath + return ISTRING_FIELD; + case 167: //maleRightHand_modPath + return ISTRING_FIELD; + case 168: //maleRightHand_modb + return FLOAT32_FIELD; + case 169: //maleRightHand_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MBMOD2.MODL.IsLoaded() ? MBMOD2.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 170: //maleRightHand_altTextures + if (!MBMOD2.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MBMOD2.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MBMOD2.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 171: //maleRightHand_modelFlags + return UINT8_FLAG_FIELD; + case 172: //maleRightHand_iconPath + return ISTRING_FIELD; + case 173: //maleRightHand_smallIconPath + return ISTRING_FIELD; + case 174: //maleUpperBodyTexture_modPath + return ISTRING_FIELD; + case 175: //maleUpperBodyTexture_modb + return FLOAT32_FIELD; + case 176: //maleUpperBodyTexture_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MBMOD3.MODL.IsLoaded() ? MBMOD3.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 177: //maleUpperBodyTexture_altTextures + if (!MBMOD3.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MBMOD3.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MBMOD3.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 178: //maleUpperBodyTexture_modelFlags + return UINT8_FLAG_FIELD; + case 179: //maleUpperBodyTexture_iconPath + return ISTRING_FIELD; + case 180: //maleUpperBodyTexture_smallIconPath + return ISTRING_FIELD; + case 181: //femaleUpperBody_modPath + return ISTRING_FIELD; + case 182: //femaleUpperBody_modb + return FLOAT32_FIELD; + case 183: //femaleUpperBody_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FBMOD0.MODL.IsLoaded() ? FBMOD0.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 184: //femaleUpperBody_altTextures + if (!FBMOD0.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FBMOD0.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FBMOD0.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 185: //femaleUpperBody_modelFlags + return UINT8_FLAG_FIELD; + case 186: //femaleUpperBody_iconPath + return ISTRING_FIELD; + case 187: //femaleUpperBody_smallIconPath + return ISTRING_FIELD; + case 188: //femaleLeftHand_modPath + return ISTRING_FIELD; + case 189: //femaleLeftHand_modb + return FLOAT32_FIELD; + case 190: //femaleLeftHand_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FBMOD1.MODL.IsLoaded() ? FBMOD1.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 191: //femaleLeftHand_altTextures + if (!FBMOD1.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FBMOD1.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FBMOD1.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 192: //femaleLeftHand_modelFlags + return UINT8_FLAG_FIELD; + case 193: //femaleLeftHand_iconPath + return ISTRING_FIELD; + case 194: //femaleLeftHand_smallIconPath + return ISTRING_FIELD; + case 195: //femaleRightHand_modPath + return ISTRING_FIELD; + case 196: //femaleRightHand_modb + return FLOAT32_FIELD; + case 197: //femaleRightHand_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FBMOD2.MODL.IsLoaded() ? FBMOD2.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 198: //femaleRightHand_altTextures + if (!FBMOD2.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FBMOD2.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FBMOD2.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 199: //femaleRightHand_modelFlags + return UINT8_FLAG_FIELD; + case 200: //femaleRightHand_iconPath + return ISTRING_FIELD; + case 201: //femaleRightHand_smallIconPath + return ISTRING_FIELD; + case 202: //femaleUpperBodyTexture_modPath + return ISTRING_FIELD; + case 203: //femaleUpperBodyTexture_modb + return FLOAT32_FIELD; + case 204: //femaleUpperBodyTexture_modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FBMOD3.MODL.IsLoaded() ? FBMOD3.MODL->MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 205: //femaleUpperBodyTexture_altTextures + if (!FBMOD3.MODL.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)FBMOD3.MODL->Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= FBMOD3.MODL->Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 206: //femaleUpperBodyTexture_modelFlags + return UINT8_FLAG_FIELD; + case 207: //femaleUpperBodyTexture_iconPath + return ISTRING_FIELD; + case 208: //femaleUpperBodyTexture_smallIconPath + return ISTRING_FIELD; + case 209: //hairs + switch (WhichAttribute) + { + case 0: //fieldType + return FORMID_ARRAY_FIELD; + case 1: //fieldSize + return (uint32_t)HNAM.value.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 210: //eyes + switch (WhichAttribute) + { + case 0: //fieldType + return FORMID_ARRAY_FIELD; + case 1: //fieldSize + return (uint32_t)ENAM.value.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 211: //maleFggs_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MaleFGGS.IsLoaded() ? 200 : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 212: //maleFgga_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MaleFGGA.IsLoaded() ? 120 : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 213: //maleFgts_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MaleFGTS.IsLoaded() ? 200 : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 214: //maleSnam_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 215: //femaleFggs_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FemaleFGGS.IsLoaded() ? 200 : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 216: //femaleFgga_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FemaleFGGA.IsLoaded() ? 120 : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 217: //femaleFgts_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return FemaleFGTS.IsLoaded() ? 200 : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 218: //femaleSnam_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } + + void * RACERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) + { + switch (FieldID) + { + case 1: //flags1 + return &flags; + case 2: //fid + return &formID; + case 3: //versionControl1 + *FieldValues = &flagsUnk; + return NULL; + case 4: //eid + return EDID.value; + case 5: //formVersion + return &formVersion; + case 6: //versionControl2 + *FieldValues = &versionControl2[0]; + return NULL; + case 7: //full + return FULL.value; + case 8: //description + return DESC.value; + case 9: //relations + if (ListIndex >= XNAM.value.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //faction + return &XNAM.value[ListIndex]->faction; + case 2: //mod + return &XNAM.value[ListIndex]->mod; + case 3: //groupReactionType + return &XNAM.value[ListIndex]->groupReactionType; + default: + return NULL; + } + return NULL; + case 10: //skill1 + return &DATA.value.skills[0].value; + case 11: //skill1Boost + return &DATA.value.skills[0].boost; + case 12: //skill2 + return &DATA.value.skills[1].value; + case 13: //skill2Boost + return &DATA.value.skills[1].boost; + case 14: //skill3 + return &DATA.value.skills[2].value; + case 15: //skill3Boost + return &DATA.value.skills[2].boost; + case 16: //skill4 + return &DATA.value.skills[3].value; + case 17: //skill4Boost + return &DATA.value.skills[3].boost; + case 18: //skill5 + return &DATA.value.skills[4].value; + case 19: //skill5Boost + return &DATA.value.skills[4].boost; + case 20: //skill6 + return &DATA.value.skills[5].value; + case 21: //skill6Boost + return &DATA.value.skills[5].boost; + case 22: //skill7 + return &DATA.value.skills[6].value; + case 23: //skill7Boost + return &DATA.value.skills[6].boost; + case 24: //unused1 + *FieldValues = &DATA.value.unused1[0]; + return NULL; + case 25: //maleHeight + return &DATA.value.maleHeight; + case 26: //femaleHeight + return &DATA.value.femaleHeight; + case 27: //maleWeight + return &DATA.value.maleWeight; + case 28: //femaleWeight + return &DATA.value.femaleWeight; + case 29: //flags + return &DATA.value.flags; + case 30: //older + return ONAM.IsLoaded() ? &ONAM.value : NULL; + case 31: //younger + return YNAM.IsLoaded() ? &YNAM.value : NULL; + case 32: //maleVoice + return VTCK.IsLoaded() ? &VTCK.value.maleVoice : NULL; + case 33: //femaleVoice + return VTCK.IsLoaded() ? &VTCK.value.femaleVoice : NULL; + case 34: //defaultHairMale + return DNAM.IsLoaded() ? &DNAM.value.defaultHairMale : NULL; + case 35: //defaultHairFemale + return DNAM.IsLoaded() ? &DNAM.value.defaultHairFemale : NULL; + case 36: //defaultHairMaleColor + return CNAM.IsLoaded() ? &CNAM.value.defaultHairMale : NULL; + case 37: //defaultHairFemaleColor + return CNAM.IsLoaded() ? &CNAM.value.defaultHairFemale : NULL; + case 38: //mainClamp + return PNAM.IsLoaded() ? &PNAM.value : NULL; + case 39: //faceClamp + return UNAM.IsLoaded() ? &UNAM.value : NULL; + case 40: //attr_p + *FieldValues = ATTR.value; + return NULL; + case 41: //maleHead_modPath + return MHMOD0.MODL.IsLoaded() ? MHMOD0.MODL->MODL.value : NULL; + case 42: //maleHead_modb + return MHMOD0.MODL.IsLoaded() ? (MHMOD0.MODL->MODB.IsLoaded() ? &MHMOD0.MODL->MODB.value : NULL) : NULL; + case 43: //maleHead_modt_p + *FieldValues = MHMOD0.MODL.IsLoaded() ? MHMOD0.MODL->MODT.value : NULL; + return NULL; + case 44: //maleHead_altTextures + if (!MHMOD0.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MHMOD0.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MHMOD0.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MHMOD0.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MHMOD0.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 45: //maleHead_modelFlags + return MHMOD0.MODL.IsLoaded() ? (MHMOD0.MODL->MODD.IsLoaded() ? &MHMOD0.MODL->MODD.value : NULL) : NULL; + case 46: //maleHead_iconPath + return MHMOD0.ICON.value; + case 47: //maleHead_smallIconPath + return MHMOD0.MICO.value; + case 48: //maleEars_modPath + return MHMOD1.MODL.IsLoaded() ? MHMOD1.MODL->MODL.value : NULL; + case 49: //maleEars_modb + return MHMOD1.MODL.IsLoaded() ? (MHMOD1.MODL->MODB.IsLoaded() ? &MHMOD1.MODL->MODB.value : NULL) : NULL; + case 50: //maleEars_modt_p + *FieldValues = MHMOD1.MODL.IsLoaded() ? MHMOD1.MODL->MODT.value : NULL; + return NULL; + case 51: //maleEars_altTextures + if (!MHMOD1.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MHMOD1.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MHMOD1.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MHMOD1.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MHMOD1.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 52: //maleEars_modelFlags + return MHMOD1.MODL.IsLoaded() ? (MHMOD1.MODL->MODD.IsLoaded() ? &MHMOD1.MODL->MODD.value : NULL) : NULL; + case 53: //maleEars_iconPath + return MHMOD1.ICON.value; + case 54: //maleEars_smallIconPath + return MHMOD1.MICO.value; + case 55: //maleMouth_modPath + return MHMOD2.MODL.IsLoaded() ? MHMOD2.MODL->MODL.value : NULL; + case 56: //maleMouth_modb + return MHMOD2.MODL.IsLoaded() ? (MHMOD2.MODL->MODB.IsLoaded() ? &MHMOD2.MODL->MODB.value : NULL) : NULL; + case 57: //maleMouth_modt_p + *FieldValues = MHMOD2.MODL.IsLoaded() ? MHMOD2.MODL->MODT.value : NULL; + return NULL; + case 58: //maleMouth_altTextures + if (!MHMOD2.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MHMOD2.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MHMOD2.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MHMOD2.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MHMOD2.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 59: //maleMouth_modelFlags + return MHMOD2.MODL.IsLoaded() ? (MHMOD2.MODL->MODD.IsLoaded() ? &MHMOD2.MODL->MODD.value : NULL) : NULL; + case 60: //maleMouth_iconPath + return MHMOD2.ICON.value; + case 61: //maleMouth_smallIconPath + return MHMOD2.MICO.value; + case 62: //maleTeethLower_modPath + return MHMOD3.MODL.IsLoaded() ? MHMOD3.MODL->MODL.value : NULL; + case 63: //maleTeethLower_modb + return MHMOD3.MODL.IsLoaded() ? (MHMOD3.MODL->MODB.IsLoaded() ? &MHMOD3.MODL->MODB.value : NULL) : NULL; + case 64: //maleTeethLower_modt_p + *FieldValues = MHMOD3.MODL.IsLoaded() ? MHMOD3.MODL->MODT.value : NULL; + return NULL; + case 65: //maleTeethLower_altTextures + if (!MHMOD3.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MHMOD3.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MHMOD3.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MHMOD3.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MHMOD3.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 66: //maleTeethLower_modelFlags + return MHMOD3.MODL.IsLoaded() ? (MHMOD3.MODL->MODD.IsLoaded() ? &MHMOD3.MODL->MODD.value : NULL) : NULL; + case 67: //maleTeethLower_iconPath + return MHMOD3.ICON.value; + case 68: //maleTeethLower_smallIconPath + return MHMOD3.MICO.value; + case 69: //maleTeethUpper_modPath + return MHMOD4.MODL.IsLoaded() ? MHMOD4.MODL->MODL.value : NULL; + case 70: //maleTeethUpper_modb + return MHMOD4.MODL.IsLoaded() ? (MHMOD4.MODL->MODB.IsLoaded() ? &MHMOD4.MODL->MODB.value : NULL) : NULL; + case 71: //maleTeethUpper_modt_p + *FieldValues = MHMOD4.MODL.IsLoaded() ? MHMOD4.MODL->MODT.value : NULL; + return NULL; + case 72: //maleTeethUpper_altTextures + if (!MHMOD4.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MHMOD4.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MHMOD4.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MHMOD4.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MHMOD4.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 73: //maleTeethUpper_modelFlags + return MHMOD4.MODL.IsLoaded() ? (MHMOD4.MODL->MODD.IsLoaded() ? &MHMOD4.MODL->MODD.value : NULL) : NULL; + case 74: //maleTeethUpper_iconPath + return MHMOD4.ICON.value; + case 75: //maleTeethUpper_smallIconPath + return MHMOD4.MICO.value; + case 76: //maleTongue_modPath + return MHMOD5.MODL.IsLoaded() ? MHMOD5.MODL->MODL.value : NULL; + case 77: //maleTongue_modb + return MHMOD5.MODL.IsLoaded() ? (MHMOD5.MODL->MODB.IsLoaded() ? &MHMOD5.MODL->MODB.value : NULL) : NULL; + case 78: //maleTongue_modt_p + *FieldValues = MHMOD5.MODL.IsLoaded() ? MHMOD5.MODL->MODT.value : NULL; + return NULL; + case 79: //maleTongue_altTextures + if (!MHMOD5.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MHMOD5.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MHMOD5.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MHMOD5.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MHMOD5.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 80: //maleTongue_modelFlags + return MHMOD5.MODL.IsLoaded() ? (MHMOD5.MODL->MODD.IsLoaded() ? &MHMOD5.MODL->MODD.value : NULL) : NULL; + case 81: //maleTongue_iconPath + return MHMOD5.ICON.value; + case 82: //maleTongue_smallIconPath + return MHMOD5.MICO.value; + case 83: //maleLeftEye_modPath + return MHMOD6.MODL.IsLoaded() ? MHMOD6.MODL->MODL.value : NULL; + case 84: //maleLeftEye_modb + return MHMOD6.MODL.IsLoaded() ? (MHMOD6.MODL->MODB.IsLoaded() ? &MHMOD6.MODL->MODB.value : NULL) : NULL; + case 85: //maleLeftEye_modt_p + *FieldValues = MHMOD6.MODL.IsLoaded() ? MHMOD6.MODL->MODT.value : NULL; + return NULL; + case 86: //maleLeftEye_altTextures + if (!MHMOD6.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MHMOD6.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MHMOD6.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MHMOD6.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MHMOD6.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 87: //maleLeftEye_modelFlags + return MHMOD6.MODL.IsLoaded() ? (MHMOD6.MODL->MODD.IsLoaded() ? &MHMOD6.MODL->MODD.value : NULL) : NULL; + case 88: //maleLeftEye_iconPath + return MHMOD6.ICON.value; + case 89: //maleLeftEye_smallIconPath + return MHMOD6.MICO.value; + case 90: //maleRightEye_modPath + return MHMOD7.MODL.IsLoaded() ? MHMOD7.MODL->MODL.value : NULL; + case 91: //maleRightEye_modb + return MHMOD7.MODL.IsLoaded() ? (MHMOD7.MODL->MODB.IsLoaded() ? &MHMOD7.MODL->MODB.value : NULL) : NULL; + case 92: //maleRightEye_modt_p + *FieldValues = MHMOD7.MODL.IsLoaded() ? MHMOD7.MODL->MODT.value : NULL; + return NULL; + case 93: //maleRightEye_altTextures + if (!MHMOD7.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MHMOD7.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MHMOD7.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MHMOD7.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MHMOD7.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 94: //maleRightEye_modelFlags + return MHMOD7.MODL.IsLoaded() ? (MHMOD7.MODL->MODD.IsLoaded() ? &MHMOD7.MODL->MODD.value : NULL) : NULL; + case 95: //maleRightEye_iconPath + return MHMOD7.ICON.value; + case 96: //maleRightEye_smallIconPath + return MHMOD7.MICO.value; + case 97: //femaleHead_modPath + return FHMOD0.MODL.IsLoaded() ? FHMOD0.MODL->MODL.value : NULL; + case 98: //femaleHead_modb + return FHMOD0.MODL.IsLoaded() ? (FHMOD0.MODL->MODB.IsLoaded() ? &FHMOD0.MODL->MODB.value : NULL) : NULL; + case 99: //femaleHead_modt_p + *FieldValues = FHMOD0.MODL.IsLoaded() ? FHMOD0.MODL->MODT.value : NULL; + return NULL; + case 100: //femaleHead_altTextures + if (!FHMOD0.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FHMOD0.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FHMOD0.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FHMOD0.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FHMOD0.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 101: //femaleHead_modelFlags + return FHMOD0.MODL.IsLoaded() ? (FHMOD0.MODL->MODD.IsLoaded() ? &FHMOD0.MODL->MODD.value : NULL) : NULL; + case 102: //femaleHead_iconPath + return FHMOD0.ICON.value; + case 103: //femaleHead_smallIconPath + return FHMOD0.MICO.value; + case 104: //femaleEars_modPath + return FHMOD1.MODL.IsLoaded() ? FHMOD1.MODL->MODL.value : NULL; + case 105: //femaleEars_modb + return FHMOD1.MODL.IsLoaded() ? (FHMOD1.MODL->MODB.IsLoaded() ? &FHMOD1.MODL->MODB.value : NULL) : NULL; + case 106: //femaleEars_modt_p + *FieldValues = FHMOD1.MODL.IsLoaded() ? FHMOD1.MODL->MODT.value : NULL; + return NULL; + case 107: //femaleEars_altTextures + if (!FHMOD1.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FHMOD1.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FHMOD1.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FHMOD1.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FHMOD1.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 108: //femaleEars_modelFlags + return FHMOD1.MODL.IsLoaded() ? (FHMOD1.MODL->MODD.IsLoaded() ? &FHMOD1.MODL->MODD.value : NULL) : NULL; + case 109: //femaleEars_iconPath + return FHMOD1.ICON.value; + case 110: //femaleEars_smallIconPath + return FHMOD1.MICO.value; + case 111: //femaleMouth_modPath + return FHMOD2.MODL.IsLoaded() ? FHMOD2.MODL->MODL.value : NULL; + case 112: //femaleMouth_modb + return FHMOD2.MODL.IsLoaded() ? (FHMOD2.MODL->MODB.IsLoaded() ? &FHMOD2.MODL->MODB.value : NULL) : NULL; + case 113: //femaleMouth_modt_p + *FieldValues = FHMOD2.MODL.IsLoaded() ? FHMOD2.MODL->MODT.value : NULL; + return NULL; + case 114: //femaleMouth_altTextures + if (!FHMOD2.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FHMOD2.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FHMOD2.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FHMOD2.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FHMOD2.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 115: //femaleMouth_modelFlags + return FHMOD2.MODL.IsLoaded() ? (FHMOD2.MODL->MODD.IsLoaded() ? &FHMOD2.MODL->MODD.value : NULL) : NULL; + case 116: //femaleMouth_iconPath + return FHMOD2.ICON.value; + case 117: //femaleMouth_smallIconPath + return FHMOD2.MICO.value; + case 118: //femaleTeethLower_modPath + return FHMOD3.MODL.IsLoaded() ? FHMOD3.MODL->MODL.value : NULL; + case 119: //femaleTeethLower_modb + return FHMOD3.MODL.IsLoaded() ? (FHMOD3.MODL->MODB.IsLoaded() ? &FHMOD3.MODL->MODB.value : NULL) : NULL; + case 120: //femaleTeethLower_modt_p + *FieldValues = FHMOD3.MODL.IsLoaded() ? FHMOD3.MODL->MODT.value : NULL; + return NULL; + case 121: //femaleTeethLower_altTextures + if (!FHMOD3.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FHMOD3.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FHMOD3.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FHMOD3.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FHMOD3.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 122: //femaleTeethLower_modelFlags + return FHMOD3.MODL.IsLoaded() ? (FHMOD3.MODL->MODD.IsLoaded() ? &FHMOD3.MODL->MODD.value : NULL) : NULL; + case 123: //femaleTeethLower_iconPath + return FHMOD3.ICON.value; + case 124: //femaleTeethLower_smallIconPath + return FHMOD3.MICO.value; + case 125: //femaleTeethUpper_modPath + return FHMOD4.MODL.IsLoaded() ? FHMOD4.MODL->MODL.value : NULL; + case 126: //femaleTeethUpper_modb + return FHMOD4.MODL.IsLoaded() ? (FHMOD4.MODL->MODB.IsLoaded() ? &FHMOD4.MODL->MODB.value : NULL) : NULL; + case 127: //femaleTeethUpper_modt_p + *FieldValues = FHMOD4.MODL.IsLoaded() ? FHMOD4.MODL->MODT.value : NULL; + return NULL; + case 128: //femaleTeethUpper_altTextures + if (!FHMOD4.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FHMOD4.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FHMOD4.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FHMOD4.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FHMOD4.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 129: //femaleTeethUpper_modelFlags + return FHMOD4.MODL.IsLoaded() ? (FHMOD4.MODL->MODD.IsLoaded() ? &FHMOD4.MODL->MODD.value : NULL) : NULL; + case 130: //femaleTeethUpper_iconPath + return FHMOD4.ICON.value; + case 131: //femaleTeethUpper_smallIconPath + return FHMOD4.MICO.value; + case 132: //femaleTongue_modPath + return FHMOD5.MODL.IsLoaded() ? FHMOD5.MODL->MODL.value : NULL; + case 133: //femaleTongue_modb + return FHMOD5.MODL.IsLoaded() ? (FHMOD5.MODL->MODB.IsLoaded() ? &FHMOD5.MODL->MODB.value : NULL) : NULL; + case 134: //femaleTongue_modt_p + *FieldValues = FHMOD5.MODL.IsLoaded() ? FHMOD5.MODL->MODT.value : NULL; + return NULL; + case 135: //femaleTongue_altTextures + if (!FHMOD5.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FHMOD5.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FHMOD5.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FHMOD5.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FHMOD5.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 136: //femaleTongue_modelFlags + return FHMOD5.MODL.IsLoaded() ? (FHMOD5.MODL->MODD.IsLoaded() ? &FHMOD5.MODL->MODD.value : NULL) : NULL; + case 137: //femaleTongue_iconPath + return FHMOD5.ICON.value; + case 138: //femaleTongue_smallIconPath + return FHMOD5.MICO.value; + case 139: //femaleLeftEye_modPath + return FHMOD6.MODL.IsLoaded() ? FHMOD6.MODL->MODL.value : NULL; + case 140: //femaleLeftEye_modb + return FHMOD6.MODL.IsLoaded() ? (FHMOD6.MODL->MODB.IsLoaded() ? &FHMOD6.MODL->MODB.value : NULL) : NULL; + case 141: //femaleLeftEye_modt_p + *FieldValues = FHMOD6.MODL.IsLoaded() ? FHMOD6.MODL->MODT.value : NULL; + return NULL; + case 142: //femaleLeftEye_altTextures + if (!FHMOD6.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FHMOD6.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FHMOD6.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FHMOD6.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FHMOD6.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 143: //femaleLeftEye_modelFlags + return FHMOD6.MODL.IsLoaded() ? (FHMOD6.MODL->MODD.IsLoaded() ? &FHMOD6.MODL->MODD.value : NULL) : NULL; + case 144: //femaleLeftEye_iconPath + return FHMOD6.ICON.value; + case 145: //femaleLeftEye_smallIconPath + return FHMOD6.MICO.value; + case 146: //femaleRightEye_modPath + return FHMOD7.MODL.IsLoaded() ? FHMOD7.MODL->MODL.value : NULL; + case 147: //femaleRightEye_modb + return FHMOD7.MODL.IsLoaded() ? (FHMOD7.MODL->MODB.IsLoaded() ? &FHMOD7.MODL->MODB.value : NULL) : NULL; + case 148: //femaleRightEye_modt_p + *FieldValues = FHMOD7.MODL.IsLoaded() ? FHMOD7.MODL->MODT.value : NULL; + return NULL; + case 149: //femaleRightEye_altTextures + if (!FHMOD7.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FHMOD7.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FHMOD7.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FHMOD7.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FHMOD7.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 150: //femaleRightEye_modelFlags + return FHMOD7.MODL.IsLoaded() ? (FHMOD7.MODL->MODD.IsLoaded() ? &FHMOD7.MODL->MODD.value : NULL) : NULL; + case 151: //femaleRightEye_iconPath + return FHMOD7.ICON.value; + case 152: //femaleRightEye_smallIconPath + return FHMOD7.MICO.value; + case 153: //maleUpperBody_modPath + return MBMOD0.MODL.IsLoaded() ? MBMOD0.MODL->MODL.value : NULL; + case 154: //maleUpperBody_modb + return MBMOD0.MODL.IsLoaded() ? (MBMOD0.MODL->MODB.IsLoaded() ? &MBMOD0.MODL->MODB.value : NULL) : NULL; + case 155: //maleUpperBody_modt_p + *FieldValues = MBMOD0.MODL.IsLoaded() ? MBMOD0.MODL->MODT.value : NULL; + return NULL; + case 156: //maleUpperBody_altTextures + if (!MBMOD0.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MBMOD0.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MBMOD0.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MBMOD0.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MBMOD0.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 157: //maleUpperBody_modelFlags + return MBMOD0.MODL.IsLoaded() ? (MBMOD0.MODL->MODD.IsLoaded() ? &MBMOD0.MODL->MODD.value : NULL) : NULL; + case 158: //maleUpperBody_iconPath + return MBMOD0.ICON.value; + case 159: //maleUpperBody_smallIconPath + return MBMOD0.MICO.value; + case 160: //maleLeftHand_modPath + return MBMOD1.MODL.IsLoaded() ? MBMOD1.MODL->MODL.value : NULL; + case 161: //maleLeftHand_modb + return MBMOD1.MODL.IsLoaded() ? (MBMOD1.MODL->MODB.IsLoaded() ? &MBMOD1.MODL->MODB.value : NULL) : NULL; + case 162: //maleLeftHand_modt_p + *FieldValues = MBMOD1.MODL.IsLoaded() ? MBMOD1.MODL->MODT.value : NULL; + return NULL; + case 163: //maleLeftHand_altTextures + if (!MBMOD1.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MBMOD1.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MBMOD1.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MBMOD1.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MBMOD1.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 164: //maleLeftHand_modelFlags + return MBMOD1.MODL.IsLoaded() ? (MBMOD1.MODL->MODD.IsLoaded() ? &MBMOD1.MODL->MODD.value : NULL) : NULL; + case 165: //maleLeftHand_iconPath + return MBMOD1.ICON.value; + case 166: //maleLeftHand_smallIconPath + return MBMOD1.MICO.value; + case 167: //maleRightHand_modPath + return MBMOD2.MODL.IsLoaded() ? MBMOD2.MODL->MODL.value : NULL; + case 168: //maleRightHand_modb + return MBMOD2.MODL.IsLoaded() ? (MBMOD2.MODL->MODB.IsLoaded() ? &MBMOD2.MODL->MODB.value : NULL) : NULL; + case 169: //maleRightHand_modt_p + *FieldValues = MBMOD2.MODL.IsLoaded() ? MBMOD2.MODL->MODT.value : NULL; + return NULL; + case 170: //maleRightHand_altTextures + if (!MBMOD2.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MBMOD2.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MBMOD2.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MBMOD2.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MBMOD2.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 171: //maleRightHand_modelFlags + return MBMOD2.MODL.IsLoaded() ? (MBMOD2.MODL->MODD.IsLoaded() ? &MBMOD2.MODL->MODD.value : NULL) : NULL; + case 172: //maleRightHand_iconPath + return MBMOD2.ICON.value; + case 173: //maleRightHand_smallIconPath + return MBMOD2.MICO.value; + case 174: //maleUpperBodyTexture_modPath + return MBMOD3.MODL.IsLoaded() ? MBMOD3.MODL->MODL.value : NULL; + case 175: //maleUpperBodyTexture_modb + return MBMOD3.MODL.IsLoaded() ? (MBMOD3.MODL->MODB.IsLoaded() ? &MBMOD3.MODL->MODB.value : NULL) : NULL; + case 176: //maleUpperBodyTexture_modt_p + *FieldValues = MBMOD3.MODL.IsLoaded() ? MBMOD3.MODL->MODT.value : NULL; + return NULL; + case 177: //maleUpperBodyTexture_altTextures + if (!MBMOD3.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= MBMOD3.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MBMOD3.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &MBMOD3.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &MBMOD3.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 178: //maleUpperBodyTexture_modelFlags + return MBMOD3.MODL.IsLoaded() ? (MBMOD3.MODL->MODD.IsLoaded() ? &MBMOD3.MODL->MODD.value : NULL) : NULL; + case 179: //maleUpperBodyTexture_iconPath + return MBMOD3.ICON.value; + case 180: //maleUpperBodyTexture_smallIconPath + return MBMOD3.MICO.value; + case 181: //femaleUpperBody_modPath + return FBMOD0.MODL.IsLoaded() ? FBMOD0.MODL->MODL.value : NULL; + case 182: //femaleUpperBody_modb + return FBMOD0.MODL.IsLoaded() ? (FBMOD0.MODL->MODB.IsLoaded() ? &FBMOD0.MODL->MODB.value : NULL) : NULL; + case 183: //femaleUpperBody_modt_p + *FieldValues = FBMOD0.MODL.IsLoaded() ? FBMOD0.MODL->MODT.value : NULL; + return NULL; + case 184: //femaleUpperBody_altTextures + if (!FBMOD0.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FBMOD0.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FBMOD0.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FBMOD0.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FBMOD0.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 185: //femaleUpperBody_modelFlags + return FBMOD0.MODL.IsLoaded() ? (FBMOD0.MODL->MODD.IsLoaded() ? &FBMOD0.MODL->MODD.value : NULL) : NULL; + case 186: //femaleUpperBody_iconPath + return FBMOD0.ICON.value; + case 187: //femaleUpperBody_smallIconPath + return FBMOD0.MICO.value; + case 188: //femaleLeftHand_modPath + return FBMOD1.MODL.IsLoaded() ? FBMOD1.MODL->MODL.value : NULL; + case 189: //femaleLeftHand_modb + return FBMOD1.MODL.IsLoaded() ? (FBMOD1.MODL->MODB.IsLoaded() ? &FBMOD1.MODL->MODB.value : NULL) : NULL; + case 190: //femaleLeftHand_modt_p + *FieldValues = FBMOD1.MODL.IsLoaded() ? FBMOD1.MODL->MODT.value : NULL; + return NULL; + case 191: //femaleLeftHand_altTextures + if (!FBMOD1.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FBMOD1.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FBMOD1.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FBMOD1.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FBMOD1.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 192: //femaleLeftHand_modelFlags + return FBMOD1.MODL.IsLoaded() ? (FBMOD1.MODL->MODD.IsLoaded() ? &FBMOD1.MODL->MODD.value : NULL) : NULL; + case 193: //femaleLeftHand_iconPath + return FBMOD1.ICON.value; + case 194: //femaleLeftHand_smallIconPath + return FBMOD1.MICO.value; + case 195: //femaleRightHand_modPath + return FBMOD2.MODL.IsLoaded() ? FBMOD2.MODL->MODL.value : NULL; + case 196: //femaleRightHand_modb + return FBMOD2.MODL.IsLoaded() ? (FBMOD2.MODL->MODB.IsLoaded() ? &FBMOD2.MODL->MODB.value : NULL) : NULL; + case 197: //femaleRightHand_modt_p + *FieldValues = FBMOD2.MODL.IsLoaded() ? FBMOD2.MODL->MODT.value : NULL; + return NULL; + case 198: //femaleRightHand_altTextures + if (!FBMOD2.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FBMOD2.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FBMOD2.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FBMOD2.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FBMOD2.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 199: //femaleRightHand_modelFlags + return FBMOD2.MODL.IsLoaded() ? (FBMOD2.MODL->MODD.IsLoaded() ? &FBMOD2.MODL->MODD.value : NULL) : NULL; + case 200: //femaleRightHand_iconPath + return FBMOD2.ICON.value; + case 201: //femaleRightHand_smallIconPath + return FBMOD2.MICO.value; + case 202: //femaleUpperBodyTexture_modPath + return FBMOD3.MODL.IsLoaded() ? FBMOD3.MODL->MODL.value : NULL; + case 203: //femaleUpperBodyTexture_modb + return FBMOD3.MODL.IsLoaded() ? (FBMOD3.MODL->MODB.IsLoaded() ? &FBMOD3.MODL->MODB.value : NULL) : NULL; + case 204: //femaleUpperBodyTexture_modt_p + *FieldValues = FBMOD3.MODL.IsLoaded() ? FBMOD3.MODL->MODT.value : NULL; + return NULL; + case 205: //femaleUpperBodyTexture_altTextures + if (!FBMOD3.MODL.IsLoaded()) + return NULL; + + if (ListIndex >= FBMOD3.MODL->Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return FBMOD3.MODL->Textures.MODS[ListIndex]->name; + case 2: //texture + return &FBMOD3.MODL->Textures.MODS[ListIndex]->texture; + case 3: //index + return &FBMOD3.MODL->Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 206: //femaleUpperBodyTexture_modelFlags + return FBMOD3.MODL.IsLoaded() ? (FBMOD3.MODL->MODD.IsLoaded() ? &FBMOD3.MODL->MODD.value : NULL) : NULL; + case 207: //femaleUpperBodyTexture_iconPath + return FBMOD3.ICON.value; + case 208: //femaleUpperBodyTexture_smallIconPath + return FBMOD3.MICO.value; + case 209: //hairs + *FieldValues = HNAM.value.size() ? &HNAM.value[0] : NULL; + return NULL; + case 210: //eyes + *FieldValues = ENAM.value.size() ? &ENAM.value[0] : NULL; + return NULL; + case 211: //maleFggs_p + *FieldValues = MaleFGGS.value; + return NULL; + case 212: //maleFgga_p + *FieldValues = MaleFGGA.value; + return NULL; + case 213: //maleFgts_p + *FieldValues = MaleFGTS.value; + return NULL; + case 214: //maleSnam_p + *FieldValues = &MaleSNAM.value.SNAM[0]; + return NULL; + case 215: //femaleFggs_p + *FieldValues = FemaleFGGS.value; + return NULL; + case 216: //femaleFgga_p + *FieldValues = FemaleFGGA.value; + return NULL; + case 217: //femaleFgts_p + *FieldValues = FemaleFGTS.value; + return NULL; + case 218: //femaleSnam_p + *FieldValues = &FemaleSNAM.value.SNAM[0]; + return NULL; + default: + return NULL; + } + return NULL; + } + + bool RACERecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) + { + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(*(uint32_t *)FieldValue); + break; + case 3: //versionControl1 + if (ArraySize != 4) + break; + ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; + ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; + ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; + ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; + break; + case 4: //eid + EDID.Copy((char *)FieldValue); + break; + case 5: //formVersion + formVersion = *(uint16_t *)FieldValue; + break; + case 6: //versionControl2 + if (ArraySize != 2) + break; + versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; + versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 7: //full + FULL.Copy((char *)FieldValue); + break; + case 8: //description + DESC.Copy((char *)FieldValue); + break; + case 9: //relations + if (ListFieldID == 0) //relationsSize + { + XNAM.resize(ArraySize); + return false; + } + + if (ListIndex >= XNAM.value.size()) + break; + + switch (ListFieldID) + { + case 1: //faction + XNAM.value[ListIndex]->faction = *(FORMID *)FieldValue; + return true; + case 2: //mod + XNAM.value[ListIndex]->mod = *(int32_t *)FieldValue; + break; + case 3: //groupReactionType + XNAM.value[ListIndex]->SetType(*(uint32_t *)FieldValue); + break; + default: + break; + } + break; + case 10: //skill1 + DATA.value.skills[0].value = *(int8_t *)FieldValue; + break; + case 11: //skill1Boost + DATA.value.skills[0].boost = *(int8_t *)FieldValue; + break; + case 12: //skill2 + DATA.value.skills[1].value = *(int8_t *)FieldValue; + break; + case 13: //skill2Boost + DATA.value.skills[1].boost = *(int8_t *)FieldValue; + break; + case 14: //skill3 + DATA.value.skills[2].value = *(int8_t *)FieldValue; + break; + case 15: //skill3Boost + DATA.value.skills[2].boost = *(int8_t *)FieldValue; + break; + case 16: //skill4 + DATA.value.skills[3].value = *(int8_t *)FieldValue; + break; + case 17: //skill4Boost + DATA.value.skills[3].boost = *(int8_t *)FieldValue; + break; + case 18: //skill5 + DATA.value.skills[4].value = *(int8_t *)FieldValue; + break; + case 19: //skill5Boost + DATA.value.skills[4].boost = *(int8_t *)FieldValue; + break; + case 20: //skill6 + DATA.value.skills[5].value = *(int8_t *)FieldValue; + break; + case 21: //skill6Boost + DATA.value.skills[5].boost = *(int8_t *)FieldValue; + break; + case 22: //skill7 + DATA.value.skills[6].value = *(int8_t *)FieldValue; + break; + case 23: //skill7Boost + DATA.value.skills[6].boost = *(int8_t *)FieldValue; + break; + case 24: //unused1 + if (ArraySize != 2) + break; + DATA.value.unused1[0] = ((UINT8ARRAY)FieldValue)[0]; + DATA.value.unused1[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 25: //maleHeight + DATA.value.maleHeight = *(float *)FieldValue; + break; + case 26: //femaleHeight + DATA.value.femaleHeight = *(float *)FieldValue; + break; + case 27: //maleWeight + DATA.value.maleWeight = *(float *)FieldValue; + break; + case 28: //femaleWeight + DATA.value.femaleWeight = *(float *)FieldValue; + break; + case 29: //flags + SetFlagMask(*(uint32_t *)FieldValue); + break; + case 30: //older + ONAM.value = *(FORMID *)FieldValue; + return true; + case 31: //younger + YNAM.value = *(FORMID *)FieldValue; + return true; + case 32: //maleVoice + VTCK.Load(); + VTCK.value.maleVoice = *(FORMID *)FieldValue; + return true; + case 33: //femaleVoice + VTCK.Load(); + VTCK.value.femaleVoice = *(FORMID *)FieldValue; + return true; + case 34: //defaultHairMale + DNAM.Load(); + DNAM.value.defaultHairMale = *(FORMID *)FieldValue; + return true; + case 35: //defaultHairFemale + DNAM.Load(); + DNAM.value.defaultHairFemale = *(FORMID *)FieldValue; + return true; + case 36: //defaultHairMaleColor + CNAM.Load(); + CNAM.value.defaultHairMale = *(uint8_t *)FieldValue; + break; + case 37: //defaultHairFemaleColor + CNAM.Load(); + CNAM.value.defaultHairFemale = *(uint8_t *)FieldValue; + break; + case 38: //mainClamp + PNAM.value = *(float *)FieldValue; + break; + case 39: //faceClamp + UNAM.value = *(float *)FieldValue; + break; + case 40: //attr_p + ATTR.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 41: //maleHead_modPath + MHMOD0.MODL.Load(); + MHMOD0.MODL->MODL.Copy((char *)FieldValue); + break; + case 42: //maleHead_modb + MHMOD0.MODL.Load(); + MHMOD0.MODL->MODB.value = *(float *)FieldValue; + break; + case 43: //maleHead_modt_p + MHMOD0.MODL.Load(); + MHMOD0.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 44: //maleHead_altTextures + MHMOD0.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MHMOD0.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MHMOD0.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD0.MODL->Textures.MODS[ListIndex]->name; + MHMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MHMOD0.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MHMOD0.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MHMOD0.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MHMOD0.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 45: //maleHead_modelFlags + MHMOD0.MODL.Load(); + MHMOD0.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 46: //maleHead_iconPath + MHMOD0.ICON.Copy((char *)FieldValue); + break; + case 47: //maleHead_smallIconPath + MHMOD0.MICO.Copy((char *)FieldValue); + break; + case 48: //maleEars_modPath + MHMOD1.MODL.Load(); + MHMOD1.MODL->MODL.Copy((char *)FieldValue); + break; + case 49: //maleEars_modb + MHMOD1.MODL.Load(); + MHMOD1.MODL->MODB.value = *(float *)FieldValue; + break; + case 50: //maleEars_modt_p + MHMOD1.MODL.Load(); + MHMOD1.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 51: //maleEars_altTextures + MHMOD1.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MHMOD1.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MHMOD1.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD1.MODL->Textures.MODS[ListIndex]->name; + MHMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MHMOD1.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MHMOD1.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MHMOD1.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MHMOD1.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 52: //maleEars_modelFlags + MHMOD1.MODL.Load(); + MHMOD1.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 53: //maleEars_iconPath + MHMOD1.ICON.Copy((char *)FieldValue); + break; + case 54: //maleEars_smallIconPath + MHMOD1.MICO.Copy((char *)FieldValue); + break; + case 55: //maleMouth_modPath + MHMOD2.MODL.Load(); + MHMOD2.MODL->MODL.Copy((char *)FieldValue); + break; + case 56: //maleMouth_modb + MHMOD2.MODL.Load(); + MHMOD2.MODL->MODB.value = *(float *)FieldValue; + break; + case 57: //maleMouth_modt_p + MHMOD2.MODL.Load(); + MHMOD2.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 58: //maleMouth_altTextures + MHMOD2.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MHMOD2.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MHMOD2.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD2.MODL->Textures.MODS[ListIndex]->name; + MHMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MHMOD2.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MHMOD2.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MHMOD2.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MHMOD2.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 59: //maleMouth_modelFlags + MHMOD2.MODL.Load(); + MHMOD2.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 60: //maleMouth_iconPath + MHMOD2.ICON.Copy((char *)FieldValue); + break; + case 61: //maleMouth_smallIconPath + MHMOD2.MICO.Copy((char *)FieldValue); + break; + case 62: //maleTeethLower_modPath + MHMOD3.MODL.Load(); + MHMOD3.MODL->MODL.Copy((char *)FieldValue); + break; + case 63: //maleTeethLower_modb + MHMOD3.MODL.Load(); + MHMOD3.MODL->MODB.value = *(float *)FieldValue; + break; + case 64: //maleTeethLower_modt_p + MHMOD3.MODL.Load(); + MHMOD3.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 65: //maleTeethLower_altTextures + MHMOD3.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MHMOD3.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MHMOD3.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD3.MODL->Textures.MODS[ListIndex]->name; + MHMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MHMOD3.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MHMOD3.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MHMOD3.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MHMOD3.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 66: //maleTeethLower_modelFlags + MHMOD3.MODL.Load(); + MHMOD3.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 67: //maleTeethLower_iconPath + MHMOD3.ICON.Copy((char *)FieldValue); + break; + case 68: //maleTeethLower_smallIconPath + MHMOD3.MICO.Copy((char *)FieldValue); + break; + case 69: //maleTeethUpper_modPath + MHMOD4.MODL.Load(); + MHMOD4.MODL->MODL.Copy((char *)FieldValue); + break; + case 70: //maleTeethUpper_modb + MHMOD4.MODL.Load(); + MHMOD4.MODL->MODB.value = *(float *)FieldValue; + break; + case 71: //maleTeethUpper_modt_p + MHMOD4.MODL.Load(); + MHMOD4.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 72: //maleTeethUpper_altTextures + MHMOD4.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MHMOD4.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MHMOD4.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD4.MODL->Textures.MODS[ListIndex]->name; + MHMOD4.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MHMOD4.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MHMOD4.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MHMOD4.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MHMOD4.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 73: //maleTeethUpper_modelFlags + MHMOD4.MODL.Load(); + MHMOD4.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 74: //maleTeethUpper_iconPath + MHMOD4.ICON.Copy((char *)FieldValue); + break; + case 75: //maleTeethUpper_smallIconPath + MHMOD4.MICO.Copy((char *)FieldValue); + break; + case 76: //maleTongue_modPath + MHMOD5.MODL.Load(); + MHMOD5.MODL->MODL.Copy((char *)FieldValue); + break; + case 77: //maleTongue_modb + MHMOD5.MODL.Load(); + MHMOD5.MODL->MODB.value = *(float *)FieldValue; + break; + case 78: //maleTongue_modt_p + MHMOD5.MODL.Load(); + MHMOD5.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 79: //maleTongue_altTextures + MHMOD5.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MHMOD5.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MHMOD5.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD5.MODL->Textures.MODS[ListIndex]->name; + MHMOD5.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MHMOD5.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MHMOD5.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MHMOD5.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MHMOD5.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 80: //maleTongue_modelFlags + MHMOD5.MODL.Load(); + MHMOD5.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 81: //maleTongue_iconPath + MHMOD5.ICON.Copy((char *)FieldValue); + break; + case 82: //maleTongue_smallIconPath + MHMOD5.MICO.Copy((char *)FieldValue); + break; + case 83: //maleLeftEye_modPath + MHMOD6.MODL.Load(); + MHMOD6.MODL->MODL.Copy((char *)FieldValue); + break; + case 84: //maleLeftEye_modb + MHMOD6.MODL.Load(); + MHMOD6.MODL->MODB.value = *(float *)FieldValue; + break; + case 85: //maleLeftEye_modt_p + MHMOD6.MODL.Load(); + MHMOD6.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 86: //maleLeftEye_altTextures + MHMOD6.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MHMOD6.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MHMOD6.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD6.MODL->Textures.MODS[ListIndex]->name; + MHMOD6.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MHMOD6.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MHMOD6.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MHMOD6.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MHMOD6.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 87: //maleLeftEye_modelFlags + MHMOD6.MODL.Load(); + MHMOD6.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 88: //maleLeftEye_iconPath + MHMOD6.ICON.Copy((char *)FieldValue); + break; + case 89: //maleLeftEye_smallIconPath + MHMOD6.MICO.Copy((char *)FieldValue); + break; + case 90: //maleRightEye_modPath + MHMOD7.MODL.Load(); + MHMOD7.MODL->MODL.Copy((char *)FieldValue); + break; + case 91: //maleRightEye_modb + MHMOD7.MODL.Load(); + MHMOD7.MODL->MODB.value = *(float *)FieldValue; + break; + case 92: //maleRightEye_modt_p + MHMOD7.MODL.Load(); + MHMOD7.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 93: //maleRightEye_altTextures + MHMOD7.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MHMOD7.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MHMOD7.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD7.MODL->Textures.MODS[ListIndex]->name; + MHMOD7.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MHMOD7.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MHMOD7.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MHMOD7.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MHMOD7.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 94: //maleRightEye_modelFlags + MHMOD7.MODL.Load(); + MHMOD7.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 95: //maleRightEye_iconPath + MHMOD7.ICON.Copy((char *)FieldValue); + break; + case 96: //maleRightEye_smallIconPath + MHMOD7.MICO.Copy((char *)FieldValue); + break; + case 97: //femaleHead_modPath + FHMOD0.MODL.Load(); + FHMOD0.MODL->MODL.Copy((char *)FieldValue); + break; + case 98: //femaleHead_modb + FHMOD0.MODL.Load(); + FHMOD0.MODL->MODB.value = *(float *)FieldValue; + break; + case 99: //femaleHead_modt_p + FHMOD0.MODL.Load(); + FHMOD0.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 100: //femaleHead_altTextures + FHMOD0.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FHMOD0.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FHMOD0.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD0.MODL->Textures.MODS[ListIndex]->name; + FHMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FHMOD0.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FHMOD0.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FHMOD0.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FHMOD0.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 101: //femaleHead_modelFlags + FHMOD0.MODL.Load(); + FHMOD0.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 102: //femaleHead_iconPath + FHMOD0.ICON.Copy((char *)FieldValue); + break; + case 103: //femaleHead_smallIconPath + FHMOD0.MICO.Copy((char *)FieldValue); + break; + case 104: //femaleEars_modPath + FHMOD1.MODL.Load(); + FHMOD1.MODL->MODL.Copy((char *)FieldValue); + break; + case 105: //femaleEars_modb + FHMOD1.MODL.Load(); + FHMOD1.MODL->MODB.value = *(float *)FieldValue; + break; + case 106: //femaleEars_modt_p + FHMOD1.MODL.Load(); + FHMOD1.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 107: //femaleEars_altTextures + FHMOD1.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FHMOD1.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FHMOD1.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD1.MODL->Textures.MODS[ListIndex]->name; + FHMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FHMOD1.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FHMOD1.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FHMOD1.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FHMOD1.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 108: //femaleEars_modelFlags + FHMOD1.MODL.Load(); + FHMOD1.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 109: //femaleEars_iconPath + FHMOD1.ICON.Copy((char *)FieldValue); + break; + case 110: //femaleEars_smallIconPath + FHMOD1.MICO.Copy((char *)FieldValue); + break; + case 111: //femaleMouth_modPath + FHMOD2.MODL.Load(); + FHMOD2.MODL->MODL.Copy((char *)FieldValue); + break; + case 112: //femaleMouth_modb + FHMOD2.MODL.Load(); + FHMOD2.MODL->MODB.value = *(float *)FieldValue; + break; + case 113: //femaleMouth_modt_p + FHMOD2.MODL.Load(); + FHMOD2.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 114: //femaleMouth_altTextures + FHMOD2.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FHMOD2.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FHMOD2.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD2.MODL->Textures.MODS[ListIndex]->name; + FHMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FHMOD2.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FHMOD2.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FHMOD2.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FHMOD2.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 115: //femaleMouth_modelFlags + FHMOD2.MODL.Load(); + FHMOD2.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 116: //femaleMouth_iconPath + FHMOD2.ICON.Copy((char *)FieldValue); + break; + case 117: //femaleMouth_smallIconPath + FHMOD2.MICO.Copy((char *)FieldValue); + break; + case 118: //femaleTeethLower_modPath + FHMOD3.MODL.Load(); + FHMOD3.MODL->MODL.Copy((char *)FieldValue); + break; + case 119: //femaleTeethLower_modb + FHMOD3.MODL.Load(); + FHMOD3.MODL->MODB.value = *(float *)FieldValue; + break; + case 120: //femaleTeethLower_modt_p + FHMOD3.MODL.Load(); + FHMOD3.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 121: //femaleTeethLower_altTextures + FHMOD3.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FHMOD3.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FHMOD3.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD3.MODL->Textures.MODS[ListIndex]->name; + FHMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FHMOD3.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FHMOD3.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FHMOD3.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FHMOD3.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 122: //femaleTeethLower_modelFlags + FHMOD3.MODL.Load(); + FHMOD3.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 123: //femaleTeethLower_iconPath + FHMOD3.ICON.Copy((char *)FieldValue); + break; + case 124: //femaleTeethLower_smallIconPath + FHMOD3.MICO.Copy((char *)FieldValue); + break; + case 125: //femaleTeethUpper_modPath + FHMOD4.MODL.Load(); + FHMOD4.MODL->MODL.Copy((char *)FieldValue); + break; + case 126: //femaleTeethUpper_modb + FHMOD4.MODL.Load(); + FHMOD4.MODL->MODB.value = *(float *)FieldValue; + break; + case 127: //femaleTeethUpper_modt_p + FHMOD4.MODL.Load(); + FHMOD4.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 128: //femaleTeethUpper_altTextures + FHMOD4.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FHMOD4.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FHMOD4.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD4.MODL->Textures.MODS[ListIndex]->name; + FHMOD4.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FHMOD4.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FHMOD4.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FHMOD4.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FHMOD4.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 129: //femaleTeethUpper_modelFlags + FHMOD4.MODL.Load(); + FHMOD4.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 130: //femaleTeethUpper_iconPath + FHMOD4.ICON.Copy((char *)FieldValue); + break; + case 131: //femaleTeethUpper_smallIconPath + FHMOD4.MICO.Copy((char *)FieldValue); + break; + case 132: //femaleTongue_modPath + FHMOD5.MODL.Load(); + FHMOD5.MODL->MODL.Copy((char *)FieldValue); + break; + case 133: //femaleTongue_modb + FHMOD5.MODL.Load(); + FHMOD5.MODL->MODB.value = *(float *)FieldValue; + break; + case 134: //femaleTongue_modt_p + FHMOD5.MODL.Load(); + FHMOD5.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 135: //femaleTongue_altTextures + FHMOD5.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FHMOD5.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FHMOD5.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD5.MODL->Textures.MODS[ListIndex]->name; + FHMOD5.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FHMOD5.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FHMOD5.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FHMOD5.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FHMOD5.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 136: //femaleTongue_modelFlags + FHMOD5.MODL.Load(); + FHMOD5.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 137: //femaleTongue_iconPath + FHMOD5.ICON.Copy((char *)FieldValue); + break; + case 138: //femaleTongue_smallIconPath + FHMOD5.MICO.Copy((char *)FieldValue); + break; + case 139: //femaleLeftEye_modPath + FHMOD6.MODL.Load(); + FHMOD6.MODL->MODL.Copy((char *)FieldValue); + break; + case 140: //femaleLeftEye_modb + FHMOD6.MODL.Load(); + FHMOD6.MODL->MODB.value = *(float *)FieldValue; + break; + case 141: //femaleLeftEye_modt_p + FHMOD6.MODL.Load(); + FHMOD6.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 142: //femaleLeftEye_altTextures + FHMOD6.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FHMOD6.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FHMOD6.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD6.MODL->Textures.MODS[ListIndex]->name; + FHMOD6.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FHMOD6.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FHMOD6.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FHMOD6.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FHMOD6.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 143: //femaleLeftEye_modelFlags + FHMOD6.MODL.Load(); + FHMOD6.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 144: //femaleLeftEye_iconPath + FHMOD6.ICON.Copy((char *)FieldValue); + break; + case 145: //femaleLeftEye_smallIconPath + FHMOD6.MICO.Copy((char *)FieldValue); + break; + case 146: //femaleRightEye_modPath + FHMOD7.MODL.Load(); + FHMOD7.MODL->MODL.Copy((char *)FieldValue); + break; + case 147: //femaleRightEye_modb + FHMOD7.MODL.Load(); + FHMOD7.MODL->MODB.value = *(float *)FieldValue; + break; + case 148: //femaleRightEye_modt_p + FHMOD7.MODL.Load(); + FHMOD7.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 149: //femaleRightEye_altTextures + FHMOD7.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FHMOD7.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FHMOD7.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD7.MODL->Textures.MODS[ListIndex]->name; + FHMOD7.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FHMOD7.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FHMOD7.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FHMOD7.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FHMOD7.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 150: //femaleRightEye_modelFlags + FHMOD7.MODL.Load(); + FHMOD7.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 151: //femaleRightEye_iconPath + FHMOD7.ICON.Copy((char *)FieldValue); + break; + case 152: //femaleRightEye_smallIconPath + FHMOD7.MICO.Copy((char *)FieldValue); + break; + case 153: //maleUpperBody_modPath + MBMOD0.MODL.Load(); + MBMOD0.MODL->MODL.Copy((char *)FieldValue); + break; + case 154: //maleUpperBody_modb + MBMOD0.MODL.Load(); + MBMOD0.MODL->MODB.value = *(float *)FieldValue; + break; + case 155: //maleUpperBody_modt_p + MBMOD0.MODL.Load(); + MBMOD0.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 156: //maleUpperBody_altTextures + MBMOD0.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MBMOD0.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MBMOD0.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MBMOD0.MODL->Textures.MODS[ListIndex]->name; + MBMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MBMOD0.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MBMOD0.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MBMOD0.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MBMOD0.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 157: //maleUpperBody_modelFlags + MBMOD0.MODL.Load(); + MBMOD0.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 158: //maleUpperBody_iconPath + MBMOD0.ICON.Copy((char *)FieldValue); + break; + case 159: //maleUpperBody_smallIconPath + MBMOD0.MICO.Copy((char *)FieldValue); + break; + case 160: //maleLeftHand_modPath + MBMOD1.MODL.Load(); + MBMOD1.MODL->MODL.Copy((char *)FieldValue); + break; + case 161: //maleLeftHand_modb + MBMOD1.MODL.Load(); + MBMOD1.MODL->MODB.value = *(float *)FieldValue; + break; + case 162: //maleLeftHand_modt_p + MBMOD1.MODL.Load(); + MBMOD1.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 163: //maleLeftHand_altTextures + MBMOD1.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MBMOD1.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MBMOD1.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MBMOD1.MODL->Textures.MODS[ListIndex]->name; + MBMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MBMOD1.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MBMOD1.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MBMOD1.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MBMOD1.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 164: //maleLeftHand_modelFlags + MBMOD1.MODL.Load(); + MBMOD1.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 165: //maleLeftHand_iconPath + MBMOD1.ICON.Copy((char *)FieldValue); + break; + case 166: //maleLeftHand_smallIconPath + MBMOD1.MICO.Copy((char *)FieldValue); + break; + case 167: //maleRightHand_modPath + MBMOD2.MODL.Load(); + MBMOD2.MODL->MODL.Copy((char *)FieldValue); + break; + case 168: //maleRightHand_modb + MBMOD2.MODL.Load(); + MBMOD2.MODL->MODB.value = *(float *)FieldValue; + break; + case 169: //maleRightHand_modt_p + MBMOD2.MODL.Load(); + MBMOD2.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 170: //maleRightHand_altTextures + MBMOD2.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MBMOD2.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MBMOD2.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MBMOD2.MODL->Textures.MODS[ListIndex]->name; + MBMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MBMOD2.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MBMOD2.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MBMOD2.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MBMOD2.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 171: //maleRightHand_modelFlags + MBMOD2.MODL.Load(); + MBMOD2.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 172: //maleRightHand_iconPath + MBMOD2.ICON.Copy((char *)FieldValue); + break; + case 173: //maleRightHand_smallIconPath + MBMOD2.MICO.Copy((char *)FieldValue); + break; + case 174: //maleUpperBodyTexture_modPath + MBMOD3.MODL.Load(); + MBMOD3.MODL->MODL.Copy((char *)FieldValue); + break; + case 175: //maleUpperBodyTexture_modb + MBMOD3.MODL.Load(); + MBMOD3.MODL->MODB.value = *(float *)FieldValue; + break; + case 176: //maleUpperBodyTexture_modt_p + MBMOD3.MODL.Load(); + MBMOD3.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 177: //maleUpperBodyTexture_altTextures + MBMOD3.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + MBMOD3.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MBMOD3.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MBMOD3.MODL->Textures.MODS[ListIndex]->name; + MBMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MBMOD3.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MBMOD3.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MBMOD3.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MBMOD3.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 178: //maleUpperBodyTexture_modelFlags + MBMOD3.MODL.Load(); + MBMOD3.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 179: //maleUpperBodyTexture_iconPath + MBMOD3.ICON.Copy((char *)FieldValue); + break; + case 180: //maleUpperBodyTexture_smallIconPath + MBMOD3.MICO.Copy((char *)FieldValue); + break; + case 181: //femaleUpperBody_modPath + FBMOD0.MODL.Load(); + FBMOD0.MODL->MODL.Copy((char *)FieldValue); + break; + case 182: //femaleUpperBody_modb + FBMOD0.MODL.Load(); + FBMOD0.MODL->MODB.value = *(float *)FieldValue; + break; + case 183: //femaleUpperBody_modt_p + FBMOD0.MODL.Load(); + FBMOD0.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 184: //femaleUpperBody_altTextures + FBMOD0.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FBMOD0.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FBMOD0.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FBMOD0.MODL->Textures.MODS[ListIndex]->name; + FBMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FBMOD0.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FBMOD0.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FBMOD0.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FBMOD0.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 185: //femaleUpperBody_modelFlags + FBMOD0.MODL.Load(); + FBMOD0.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 186: //femaleUpperBody_iconPath + FBMOD0.ICON.Copy((char *)FieldValue); + break; + case 187: //femaleUpperBody_smallIconPath + FBMOD0.MICO.Copy((char *)FieldValue); + break; + case 188: //femaleLeftHand_modPath + FBMOD1.MODL.Load(); + FBMOD1.MODL->MODL.Copy((char *)FieldValue); + break; + case 189: //femaleLeftHand_modb + FBMOD1.MODL.Load(); + FBMOD1.MODL->MODB.value = *(float *)FieldValue; + break; + case 190: //femaleLeftHand_modt_p + FBMOD1.MODL.Load(); + FBMOD1.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 191: //femaleLeftHand_altTextures + FBMOD1.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FBMOD1.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FBMOD1.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FBMOD1.MODL->Textures.MODS[ListIndex]->name; + FBMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FBMOD1.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FBMOD1.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FBMOD1.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FBMOD1.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 192: //femaleLeftHand_modelFlags + FBMOD1.MODL.Load(); + FBMOD1.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 193: //femaleLeftHand_iconPath + FBMOD1.ICON.Copy((char *)FieldValue); + break; + case 194: //femaleLeftHand_smallIconPath + FBMOD1.MICO.Copy((char *)FieldValue); + break; + case 195: //femaleRightHand_modPath + FBMOD2.MODL.Load(); + FBMOD2.MODL->MODL.Copy((char *)FieldValue); + break; + case 196: //femaleRightHand_modb + FBMOD2.MODL.Load(); + FBMOD2.MODL->MODB.value = *(float *)FieldValue; + break; + case 197: //femaleRightHand_modt_p + FBMOD2.MODL.Load(); + FBMOD2.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 198: //femaleRightHand_altTextures + FBMOD2.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FBMOD2.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FBMOD2.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FBMOD2.MODL->Textures.MODS[ListIndex]->name; + FBMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FBMOD2.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FBMOD2.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FBMOD2.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FBMOD2.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 199: //femaleRightHand_modelFlags + FBMOD2.MODL.Load(); + FBMOD2.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 200: //femaleRightHand_iconPath + FBMOD2.ICON.Copy((char *)FieldValue); + break; + case 201: //femaleRightHand_smallIconPath + FBMOD2.MICO.Copy((char *)FieldValue); + break; + case 202: //femaleUpperBodyTexture_modPath + FBMOD3.MODL.Load(); + FBMOD3.MODL->MODL.Copy((char *)FieldValue); + break; + case 203: //femaleUpperBodyTexture_modb + FBMOD3.MODL.Load(); + FBMOD3.MODL->MODB.value = *(float *)FieldValue; + break; + case 204: //femaleUpperBodyTexture_modt_p + FBMOD3.MODL.Load(); + FBMOD3.MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 205: //femaleUpperBodyTexture_altTextures + FBMOD3.MODL.Load(); + if (ListFieldID == 0) //altTexturesSize + { + FBMOD3.MODL->Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= FBMOD3.MODL->Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]FBMOD3.MODL->Textures.MODS[ListIndex]->name; + FBMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + FBMOD3.MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(FBMOD3.MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + FBMOD3.MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + FBMOD3.MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 206: //femaleUpperBodyTexture_modelFlags + FBMOD3.MODL.Load(); + FBMOD3.MODL->SetFlagMask(*(uint8_t *)FieldValue); + break; + case 207: //femaleUpperBodyTexture_iconPath + FBMOD3.ICON.Copy((char *)FieldValue); + break; + case 208: //femaleUpperBodyTexture_smallIconPath + FBMOD3.MICO.Copy((char *)FieldValue); + break; + case 209: //hairs + HNAM.value.resize(ArraySize); + for (uint32_t x = 0; x < ArraySize; x++) + HNAM.value[x] = ((FORMIDARRAY)FieldValue)[x]; + return true; + case 210: //eyes + ENAM.value.resize(ArraySize); + for (uint32_t x = 0; x < ArraySize; x++) + ENAM.value[x] = ((FORMIDARRAY)FieldValue)[x]; + return true; + case 211: //maleFggs_p + if (ArraySize != 200) + break; + MaleFGGS.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 212: //maleFgga_p + if (ArraySize != 120) + break; + MaleFGGA.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 213: //maleFgts_p + if (ArraySize != 200) + break; + MaleFGTS.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 214: //maleSnam_p + if (ArraySize != 2) + break; + MaleSNAM.value.SNAM[0] = ((UINT8ARRAY)FieldValue)[0]; + MaleSNAM.value.SNAM[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 215: //femaleFggs_p + if (ArraySize != 200) + break; + FemaleFGGS.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 216: //femaleFgga_p + if (ArraySize != 120) + break; + FemaleFGGA.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 217: //femaleFgts_p + if (ArraySize != 200) + break; + FemaleFGTS.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 218: //femaleSnam_p + if (ArraySize != 2) + break; + FemaleSNAM.value.SNAM[0] = ((UINT8ARRAY)FieldValue)[0]; + FemaleSNAM.value.SNAM[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + default: + break; + } + return false; + } + + void RACERecord::DeleteField(FIELD_IDENTIFIERS) + { + RACEVNAM defaultVNAM; + RACEDNAM defaultDNAM; + RACECNAM defaultCNAM; + FNVXNAM defaultXNAM; + RACEDATA defaultDATA; + FNVMODS defaultMODS; + + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(0); + return; + case 3: //versionControl1 + flagsUnk = 0; + return; + case 4: //eid + EDID.Unload(); + return; + case 5: //formVersion + formVersion = 0; + return; + case 6: //versionControl2 + versionControl2[0] = 0; + versionControl2[1] = 0; + return; + case 7: //full + FULL.Unload(); + return; + case 8: //description + DESC.Unload(); + return; + case 9: //relations + if (ListFieldID == 0) //relations + { + XNAM.Unload(); + return; + } + + if (ListIndex >= XNAM.value.size()) + return; + + switch (ListFieldID) + { + case 1: //faction + XNAM.value[ListIndex]->faction = defaultXNAM.faction; + return; + case 2: //mod + XNAM.value[ListIndex]->mod = defaultXNAM.mod; + return; + case 3: //groupReactionType + XNAM.value[ListIndex]->groupReactionType = defaultXNAM.groupReactionType; + return; + default: + return; + } + return; + case 10: //skill1 + DATA.value.skills[0].value = defaultDATA.skills[0].value; + return; + case 11: //skill1Boost + DATA.value.skills[0].boost = defaultDATA.skills[0].boost; + return; + case 12: //skill2 + DATA.value.skills[1].value = defaultDATA.skills[1].value; + return; + case 13: //skill2Boost + DATA.value.skills[1].boost = defaultDATA.skills[1].boost; + return; + case 14: //skill3 + DATA.value.skills[2].value = defaultDATA.skills[2].value; + return; + case 15: //skill3Boost + DATA.value.skills[2].boost = defaultDATA.skills[2].boost; + return; + case 16: //skill4 + DATA.value.skills[3].value = defaultDATA.skills[3].value; + return; + case 17: //skill4Boost + DATA.value.skills[3].boost = defaultDATA.skills[3].boost; + return; + case 18: //skill5 + DATA.value.skills[4].value = defaultDATA.skills[4].value; + return; + case 19: //skill5Boost + DATA.value.skills[4].boost = defaultDATA.skills[4].boost; + return; + case 20: //skill6 + DATA.value.skills[5].value = defaultDATA.skills[5].value; + return; + case 21: //skill6Boost + DATA.value.skills[5].boost = defaultDATA.skills[5].boost; + return; + case 22: //skill7 + DATA.value.skills[6].value = defaultDATA.skills[6].value; + return; + case 23: //skill7Boost + DATA.value.skills[6].boost = defaultDATA.skills[6].boost; + return; + case 24: //unused1 + DATA.value.unused1[0] = defaultDATA.unused1[0]; + DATA.value.unused1[1] = defaultDATA.unused1[1]; + return; + case 25: //maleHeight + DATA.value.maleHeight = defaultDATA.maleHeight; + return; + case 26: //femaleHeight + DATA.value.femaleHeight = defaultDATA.femaleHeight; + return; + case 27: //maleWeight + DATA.value.maleWeight = defaultDATA.maleWeight; + return; + case 28: //femaleWeight + DATA.value.femaleWeight = defaultDATA.femaleWeight; + return; + case 29: //flags + DATA.value.flags = defaultDATA.flags; + return; + case 30: //older + ONAM.Unload(); + return; + case 31: //younger + YNAM.Unload(); + return; + case 32: //maleVoice + if (VTCK.IsLoaded()) + VTCK.value.maleVoice = defaultVNAM.maleVoice; + return; + case 33: //femaleVoice + if (VTCK.IsLoaded()) + VTCK.value.femaleVoice = defaultVNAM.femaleVoice; + return; + case 34: //defaultHairMale + if (DNAM.IsLoaded()) + DNAM.value.defaultHairMale = defaultDNAM.defaultHairMale; + return; + case 35: //defaultHairFemale + if (DNAM.IsLoaded()) + DNAM.value.defaultHairFemale = defaultDNAM.defaultHairFemale; + return; + case 36: //defaultHairMaleColor + if (CNAM.IsLoaded()) + CNAM.value.defaultHairMale = defaultCNAM.defaultHairMale; + return; + case 37: //defaultHairFemaleColor + if (CNAM.IsLoaded()) + CNAM.value.defaultHairFemale = defaultCNAM.defaultHairFemale; + return; + case 38: //mainClamp + PNAM.Unload(); + return; + case 39: //faceClamp + UNAM.Unload(); + return; + case 40: //attr_p + ATTR.Unload(); + return; + case 41: //maleHead_modPath + if (MHMOD0.MODL.IsLoaded()) + MHMOD0.MODL->MODL.Unload(); + return; + case 42: //maleHead_modb + if (MHMOD0.MODL.IsLoaded()) + MHMOD0.MODL->MODB.Unload(); + return; + case 43: //maleHead_modt_p + if (MHMOD0.MODL.IsLoaded()) + MHMOD0.MODL->MODT.Unload(); + return; + case 44: //maleHead_altTextures + if (MHMOD0.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MHMOD0.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MHMOD0.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD0.MODL->Textures.MODS[ListIndex]->name; + MHMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MHMOD0.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MHMOD0.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 45: //maleHead_modelFlags + if (MHMOD0.MODL.IsLoaded()) + MHMOD0.MODL->MODD.Unload(); + return; + case 46: //maleHead_iconPath + MHMOD0.ICON.Unload(); + return; + case 47: //maleHead_smallIconPath + MHMOD0.MICO.Unload(); + return; + case 48: //maleEars_modPath + if (MHMOD1.MODL.IsLoaded()) + MHMOD1.MODL->MODL.Unload(); + return; + case 49: //maleEars_modb + if (MHMOD1.MODL.IsLoaded()) + MHMOD1.MODL->MODB.Unload(); + return; + case 50: //maleEars_modt_p + if (MHMOD1.MODL.IsLoaded()) + MHMOD1.MODL->MODT.Unload(); + return; + case 51: //maleEars_altTextures + if (MHMOD1.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MHMOD1.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MHMOD1.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD1.MODL->Textures.MODS[ListIndex]->name; + MHMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MHMOD1.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MHMOD1.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 52: //maleEars_modelFlags + if (MHMOD1.MODL.IsLoaded()) + MHMOD1.MODL->MODD.Unload(); + return; + case 53: //maleEars_iconPath + MHMOD1.ICON.Unload(); + return; + case 54: //maleEars_smallIconPath + MHMOD1.MICO.Unload(); + return; + case 55: //maleMouth_modPath + if (MHMOD2.MODL.IsLoaded()) + MHMOD2.MODL->MODL.Unload(); + return; + case 56: //maleMouth_modb + if (MHMOD2.MODL.IsLoaded()) + MHMOD2.MODL->MODB.Unload(); + return; + case 57: //maleMouth_modt_p + if (MHMOD2.MODL.IsLoaded()) + MHMOD2.MODL->MODT.Unload(); + return; + case 58: //maleMouth_altTextures + if (MHMOD2.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MHMOD2.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MHMOD2.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD2.MODL->Textures.MODS[ListIndex]->name; + MHMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MHMOD2.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MHMOD2.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 59: //maleMouth_modelFlags + if (MHMOD2.MODL.IsLoaded()) + MHMOD2.MODL->MODD.Unload(); + return; + case 60: //maleMouth_iconPath + MHMOD2.ICON.Unload(); + return; + case 61: //maleMouth_smallIconPath + MHMOD2.MICO.Unload(); + return; + case 62: //maleTeethLower_modPath + if (MHMOD3.MODL.IsLoaded()) + MHMOD3.MODL->MODL.Unload(); + return; + case 63: //maleTeethLower_modb + if (MHMOD3.MODL.IsLoaded()) + MHMOD3.MODL->MODB.Unload(); + return; + case 64: //maleTeethLower_modt_p + if (MHMOD3.MODL.IsLoaded()) + MHMOD3.MODL->MODT.Unload(); + return; + case 65: //maleTeethLower_altTextures + if (MHMOD3.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MHMOD3.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MHMOD3.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD3.MODL->Textures.MODS[ListIndex]->name; + MHMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MHMOD3.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MHMOD3.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 66: //maleTeethLower_modelFlags + if (MHMOD3.MODL.IsLoaded()) + MHMOD3.MODL->MODD.Unload(); + return; + case 67: //maleTeethLower_iconPath + MHMOD3.ICON.Unload(); + return; + case 68: //maleTeethLower_smallIconPath + MHMOD3.MICO.Unload(); + return; + case 69: //maleTeethUpper_modPath + if (MHMOD4.MODL.IsLoaded()) + MHMOD4.MODL->MODL.Unload(); + return; + case 70: //maleTeethUpper_modb + if (MHMOD4.MODL.IsLoaded()) + MHMOD4.MODL->MODB.Unload(); + return; + case 71: //maleTeethUpper_modt_p + if (MHMOD4.MODL.IsLoaded()) + MHMOD4.MODL->MODT.Unload(); + return; + case 72: //maleTeethUpper_altTextures + if (MHMOD4.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MHMOD4.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MHMOD4.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD4.MODL->Textures.MODS[ListIndex]->name; + MHMOD4.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MHMOD4.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MHMOD4.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 73: //maleTeethUpper_modelFlags + if (MHMOD4.MODL.IsLoaded()) + MHMOD4.MODL->MODD.Unload(); + return; + case 74: //maleTeethUpper_iconPath + MHMOD4.ICON.Unload(); + return; + case 75: //maleTeethUpper_smallIconPath + MHMOD4.MICO.Unload(); + return; + case 76: //maleTongue_modPath + if (MHMOD5.MODL.IsLoaded()) + MHMOD5.MODL->MODL.Unload(); + return; + case 77: //maleTongue_modb + if (MHMOD5.MODL.IsLoaded()) + MHMOD5.MODL->MODB.Unload(); + return; + case 78: //maleTongue_modt_p + if (MHMOD5.MODL.IsLoaded()) + MHMOD5.MODL->MODT.Unload(); + return; + case 79: //maleTongue_altTextures + if (MHMOD5.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MHMOD5.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MHMOD5.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD5.MODL->Textures.MODS[ListIndex]->name; + MHMOD5.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MHMOD5.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MHMOD5.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 80: //maleTongue_modelFlags + if (MHMOD5.MODL.IsLoaded()) + MHMOD5.MODL->MODD.Unload(); + return; + case 81: //maleTongue_iconPath + MHMOD5.ICON.Unload(); + return; + case 82: //maleTongue_smallIconPath + MHMOD5.MICO.Unload(); + return; + case 83: //maleLeftEye_modPath + if (MHMOD6.MODL.IsLoaded()) + MHMOD6.MODL->MODL.Unload(); + return; + case 84: //maleLeftEye_modb + if (MHMOD6.MODL.IsLoaded()) + MHMOD6.MODL->MODB.Unload(); + return; + case 85: //maleLeftEye_modt_p + if (MHMOD6.MODL.IsLoaded()) + MHMOD6.MODL->MODT.Unload(); + return; + case 86: //maleLeftEye_altTextures + if (MHMOD6.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MHMOD6.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MHMOD6.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD6.MODL->Textures.MODS[ListIndex]->name; + MHMOD6.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MHMOD6.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MHMOD6.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 87: //maleLeftEye_modelFlags + if (MHMOD6.MODL.IsLoaded()) + MHMOD6.MODL->MODD.Unload(); + return; + case 88: //maleLeftEye_iconPath + MHMOD6.ICON.Unload(); + return; + case 89: //maleLeftEye_smallIconPath + MHMOD6.MICO.Unload(); + return; + case 90: //maleRightEye_modPath + if (MHMOD7.MODL.IsLoaded()) + MHMOD7.MODL->MODL.Unload(); + return; + case 91: //maleRightEye_modb + if (MHMOD7.MODL.IsLoaded()) + MHMOD7.MODL->MODB.Unload(); + return; + case 92: //maleRightEye_modt_p + if (MHMOD7.MODL.IsLoaded()) + MHMOD7.MODL->MODT.Unload(); + return; + case 93: //maleRightEye_altTextures + if (MHMOD7.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MHMOD7.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MHMOD7.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MHMOD7.MODL->Textures.MODS[ListIndex]->name; + MHMOD7.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MHMOD7.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MHMOD7.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 94: //maleRightEye_modelFlags + if (MHMOD7.MODL.IsLoaded()) + MHMOD7.MODL->MODD.Unload(); + return; + case 95: //maleRightEye_iconPath + MHMOD7.ICON.Unload(); + return; + case 96: //maleRightEye_smallIconPath + MHMOD7.MICO.Unload(); + return; + case 97: //femaleHead_modPath + if (FHMOD0.MODL.IsLoaded()) + FHMOD0.MODL->MODL.Unload(); + return; + case 98: //femaleHead_modb + if (FHMOD0.MODL.IsLoaded()) + FHMOD0.MODL->MODB.Unload(); + return; + case 99: //femaleHead_modt_p + if (FHMOD0.MODL.IsLoaded()) + FHMOD0.MODL->MODT.Unload(); + return; + case 100: //femaleHead_altTextures + if (FHMOD0.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FHMOD0.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FHMOD0.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD0.MODL->Textures.MODS[ListIndex]->name; + FHMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FHMOD0.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FHMOD0.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 101: //femaleHead_modelFlags + if (FHMOD0.MODL.IsLoaded()) + FHMOD0.MODL->MODD.Unload(); + return; + case 102: //femaleHead_iconPath + FHMOD0.ICON.Unload(); + return; + case 103: //femaleHead_smallIconPath + FHMOD0.MICO.Unload(); + return; + case 104: //femaleEars_modPath + if (FHMOD1.MODL.IsLoaded()) + FHMOD1.MODL->MODL.Unload(); + return; + case 105: //femaleEars_modb + if (FHMOD1.MODL.IsLoaded()) + FHMOD1.MODL->MODB.Unload(); + return; + case 106: //femaleEars_modt_p + if (FHMOD1.MODL.IsLoaded()) + FHMOD1.MODL->MODT.Unload(); + return; + case 107: //femaleEars_altTextures + if (FHMOD1.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FHMOD1.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FHMOD1.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD1.MODL->Textures.MODS[ListIndex]->name; + FHMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FHMOD1.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FHMOD1.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 108: //femaleEars_modelFlags + if (FHMOD1.MODL.IsLoaded()) + FHMOD1.MODL->MODD.Unload(); + return; + case 109: //femaleEars_iconPath + FHMOD1.ICON.Unload(); + return; + case 110: //femaleEars_smallIconPath + FHMOD1.MICO.Unload(); + return; + case 111: //femaleMouth_modPath + if (FHMOD2.MODL.IsLoaded()) + FHMOD2.MODL->MODL.Unload(); + return; + case 112: //femaleMouth_modb + if (FHMOD2.MODL.IsLoaded()) + FHMOD2.MODL->MODB.Unload(); + return; + case 113: //femaleMouth_modt_p + if (FHMOD2.MODL.IsLoaded()) + FHMOD2.MODL->MODT.Unload(); + return; + case 114: //femaleMouth_altTextures + if (FHMOD2.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FHMOD2.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FHMOD2.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD2.MODL->Textures.MODS[ListIndex]->name; + FHMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FHMOD2.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FHMOD2.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 115: //femaleMouth_modelFlags + if (FHMOD2.MODL.IsLoaded()) + FHMOD2.MODL->MODD.Unload(); + return; + case 116: //femaleMouth_iconPath + FHMOD2.ICON.Unload(); + return; + case 117: //femaleMouth_smallIconPath + FHMOD2.MICO.Unload(); + return; + case 118: //femaleTeethLower_modPath + if (FHMOD3.MODL.IsLoaded()) + FHMOD3.MODL->MODL.Unload(); + return; + case 119: //femaleTeethLower_modb + if (FHMOD3.MODL.IsLoaded()) + FHMOD3.MODL->MODB.Unload(); + return; + case 120: //femaleTeethLower_modt_p + if (FHMOD3.MODL.IsLoaded()) + FHMOD3.MODL->MODT.Unload(); + return; + case 121: //femaleTeethLower_altTextures + if (FHMOD3.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FHMOD3.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FHMOD3.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD3.MODL->Textures.MODS[ListIndex]->name; + FHMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FHMOD3.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FHMOD3.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 122: //femaleTeethLower_modelFlags + if (FHMOD3.MODL.IsLoaded()) + FHMOD3.MODL->MODD.Unload(); + return; + case 123: //femaleTeethLower_iconPath + FHMOD3.ICON.Unload(); + return; + case 124: //femaleTeethLower_smallIconPath + FHMOD3.MICO.Unload(); + return; + case 125: //femaleTeethUpper_modPath + if (FHMOD4.MODL.IsLoaded()) + FHMOD4.MODL->MODL.Unload(); + return; + case 126: //femaleTeethUpper_modb + if (FHMOD4.MODL.IsLoaded()) + FHMOD4.MODL->MODB.Unload(); + return; + case 127: //femaleTeethUpper_modt_p + if (FHMOD4.MODL.IsLoaded()) + FHMOD4.MODL->MODT.Unload(); + return; + case 128: //femaleTeethUpper_altTextures + if (FHMOD4.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FHMOD4.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FHMOD4.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD4.MODL->Textures.MODS[ListIndex]->name; + FHMOD4.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FHMOD4.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FHMOD4.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 129: //femaleTeethUpper_modelFlags + if (FHMOD4.MODL.IsLoaded()) + FHMOD4.MODL->MODD.Unload(); + return; + case 130: //femaleTeethUpper_iconPath + FHMOD4.ICON.Unload(); + return; + case 131: //femaleTeethUpper_smallIconPath + FHMOD4.MICO.Unload(); + return; + case 132: //femaleTongue_modPath + if (FHMOD5.MODL.IsLoaded()) + FHMOD5.MODL->MODL.Unload(); + return; + case 133: //femaleTongue_modb + if (FHMOD5.MODL.IsLoaded()) + FHMOD5.MODL->MODB.Unload(); + return; + case 134: //femaleTongue_modt_p + if (FHMOD5.MODL.IsLoaded()) + FHMOD5.MODL->MODT.Unload(); + return; + case 135: //femaleTongue_altTextures + if (FHMOD5.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FHMOD5.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FHMOD5.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD5.MODL->Textures.MODS[ListIndex]->name; + FHMOD5.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FHMOD5.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FHMOD5.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 136: //femaleTongue_modelFlags + if (FHMOD5.MODL.IsLoaded()) + FHMOD5.MODL->MODD.Unload(); + return; + case 137: //femaleTongue_iconPath + FHMOD5.ICON.Unload(); + return; + case 138: //femaleTongue_smallIconPath + FHMOD5.MICO.Unload(); + return; + case 139: //femaleLeftEye_modPath + if (FHMOD6.MODL.IsLoaded()) + FHMOD6.MODL->MODL.Unload(); + return; + case 140: //femaleLeftEye_modb + if (FHMOD6.MODL.IsLoaded()) + FHMOD6.MODL->MODB.Unload(); + return; + case 141: //femaleLeftEye_modt_p + if (FHMOD6.MODL.IsLoaded()) + FHMOD6.MODL->MODT.Unload(); + return; + case 142: //femaleLeftEye_altTextures + if (FHMOD6.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FHMOD6.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FHMOD6.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD6.MODL->Textures.MODS[ListIndex]->name; + FHMOD6.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FHMOD6.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FHMOD6.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 143: //femaleLeftEye_modelFlags + if (FHMOD6.MODL.IsLoaded()) + FHMOD6.MODL->MODD.Unload(); + return; + case 144: //femaleLeftEye_iconPath + FHMOD6.ICON.Unload(); + return; + case 145: //femaleLeftEye_smallIconPath + FHMOD6.MICO.Unload(); + return; + case 146: //femaleRightEye_modPath + if (FHMOD7.MODL.IsLoaded()) + FHMOD7.MODL->MODL.Unload(); + return; + case 147: //femaleRightEye_modb + if (FHMOD7.MODL.IsLoaded()) + FHMOD7.MODL->MODB.Unload(); + return; + case 148: //femaleRightEye_modt_p + if (FHMOD7.MODL.IsLoaded()) + FHMOD7.MODL->MODT.Unload(); + return; + case 149: //femaleRightEye_altTextures + if (FHMOD7.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FHMOD7.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FHMOD7.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FHMOD7.MODL->Textures.MODS[ListIndex]->name; + FHMOD7.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FHMOD7.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FHMOD7.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 150: //femaleRightEye_modelFlags + if (FHMOD7.MODL.IsLoaded()) + FHMOD7.MODL->MODD.Unload(); + return; + case 151: //femaleRightEye_iconPath + FHMOD7.ICON.Unload(); + return; + case 152: //femaleRightEye_smallIconPath + FHMOD7.MICO.Unload(); + return; + case 153: //maleUpperBody_modPath + if (MBMOD0.MODL.IsLoaded()) + MBMOD0.MODL->MODL.Unload(); + return; + case 154: //maleUpperBody_modb + if (MBMOD0.MODL.IsLoaded()) + MBMOD0.MODL->MODB.Unload(); + return; + case 155: //maleUpperBody_modt_p + if (MBMOD0.MODL.IsLoaded()) + MBMOD0.MODL->MODT.Unload(); + return; + case 156: //maleUpperBody_altTextures + if (MBMOD0.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MBMOD0.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MBMOD0.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MBMOD0.MODL->Textures.MODS[ListIndex]->name; + MBMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MBMOD0.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MBMOD0.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 157: //maleUpperBody_modelFlags + if (MBMOD0.MODL.IsLoaded()) + MBMOD0.MODL->MODD.Unload(); + return; + case 158: //maleUpperBody_iconPath + MBMOD0.ICON.Unload(); + return; + case 159: //maleUpperBody_smallIconPath + MBMOD0.MICO.Unload(); + return; + case 160: //maleLeftHand_modPath + if (MBMOD1.MODL.IsLoaded()) + MBMOD1.MODL->MODL.Unload(); + return; + case 161: //maleLeftHand_modb + if (MBMOD1.MODL.IsLoaded()) + MBMOD1.MODL->MODB.Unload(); + return; + case 162: //maleLeftHand_modt_p + if (MBMOD1.MODL.IsLoaded()) + MBMOD1.MODL->MODT.Unload(); + return; + case 163: //maleLeftHand_altTextures + if (MBMOD1.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MBMOD1.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MBMOD1.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MBMOD1.MODL->Textures.MODS[ListIndex]->name; + MBMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MBMOD1.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MBMOD1.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 164: //maleLeftHand_modelFlags + if (MBMOD1.MODL.IsLoaded()) + MBMOD1.MODL->MODD.Unload(); + return; + case 165: //maleLeftHand_iconPath + MBMOD1.ICON.Unload(); + return; + case 166: //maleLeftHand_smallIconPath + MBMOD1.MICO.Unload(); + return; + case 167: //maleRightHand_modPath + if (MBMOD2.MODL.IsLoaded()) + MBMOD2.MODL->MODL.Unload(); + return; + case 168: //maleRightHand_modb + if (MBMOD2.MODL.IsLoaded()) + MBMOD2.MODL->MODB.Unload(); + return; + case 169: //maleRightHand_modt_p + if (MBMOD2.MODL.IsLoaded()) + MBMOD2.MODL->MODT.Unload(); + return; + case 170: //maleRightHand_altTextures + if (MBMOD2.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MBMOD2.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MBMOD2.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MBMOD2.MODL->Textures.MODS[ListIndex]->name; + MBMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MBMOD2.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MBMOD2.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 171: //maleRightHand_modelFlags + if (MBMOD2.MODL.IsLoaded()) + MBMOD2.MODL->MODD.Unload(); + return; + case 172: //maleRightHand_iconPath + MBMOD2.ICON.Unload(); + return; + case 173: //maleRightHand_smallIconPath + MBMOD2.MICO.Unload(); + return; + case 174: //maleUpperBodyTexture_modPath + if (MBMOD3.MODL.IsLoaded()) + MBMOD3.MODL->MODL.Unload(); + return; + case 175: //maleUpperBodyTexture_modb + if (MBMOD3.MODL.IsLoaded()) + MBMOD3.MODL->MODB.Unload(); + return; + case 176: //maleUpperBodyTexture_modt_p + if (MBMOD3.MODL.IsLoaded()) + MBMOD3.MODL->MODT.Unload(); + return; + case 177: //maleUpperBodyTexture_altTextures + if (MBMOD3.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MBMOD3.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= MBMOD3.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MBMOD3.MODL->Textures.MODS[ListIndex]->name; + MBMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MBMOD3.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MBMOD3.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 178: //maleUpperBodyTexture_modelFlags + if (MBMOD3.MODL.IsLoaded()) + MBMOD3.MODL->MODD.Unload(); + return; + case 179: //maleUpperBodyTexture_iconPath + MBMOD3.ICON.Unload(); + return; + case 180: //maleUpperBodyTexture_smallIconPath + MBMOD3.MICO.Unload(); + return; + case 181: //femaleUpperBody_modPath + if (FBMOD0.MODL.IsLoaded()) + FBMOD0.MODL->MODL.Unload(); + return; + case 182: //femaleUpperBody_modb + if (FBMOD0.MODL.IsLoaded()) + FBMOD0.MODL->MODB.Unload(); + return; + case 183: //femaleUpperBody_modt_p + if (FBMOD0.MODL.IsLoaded()) + FBMOD0.MODL->MODT.Unload(); + return; + case 184: //femaleUpperBody_altTextures + if (FBMOD0.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FBMOD0.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FBMOD0.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FBMOD0.MODL->Textures.MODS[ListIndex]->name; + FBMOD0.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FBMOD0.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FBMOD0.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 185: //femaleUpperBody_modelFlags + if (FBMOD0.MODL.IsLoaded()) + FBMOD0.MODL->MODD.Unload(); + return; + case 186: //femaleUpperBody_iconPath + FBMOD0.ICON.Unload(); + return; + case 187: //femaleUpperBody_smallIconPath + FBMOD0.MICO.Unload(); + return; + case 188: //femaleLeftHand_modPath + if (FBMOD1.MODL.IsLoaded()) + FBMOD1.MODL->MODL.Unload(); + return; + case 189: //femaleLeftHand_modb + if (FBMOD1.MODL.IsLoaded()) + FBMOD1.MODL->MODB.Unload(); + return; + case 190: //femaleLeftHand_modt_p + if (FBMOD1.MODL.IsLoaded()) + FBMOD1.MODL->MODT.Unload(); + return; + case 191: //femaleLeftHand_altTextures + if (FBMOD1.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FBMOD1.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FBMOD1.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FBMOD1.MODL->Textures.MODS[ListIndex]->name; + FBMOD1.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FBMOD1.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FBMOD1.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 192: //femaleLeftHand_modelFlags + if (FBMOD1.MODL.IsLoaded()) + FBMOD1.MODL->MODD.Unload(); + return; + case 193: //femaleLeftHand_iconPath + FBMOD1.ICON.Unload(); + return; + case 194: //femaleLeftHand_smallIconPath + FBMOD1.MICO.Unload(); + return; + case 195: //femaleRightHand_modPath + if (FBMOD2.MODL.IsLoaded()) + FBMOD2.MODL->MODL.Unload(); + return; + case 196: //femaleRightHand_modb + if (FBMOD2.MODL.IsLoaded()) + FBMOD2.MODL->MODB.Unload(); + return; + case 197: //femaleRightHand_modt_p + if (FBMOD2.MODL.IsLoaded()) + FBMOD2.MODL->MODT.Unload(); + return; + case 198: //femaleRightHand_altTextures + if (FBMOD2.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FBMOD2.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FBMOD2.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FBMOD2.MODL->Textures.MODS[ListIndex]->name; + FBMOD2.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FBMOD2.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FBMOD2.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 199: //femaleRightHand_modelFlags + if (FBMOD2.MODL.IsLoaded()) + FBMOD2.MODL->MODD.Unload(); + return; + case 200: //femaleRightHand_iconPath + FBMOD2.ICON.Unload(); + return; + case 201: //femaleRightHand_smallIconPath + FBMOD2.MICO.Unload(); + return; + case 202: //femaleUpperBodyTexture_modPath + if (FBMOD3.MODL.IsLoaded()) + FBMOD3.MODL->MODL.Unload(); + return; + case 203: //femaleUpperBodyTexture_modb + if (FBMOD3.MODL.IsLoaded()) + FBMOD3.MODL->MODB.Unload(); + return; + case 204: //femaleUpperBodyTexture_modt_p + if (FBMOD3.MODL.IsLoaded()) + FBMOD3.MODL->MODT.Unload(); + return; + case 205: //femaleUpperBodyTexture_altTextures + if (FBMOD3.MODL.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + FBMOD3.MODL->Textures.Unload(); + return; + } + + if (ListIndex >= FBMOD3.MODL->Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]FBMOD3.MODL->Textures.MODS[ListIndex]->name; + FBMOD3.MODL->Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + FBMOD3.MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + FBMOD3.MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 206: //femaleUpperBodyTexture_modelFlags + if (FBMOD3.MODL.IsLoaded()) + FBMOD3.MODL->MODD.Unload(); + return; + case 207: //femaleUpperBodyTexture_iconPath + FBMOD3.ICON.Unload(); + return; + case 208: //femaleUpperBodyTexture_smallIconPath + FBMOD3.MICO.Unload(); + return; + case 209: //hairs + HNAM.Unload(); + return; + case 210: //eyes + ENAM.Unload(); + return; + case 211: //maleFggs_p + MaleFGGS.Unload(); + return; + case 212: //maleFgga_p + MaleFGGA.Unload(); + return; + case 213: //maleFgts_p + MaleFGTS.Unload(); + return; + case 214: //maleSnam_p + MaleSNAM.Unload(); + return; + case 215: //femaleFggs_p + FemaleFGGS.Unload(); + return; + case 216: //femaleFgga_p + FemaleFGGA.Unload(); + return; + case 217: //femaleFgts_p + FemaleFGTS.Unload(); + return; + case 218: //femaleSnam_p + FemaleSNAM.Unload(); + return; + default: + return; + } + } } \ No newline at end of file diff --git a/src/FalloutNewVegas/Records/API/RADSRecordAPI.cpp b/src/FalloutNewVegas/Records/API/RADSRecordAPI.cpp index 39f4828..8356a89 100644 --- a/src/FalloutNewVegas/Records/API/RADSRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/RADSRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\RADSRecord.h" +#include "../../../Common.h" +#include "../RADSRecord.h" namespace FNV { @@ -45,43 +45,43 @@ uint32_t RADSRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * RADSRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/RCCTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/RCCTRecordAPI.cpp index 73128c4..138c040 100644 --- a/src/FalloutNewVegas/Records/API/RCCTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/RCCTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\RCCTRecord.h" +#include "../../../Common.h" +#include "../RCCTRecord.h" namespace FNV { @@ -45,43 +45,43 @@ uint32_t RCCTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //flags - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * RCCTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/RCPERecordAPI.cpp b/src/FalloutNewVegas/Records/API/RCPERecordAPI.cpp index 9bbb7b7..9ccdf2a 100644 --- a/src/FalloutNewVegas/Records/API/RCPERecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/RCPERecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\RCPERecord.h" +#include "../../../Common.h" +#include "../RCPERecord.h" namespace FNV { @@ -45,98 +45,98 @@ uint32_t RCPERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //ctda Conditions - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //ctda Conditions - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; case 11: //ctda Conditions - return CB_UINT32_FIELD; + return UINT32_FIELD; case 12: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //ctda_p Conditions switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //ctda Conditions - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //ctda Conditions - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; case 16: //data DATA ,, Struct - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD; + return UNKNOWN_FIELD; // UNPARSED_FIELD; case 17: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 18: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 19: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //rcil Item - return CB_FORMID_FIELD; + return FORMID_FIELD; case 21: //rcqy Quantity - return CB_UINT32_FIELD; + return UINT32_FIELD; case 22: //rcod Item - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * RCPERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/REFRRecordAPI.cpp b/src/FalloutNewVegas/Records/API/REFRRecordAPI.cpp index a96f3e1..8b8a1ae 100644 --- a/src/FalloutNewVegas/Records/API/REFRRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/REFRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\REFRRecord.h" +#include "../../../Common.h" +#include "../REFRRecord.h" namespace FNV { @@ -45,174 +45,174 @@ uint32_t REFRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //xrgd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGD.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //xrgb_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGB.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //idleTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //idle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? 4 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //scriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 18: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 19: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Patrol.IsLoaded() ? Patrol->SCDA.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //vars if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Patrol->VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //references if(!Patrol.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Patrol->SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Patrol->SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -220,493 +220,493 @@ uint32_t REFRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Patrol->SCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Patrol->SCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //topic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //levelMod - return CB_SINT32_FIELD; + return SINT32_FIELD; case 25: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 26: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 28: //radius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //health - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //radiation - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //charge - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 32: //decals if(ListFieldID == 0) //decals { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XDCR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XDCR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 24; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 33: //linkedReference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 34: //startRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 35: //startRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //startBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 38: //endRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 39: //endGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 40: //endBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 41: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLP.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 42: //rclr_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return RCLR.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 43: //activateParentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 44: //activateParentRefs if(!ActivateParents.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //activateParentRefs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)ActivateParents->XAPR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= ActivateParents->XAPR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //delay - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 45: //prompt - return CB_STRING_FIELD; + return STRING_FIELD; case 46: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 47: //parentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 48: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XESP.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 49: //emittance - return CB_FORMID_FIELD; + return FORMID_FIELD; case 50: //boundRef - return CB_FORMID_FIELD; + return FORMID_FIELD; case 51: //primitiveX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //primitiveY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //primitiveZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 54: //primitiveRed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 55: //primitiveGreen - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 56: //primitiveBlue - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 57: //primitiveUnknown - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 58: //primitiveType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 59: //collisionType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 60: //extentX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 61: //extentY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 62: //extentZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 63: //destinationFid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 64: //destinationPosX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 65: //destinationPosY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 66: //destinationPosZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 67: //destinationRotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 68: //destinationRotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 69: //destinationRotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 70: //destinationFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 71: //markerFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 72: //markerFull - return CB_STRING_FIELD; + return STRING_FIELD; case 73: //markerType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 74: //unused5 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MapData.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 75: //markerReputation - return CB_FORMID_FIELD; + return FORMID_FIELD; case 76: //audioFull_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return AudioData.IsLoaded() ? AudioData->FULL.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 77: //audioLocation - return CB_FORMID_FIELD; + return FORMID_FIELD; case 78: //audioBnam_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return AudioData.IsLoaded() ? AudioData->BNAM.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 79: //audioUnknown1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 80: //audioUnknown2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 81: //xsrf_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XSRF.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 82: //xsrd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XSRD.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 83: //target - return CB_FORMID_FIELD; + return FORMID_FIELD; case 84: //rangeRadius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 85: //rangeType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 86: //staticPercentage - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 87: //positionReference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 88: //lockLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 89: //unused6 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XLOC.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 90: //lockKey - return CB_FORMID_FIELD; + return FORMID_FIELD; case 91: //lockFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 92: //unused7 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XLOC.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 93: //lockUnknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XLOC.IsLoaded() ? 8 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 94: //ammo - return CB_FORMID_FIELD; + return FORMID_FIELD; case 95: //ammoCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 96: //reflrefrs if(ListFieldID == 0) //reflrefrs { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XPWR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= XPWR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //type - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 97: //litWaters switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)XLTW.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 98: //actionFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 99: //navMesh - return CB_FORMID_FIELD; + return FORMID_FIELD; case 100: //navUnknown1 - return CB_UINT16_FIELD; + return UINT16_FIELD; case 101: //unused8 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XNDP.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 102: //portalLinkedRoom1 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 103: //portalLinkedRoom2 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 104: //portalWidth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 105: //portalHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 106: //portalPosX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 107: //portalPosY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 108: //portalPosZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 109: //portalQ1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 110: //portalQ2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 111: //portalQ3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 112: //portalQ4 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 113: //seed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 114: //roomCount - return CB_UINT16_FIELD; + return UINT16_FIELD; case 115: //roomUnknown1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Room.IsLoaded() && Room->XRMR.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 116: //rooms switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return Room.IsLoaded() ? (uint32_t)Room->XLRM.value.size() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 117: //occPlaneWidth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 118: //occPlaneHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 119: //occPlanePosX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 120: //occPlanePosY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 121: //occPlanePosZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 122: //occPlaneQ1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 123: //occPlaneQ2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 124: //occPlaneQ3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 125: //occPlaneQ4 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 126: //occPlaneRight - return CB_FORMID_FIELD; + return FORMID_FIELD; case 127: //occPlaneLeft - return CB_FORMID_FIELD; + return FORMID_FIELD; case 128: //occPlaneBottom - return CB_FORMID_FIELD; + return FORMID_FIELD; case 129: //occPlaneTop - return CB_FORMID_FIELD; + return FORMID_FIELD; case 130: //lod1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 131: //lod2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 132: //lod3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 133: //ignoredBySandbox - return CB_BOOL_FIELD; + return BOOL_FIELD; case 134: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 135: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 136: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 137: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 138: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 139: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 140: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 141: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * REFRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/REGNRecordAPI.cpp b/src/FalloutNewVegas/Records/API/REGNRecordAPI.cpp index e08e48f..57e0bc8 100644 --- a/src/FalloutNewVegas/Records/API/REGNRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/REGNRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\REGNRecord.h" +#include "../../../Common.h" +#include "../REGNRecord.h" namespace FNV { @@ -45,143 +45,143 @@ uint32_t REGNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //mapRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 10: //mapGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 11: //mapBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //worldspace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //areas if(ListFieldID == 0) //areas { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Areas.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Areas.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //edgeFalloff - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //points if(ListX2FieldID == 0) //points { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Areas.value[ListIndex]->RPLD.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Areas.value[ListIndex]->RPLD.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 2: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //entries if(ListFieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //entryType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 2: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 3: //priority - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 5: //objects if(ListX2FieldID == 0) //points @@ -189,176 +189,176 @@ uint32_t REGNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value[ListIndex]->RDOT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Entries.value[ListIndex]->RDOT.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //objectId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //parentIndex - return CB_UINT16_FIELD; + return UINT16_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //density - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 5: //clustering - return CB_UINT8_FIELD; + return UINT8_FIELD; case 6: //minSlope - return CB_UINT8_FIELD; + return UINT8_FIELD; case 7: //maxSlope - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 9: //radiusWRTParent - return CB_UINT16_FIELD; + return UINT16_FIELD; case 10: //radius - return CB_UINT16_FIELD; + return UINT16_FIELD; case 11: //unk1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 12: //maxHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //sink - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 14: //sinkVar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //sizeVar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //angleVarX - return CB_UINT16_FIELD; + return UINT16_FIELD; case 17: //angleVarY - return CB_UINT16_FIELD; + return UINT16_FIELD; case 18: //angleVarZ - return CB_UINT16_FIELD; + return UINT16_FIELD; case 19: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 20: //unk2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 6: //mapName - return CB_STRING_FIELD; + return STRING_FIELD; case 7: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //grasses if(ListX2FieldID == 0) //grasses { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value[ListIndex]->RDGS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Entries.value[ListIndex]->RDGS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //grass - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unk1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 9: //musicType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 10: //music - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //incidentalMedia - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //battleMedias switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Entries.value[ListIndex]->RDSB.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //sounds if(ListX2FieldID == 0) //sounds { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value[ListIndex]->RDSD.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Entries.value[ListIndex]->RDSD.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 3: //chance - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 14: //weathers if(ListX2FieldID == 0) //weathers @@ -366,46 +366,46 @@ uint32_t REGNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value[ListIndex]->RDWT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Entries.value[ListIndex]->RDWT.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //weather - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //chance - return CB_UINT32_FIELD; + return UINT32_FIELD; case 3: //globalId - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 15: //imposters switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Entries.value[ListIndex]->RDID.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * REGNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/REPURecordAPI.cpp b/src/FalloutNewVegas/Records/API/REPURecordAPI.cpp index 269f4c3..9fc321c 100644 --- a/src/FalloutNewVegas/Records/API/REPURecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/REPURecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\REPURecord.h" +#include "../../../Common.h" +#include "../REPURecord.h" namespace FNV { @@ -45,47 +45,47 @@ uint32_t REPURecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //data Value - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * REPURecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/RGDLRecordAPI.cpp b/src/FalloutNewVegas/Records/API/RGDLRecordAPI.cpp index 1aca5d4..c0f27db 100644 --- a/src/FalloutNewVegas/Records/API/RGDLRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/RGDLRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\RGDLRecord.h" +#include "../../../Common.h" +#include "../RGDLRecord.h" namespace FNV { @@ -45,136 +45,136 @@ uint32_t RGDLRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //nver Version - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 9: //data_p DATA ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 11: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //data DATA ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //data_p DATA ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //xnam Actor Base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 17: //tnam Body Part Data - return CB_FORMID_FIELD; + return FORMID_FIELD; case 18: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //rafd RAFD ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //rafd RAFD ,, Struct - return CB_SINT32_FIELD; + return SINT32_FIELD; case 32: //rafd RAFD ,, Struct - return CB_SINT32_FIELD; + return SINT32_FIELD; case 33: //rafb Feedback Dynamic Bones - return CB_UNKNOWN_FIELD; // UNPARSED_FIELD + return UNKNOWN_FIELD; // UNPARSED_FIELD case 34: //raps RAPS ,, Struct - return CB_UINT16_FIELD; + return UINT16_FIELD; case 35: //raps RAPS ,, Struct - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //raps_p RAPS ,, Struct switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 37: //raps RAPS ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 38: //raps RAPS ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 39: //raps RAPS ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 40: //raps RAPS ,, Struct - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 41: //anam Death Pose - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * RGDLRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/SCOLRecordAPI.cpp b/src/FalloutNewVegas/Records/API/SCOLRecordAPI.cpp index 8055080..aa5ccbd 100644 --- a/src/FalloutNewVegas/Records/API/SCOLRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/SCOLRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SCOLRecord.h" +#include "../../../Common.h" +#include "../SCOLRecord.h" namespace FNV { @@ -45,162 +45,162 @@ uint32_t SCOLRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 18: //statics if(ListFieldID == 0) //statics { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Parts.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Parts.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //static - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //placements if(ListX2FieldID == 0) //placements { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Parts.value[ListIndex]->DATA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Parts.value[ListIndex]->DATA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 2: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 3: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 4: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 5: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 6: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 7: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SCOLRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -380,7 +380,7 @@ bool SCOLRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/SCPTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/SCPTRecordAPI.cpp index 27aac93..92dfd3c 100644 --- a/src/FalloutNewVegas/Records/API/SCPTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/SCPTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SCPTRecord.h" +#include "../../../Common.h" +#include "../SCPTRecord.h" namespace FNV { @@ -45,135 +45,135 @@ uint32_t SCPTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 9: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 10: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 11: //scriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 12: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 13: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return SCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //vars if(ListFieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //references if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -181,21 +181,21 @@ uint32_t SCPTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (SCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD); + return (SCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SCPTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/SLPDRecordAPI.cpp b/src/FalloutNewVegas/Records/API/SLPDRecordAPI.cpp index a0b66a7..bf1eac0 100644 --- a/src/FalloutNewVegas/Records/API/SLPDRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/SLPDRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SLPDRecord.h" +#include "../../../Common.h" +#include "../SLPDRecord.h" namespace FNV { @@ -45,43 +45,43 @@ uint32_t SLPDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //data DATA ,, Struct - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //data DATA ,, Struct - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SLPDRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/SOUNRecordAPI.cpp b/src/FalloutNewVegas/Records/API/SOUNRecordAPI.cpp index f3b8be7..af37a4f 100644 --- a/src/FalloutNewVegas/Records/API/SOUNRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/SOUNRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SOUNRecord.h" +#include "../../../Common.h" +#include "../SOUNRecord.h" namespace FNV { @@ -45,99 +45,99 @@ uint32_t SOUNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //soundPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //chance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //minDistance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //maxDistance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //freqAdjustment - return CB_SINT8_FIELD; + return SINT8_FIELD; case 18: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 20: //staticAtten - return CB_SINT16_FIELD; + return SINT16_FIELD; case 21: //stopTime - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //startTime - return CB_UINT8_FIELD; + return UINT8_FIELD; case 23: //attenCurve switch(WhichAttribute) { case 0: //fieldType - return CB_SINT16_ARRAY_FIELD; + return SINT16_ARRAY_FIELD; case 1: //fieldSize return 5; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //reverb - return CB_SINT16_FIELD; + return SINT16_FIELD; case 25: //priority - return CB_SINT32_FIELD; + return SINT32_FIELD; case 26: //x - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //y - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SOUNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/SPELRecordAPI.cpp b/src/FalloutNewVegas/Records/API/SPELRecordAPI.cpp index a4e99fb..5be54bd 100644 --- a/src/FalloutNewVegas/Records/API/SPELRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/SPELRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SPELRecord.h" +#include "../../../Common.h" +#include "../SPELRecord.h" namespace FNV { @@ -45,135 +45,135 @@ uint32_t SPELRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //spellType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 9: //costUnused - return CB_UINT32_FIELD; + return UINT32_FIELD; case 10: //levelTypeUnused - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 11: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //effects if(ListFieldID == 0) //effects { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Effects.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //effect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //magnitude - return CB_UINT32_FIELD; + return UINT32_FIELD; case 3: //area - return CB_UINT32_FIELD; + return UINT32_FIELD; case 4: //duration - return CB_UINT32_FIELD; + return UINT32_FIELD; case 5: //rangeType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 6: //actorValue - return CB_SINT32_FIELD; + return SINT32_FIELD; case 7: //conditions if(ListX2FieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value[ListIndex]->CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -183,23 +183,23 @@ uint32_t SPELRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -209,54 +209,54 @@ uint32_t SPELRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; case eVATSPARAM: if(Effects.value[ListIndex]->CTDA.value[ListX2Index]->param1 < VATSFUNCTIONSIZE) { switch(VATSFunction_Argument[Effects.value[ListIndex]->CTDA.value[ListX2Index]->param1]) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 7: //runOnType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 8: //reference switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SPELRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/STATRecordAPI.cpp b/src/FalloutNewVegas/Records/API/STATRecordAPI.cpp index 888bd7a..1dfccd2 100644 --- a/src/FalloutNewVegas/Records/API/STATRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/STATRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\STATRecord.h" +#include "../../../Common.h" +#include "../STATRecord.h" namespace FNV { @@ -45,104 +45,104 @@ uint32_t STATRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 18: //passSound - return CB_SINT8_TYPE_FIELD; + return SINT8_TYPE_FIELD; case 19: //loopSound - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * STATRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -290,7 +290,7 @@ bool STATRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/TACTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/TACTRecordAPI.cpp index 52f3fe1..1489fbd 100644 --- a/src/FalloutNewVegas/Records/API/TACTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/TACTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\TACTRecord.h" +#include "../../../Common.h" +#include "../TACTRecord.h" namespace FNV { @@ -45,181 +45,181 @@ uint32_t TACTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 21: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 23: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //loopSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 26: //voice - return CB_FORMID_FIELD; + return FORMID_FIELD; case 27: //radioTemplate - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * TACTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -419,7 +419,7 @@ bool TACTRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/TERMRecordAPI.cpp b/src/FalloutNewVegas/Records/API/TERMRecordAPI.cpp index d7d96f4..94d1341 100644 --- a/src/FalloutNewVegas/Records/API/TERMRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/TERMRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\TERMRecord.h" +#include "../../../Common.h" +#include "../TERMRecord.h" namespace FNV { @@ -45,323 +45,323 @@ uint32_t TERMRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 21: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 23: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 26: //loopSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 27: //passNote - return CB_FORMID_FIELD; + return FORMID_FIELD; case 28: //difficultyType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 29: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 30: //serverType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 31: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //menus if(ListFieldID == 0) //menus { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Menus.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Menus.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //text - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //resultText - return CB_STRING_FIELD; + return STRING_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //displayNote - return CB_FORMID_FIELD; + return FORMID_FIELD; case 5: //subMenu - return CB_FORMID_FIELD; + return FORMID_FIELD; case 6: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 7: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 9: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 10: //scriptType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 11: //scriptFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 12: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Menus.value[ListIndex]->SCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 13: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //vars if(ListX2FieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Menus.value[ListIndex]->VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Menus.value[ListIndex]->VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //references if(ListX2FieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Menus.value[ListIndex]->SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX2Index >= Menus.value[ListIndex]->SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { @@ -369,65 +369,65 @@ uint32_t TERMRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (Menus.value[ListIndex]->SCR_.value[ListX2Index]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD); + return (Menus.value[ListIndex]->SCR_.value[ListX2Index]->isSCRO ? FORMID_FIELD : UINT32_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //conditions if(ListX2FieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Menus.value[ListIndex]->CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Menus.value[ListIndex]->CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return Menus.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return Menus.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Menus.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -437,23 +437,23 @@ uint32_t TERMRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = FNVFunction_Arguments.find(Menus.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -463,53 +463,53 @@ uint32_t TERMRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; case eVATSPARAM: if(Menus.value[ListIndex]->CTDA.value[ListX2Index]->param1 < VATSFUNCTIONSIZE) { switch(VATSFunction_Argument[Menus.value[ListIndex]->CTDA.value[ListX2Index]->param1]) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 7: //runOnType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 8: //reference switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Menus.value[ListIndex]->CTDA.value[ListX2Index]->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Menus.value[ListIndex]->CTDA.value[ListX2Index]->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * TERMRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -809,7 +809,7 @@ bool TERMRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/TREERecordAPI.cpp b/src/FalloutNewVegas/Records/API/TREERecordAPI.cpp index 47ef0e1..791be54 100644 --- a/src/FalloutNewVegas/Records/API/TREERecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/TREERecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\TREERecord.h" +#include "../../../Common.h" +#include "../TREERecord.h" namespace FNV { @@ -45,135 +45,135 @@ uint32_t TREERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 18: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 19: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //speedTree switch(WhichAttribute) { case 0: //fieldType - return CB_UINT32_ARRAY_FIELD; + return UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)SNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 21: //curvature - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //minAngle - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //maxAngle - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //branchDim - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //leafDim - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //shadowRadius - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //rockSpeed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //rustleSpeed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //widthBill - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //heightBill - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * TREERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -344,7 +344,7 @@ bool TREERecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/TXSTRecordAPI.cpp b/src/FalloutNewVegas/Records/API/TXSTRecordAPI.cpp index cf55e50..afbaa5c 100644 --- a/src/FalloutNewVegas/Records/API/TXSTRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/TXSTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\TXSTRecord.h" +#include "../../../Common.h" +#include "../TXSTRecord.h" namespace FNV { @@ -45,111 +45,111 @@ uint32_t TXSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //baseImageOrTransparency - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //normalMapOrSpecular - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //envMapMaskOrUnk - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 16: //glowMapOrUnused - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 17: //parallaxMapOrUnused - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 18: //envMapOrUnused - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 19: //decalMinWidth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //decalMaxWidth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //decalMinHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //decalMaxHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //decalDepth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //decalShininess - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //decalScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //decalPasses - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //decalFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 28: //decalUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DODT.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 29: //decalRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //decalGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //decalBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //decalUnused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DODT.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 33: //flags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * TXSTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/VTYPRecordAPI.cpp b/src/FalloutNewVegas/Records/API/VTYPRecordAPI.cpp index d8844ee..c43647e 100644 --- a/src/FalloutNewVegas/Records/API/VTYPRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/VTYPRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\VTYPRecord.h" +#include "../../../Common.h" +#include "../VTYPRecord.h" namespace FNV { @@ -45,41 +45,41 @@ uint32_t VTYPRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //dnam Flags - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * VTYPRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/WATRRecordAPI.cpp b/src/FalloutNewVegas/Records/API/WATRRecordAPI.cpp index 6cc331c..ac98b44 100644 --- a/src/FalloutNewVegas/Records/API/WATRRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/WATRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\WATRRecord.h" +#include "../../../Common.h" +#include "../WATRRecord.h" namespace FNV { @@ -45,222 +45,222 @@ uint32_t WATRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //noisePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //opacity - return CB_UINT8_FIELD; + return UINT8_FIELD; case 10: //flags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 11: //material - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 12: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //effect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //damage - return CB_UINT16_FIELD; + return UINT16_FIELD; case 15: //unknown1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //unknown2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //unknown3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //unknown4 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //sunPower - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //reflectAmt - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //fresnelAmt - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //fogNear - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //fogFar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //shallow.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 26: //shallow.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //shallow.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 28: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 29: //deep.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //deep.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //deep.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 33: //refl.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //refl.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 35: //refl.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 37: //unused5 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 38: //rainForce - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 39: //rainVelocity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 40: //rainFalloff - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 41: //rainDampner - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 42: //dispSize - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 43: //dispForce - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 44: //dispVelocity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 45: //dispFalloff - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 46: //dispDampner - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 47: //rainSize - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 48: //normalsNoiseScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 49: //noise1Direction - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 50: //noise2Direction - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //noise3Direction - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //noise1Speed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //noise2Speed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 54: //noise3Speed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 55: //normalsFalloffStart - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 56: //normalsFalloffEnd - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 57: //fogAmt - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 58: //normalsUVScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 59: //underFogAmt - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 60: //underFogNear - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 61: //underFogFar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 62: //distAmt - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 63: //shininess - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 64: //hdrMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 65: //lightRadius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 66: //lightBright - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 67: //noise1UVScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 68: //noise2UVScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 69: //noise3UVScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 70: //noise1AmpScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 71: //noise2AmpScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 72: //noise3AmpScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 73: //dayWater - return CB_FORMID_FIELD; + return FORMID_FIELD; case 74: //nightWater - return CB_FORMID_FIELD; + return FORMID_FIELD; case 75: //underWater - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * WATRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/WEAPRecordAPI.cpp b/src/FalloutNewVegas/Records/API/WEAPRecordAPI.cpp index a886c0c..13ab943 100644 --- a/src/FalloutNewVegas/Records/API/WEAPRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/WEAPRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\WEAPRecord.h" +#include "../../../Common.h" +#include "../WEAPRecord.h" namespace FNV { @@ -45,587 +45,587 @@ uint32_t WEAPRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 19: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 20: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 21: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //effect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 23: //chargeAmount - return CB_SINT16_FIELD; + return SINT16_FIELD; case 24: //ammo - return CB_FORMID_FIELD; + return FORMID_FIELD; case 25: //destructableHealth - return CB_SINT32_FIELD; + return SINT32_FIELD; case 26: //destructableCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //destructableFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 28: //destructableUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 29: //destructableStages if(!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //destructableStages { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Destructable->Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //health - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //index - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //stage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 5: //dps - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //explosion - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //debris - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //debrisCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //repairList - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //equipmentType - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 32: //modelList - return CB_FORMID_FIELD; + return FORMID_FIELD; case 33: //pickupSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 34: //dropSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 35: //shell_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 36: //shell_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD2.IsLoaded() ? MOD2->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 37: //shell_altTextures if(!MOD2.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MOD2->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= MOD2->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 38: //scope_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 39: //scope_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD2.IsLoaded() ? MOD2->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 40: //scope_altTextures if(!MOD2.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MOD2->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= MOD2->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //scopeEffect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 42: //world_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 43: //world_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD2.IsLoaded() ? MOD2->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 44: //world_altTextures if(!MOD2.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MOD2->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= MOD2->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 45: //vatsName - return CB_STRING_FIELD; + return STRING_FIELD; case 46: //weaponNode - return CB_STRING_FIELD; + return STRING_FIELD; case 47: //model1Path - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 48: //model2Path - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 49: //model12Path - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 50: //model3Path - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 51: //model13Path - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 52: //model23Path - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 53: //model123Path - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 54: //impact - return CB_FORMID_FIELD; + return FORMID_FIELD; case 55: //model - return CB_FORMID_FIELD; + return FORMID_FIELD; case 56: //model1 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 57: //model2 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 58: //model12 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 59: //model3 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 60: //model13 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 61: //model23 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 62: //model123 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 63: //mod1 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 64: //mod2 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 65: //mod3 - return CB_FORMID_FIELD; + return FORMID_FIELD; case 66: //sound3D - return CB_FORMID_FIELD; + return FORMID_FIELD; case 67: //soundDist - return CB_FORMID_FIELD; + return FORMID_FIELD; case 68: //sound2D - return CB_FORMID_FIELD; + return FORMID_FIELD; case 69: //sound3DLoop - return CB_FORMID_FIELD; + return FORMID_FIELD; case 70: //soundMelee - return CB_FORMID_FIELD; + return FORMID_FIELD; case 71: //soundBlock - return CB_FORMID_FIELD; + return FORMID_FIELD; case 72: //soundIdle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 73: //soundEquip - return CB_FORMID_FIELD; + return FORMID_FIELD; case 74: //soundUnequip - return CB_FORMID_FIELD; + return FORMID_FIELD; case 75: //soundMod3D - return CB_FORMID_FIELD; + return FORMID_FIELD; case 76: //soundModDist - return CB_FORMID_FIELD; + return FORMID_FIELD; case 77: //soundMod2D - return CB_FORMID_FIELD; + return FORMID_FIELD; case 78: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 79: //health - return CB_SINT32_FIELD; + return SINT32_FIELD; case 80: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 81: //damage - return CB_SINT16_FIELD; + return SINT16_FIELD; case 82: //clipSize - return CB_UINT8_FIELD; + return UINT8_FIELD; case 83: //animType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 84: //animMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 85: //reach - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 86: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 87: //gripAnim - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 88: //ammoUse - return CB_UINT8_FIELD; + return UINT8_FIELD; case 89: //reloadAnim - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 90: //minSpread - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 91: //spread - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 92: //unknown1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 93: //sightFOV - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 94: //unknown2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 95: //projectile - return CB_FORMID_FIELD; + return FORMID_FIELD; case 96: //VATSHitChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 97: //attackAnim - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 98: //projectileCount - return CB_UINT8_FIELD; + return UINT8_FIELD; case 99: //weaponAV - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 100: //minRange - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 101: //maxRange - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 102: //onHit - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 103: //extraFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 104: //animAttackMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 105: //fireRate - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 106: //overrideAP - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 107: //leftRumble - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 108: //timeRumble - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 109: //overrideDamageToWeapon - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 110: //reloadTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 111: //jamTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 112: //aimArc - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 113: //skill - return CB_SINT32_FIELD; + return SINT32_FIELD; case 114: //rumbleType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 115: //rumbleWavelength - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 116: //limbDamageMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 117: //resistType - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 118: //sightUsage - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 119: //semiFireDelayMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 120: //semiFireDelayMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 121: //unknown3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 122: //effectMod1 - return CB_UINT32_FIELD; + return UINT32_FIELD; case 123: //effectMod2 - return CB_UINT32_FIELD; + return UINT32_FIELD; case 124: //effectMod3 - return CB_UINT32_FIELD; + return UINT32_FIELD; case 125: //valueAMod1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 126: //valueAMod2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 127: //valueAMod3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 128: //overridePwrAtkAnim - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 129: //strengthReq - return CB_UINT32_FIELD; + return UINT32_FIELD; case 130: //unknown4 - return CB_UINT8_FIELD; + return UINT8_FIELD; case 131: //reloadAnimMod - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 132: //unknown5 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 133: //regenRate - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 134: //killImpulse - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 135: //valueBMod1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 136: //valueBMod2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 137: //valueBMod3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 138: //skillReq - return CB_UINT32_FIELD; + return UINT32_FIELD; case 139: //critDamage - return CB_UINT16_FIELD; + return UINT16_FIELD; case 140: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 141: //critMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 142: //critFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 143: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 144: //critEffect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 145: //vatsEffect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 146: //vatsSkill - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 147: //vatsDamageMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 148: //AP - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 149: //silenceType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 150: //modRequiredType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 151: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 152: //soundLevelType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * WEAPRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -1133,7 +1133,7 @@ bool WEAPRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture @@ -1277,7 +1277,7 @@ bool WEAPRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MOD2->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MOD2->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MOD2->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture @@ -1318,7 +1318,7 @@ bool WEAPRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MOD2->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MOD2->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MOD2->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture @@ -1362,7 +1362,7 @@ bool WEAPRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MOD2->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MOD2->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MOD2->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/WRLDRecordAPI.cpp b/src/FalloutNewVegas/Records/API/WRLDRecordAPI.cpp index 3427db3..f4bee67 100644 --- a/src/FalloutNewVegas/Records/API/WRLDRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/WRLDRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\WRLDRecord.h" +#include "../../../Common.h" +#include "../WRLDRecord.h" namespace FNV { @@ -45,172 +45,172 @@ uint32_t WRLDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //parentFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 11: //climate - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //water - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //lodWater - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //lodWaterHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //defaultLandHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //defaultWaterHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 18: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 19: //dimX - return CB_SINT32_FIELD; + return SINT32_FIELD; case 20: //dimY - return CB_SINT32_FIELD; + return SINT32_FIELD; case 21: //NWCellX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 22: //NWCellY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 23: //SECellX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 24: //SECellY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 25: //mapScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //xCellOffset - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //yCellOffset - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //imageSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 30: //xMinObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //yMinObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 32: //xMaxObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 33: //yMaxObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 34: //music - return CB_FORMID_FIELD; + return FORMID_FIELD; case 35: //canopyShadowPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 36: //waterNoisePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 37: //swappedImpacts if(ListFieldID == 0) //swappedImpacts { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)IMPS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= IMPS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //material - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 2: //oldImpact - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //newImpact - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 38: //concSolid - return CB_STRING_FIELD; + return STRING_FIELD; case 39: //concBroken - return CB_STRING_FIELD; + return STRING_FIELD; case 40: //metalSolid - return CB_STRING_FIELD; + return STRING_FIELD; case 41: //metalHollow - return CB_STRING_FIELD; + return STRING_FIELD; case 42: //metalSheet - return CB_STRING_FIELD; + return STRING_FIELD; case 43: //wood - return CB_STRING_FIELD; + return STRING_FIELD; case 44: //sand - return CB_STRING_FIELD; + return STRING_FIELD; case 45: //dirt - return CB_STRING_FIELD; + return STRING_FIELD; case 46: //grass - return CB_STRING_FIELD; + return STRING_FIELD; case 47: //water - return CB_STRING_FIELD; + return STRING_FIELD; case 48: //ofst_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return OFST.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 49: //CELL - return CB_SUBRECORD_FIELD; + return SUBRECORD_FIELD; case 50: //CELLS switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)CELLS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * WRLDRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/FalloutNewVegas/Records/API/WTHRRecordAPI.cpp b/src/FalloutNewVegas/Records/API/WTHRRecordAPI.cpp index 1751e21..1486812 100644 --- a/src/FalloutNewVegas/Records/API/WTHRRecordAPI.cpp +++ b/src/FalloutNewVegas/Records/API/WTHRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\WTHRRecord.h" +#include "../../../Common.h" +#include "../WTHRRecord.h" namespace FNV { @@ -45,1237 +45,1237 @@ uint32_t WTHRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //sunriseImageSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //dayImageSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //sunsetImageSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //nightImageSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //unknown1ImageSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //unknown2ImageSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //cloudLayer0Path - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //cloudLayer1Path - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //cloudLayer2Path - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 16: //cloudLayer3Path - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 17: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 18: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //altTextures if(!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListFieldID == 0) //altTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)MODL->Textures.MODS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //name - return CB_STRING_FIELD; + return STRING_FIELD; case 2: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //index - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 21: //modelFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 22: //unknown1 - return CB_UINT32_FIELD; + return UINT32_FIELD; case 23: //layer0Speed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 24: //layer1Speed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 25: //layer2Speed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 26: //layer3Speed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //pnam_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return PNAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 28: //upperSky.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 29: //upperSky.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //upperSky.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //upperSky.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //upperSky.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //upperSky.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //upperSky.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 35: //upperSky.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 36: //upperSky.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //upperSky.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 38: //upperSky.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 39: //upperSky.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 40: //upperSky.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 41: //upperSky.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 42: //upperSky.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 43: //upperSky.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 44: //upperSky.noon.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 45: //upperSky.noon.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 46: //upperSky.noon.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 47: //upperSky.noon.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 48: //upperSky.midnight.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 49: //upperSky.midnight.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 50: //upperSky.midnight.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 51: //upperSky.midnight.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 52: //fog.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 53: //fog.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 54: //fog.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 55: //fog.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 56: //fog.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 57: //fog.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 58: //fog.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 59: //fog.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 60: //fog.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 61: //fog.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 62: //fog.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 63: //fog.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 64: //fog.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 65: //fog.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 66: //fog.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 67: //fog.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 68: //fog.noon.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 69: //fog.noon.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 70: //fog.noon.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 71: //fog.noon.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 72: //fog.midnight.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 73: //fog.midnight.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 74: //fog.midnight.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 75: //fog.midnight.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 76: //lowerClouds.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 77: //lowerClouds.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 78: //lowerClouds.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 79: //lowerClouds.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 80: //lowerClouds.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 81: //lowerClouds.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 82: //lowerClouds.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 83: //lowerClouds.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 84: //lowerClouds.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 85: //lowerClouds.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 86: //lowerClouds.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 87: //lowerClouds.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 88: //lowerClouds.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 89: //lowerClouds.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 90: //lowerClouds.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 91: //lowerClouds.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 92: //lowerClouds.noon.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 93: //lowerClouds.noon.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 94: //lowerClouds.noon.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 95: //lowerClouds.noon.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 96: //lowerClouds.midnight.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 97: //lowerClouds.midnight.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 98: //lowerClouds.midnight.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 99: //lowerClouds.midnight.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 100: //ambient.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 101: //ambient.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 102: //ambient.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 103: //ambient.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 104: //ambient.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 105: //ambient.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 106: //ambient.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 107: //ambient.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 108: //ambient.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 109: //ambient.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 110: //ambient.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 111: //ambient.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 112: //ambient.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 113: //ambient.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 114: //ambient.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 115: //ambient.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 116: //ambient.noon.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 117: //ambient.noon.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 118: //ambient.noon.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 119: //ambient.noon.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 120: //ambient.midnight.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 121: //ambient.midnight.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 122: //ambient.midnight.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 123: //ambient.midnight.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 124: //sunlight.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 125: //sunlight.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 126: //sunlight.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 127: //sunlight.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 128: //sunlight.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 129: //sunlight.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 130: //sunlight.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 131: //sunlight.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 132: //sunlight.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 133: //sunlight.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 134: //sunlight.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 135: //sunlight.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 136: //sunlight.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 137: //sunlight.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 138: //sunlight.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 139: //sunlight.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 140: //sunlight.noon.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 141: //sunlight.noon.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 142: //sunlight.noon.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 143: //sunlight.noon.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 144: //sunlight.midnight.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 145: //sunlight.midnight.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 146: //sunlight.midnight.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 147: //sunlight.midnight.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 148: //sun.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 149: //sun.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 150: //sun.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 151: //sun.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 152: //sun.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 153: //sun.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 154: //sun.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 155: //sun.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 156: //sun.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 157: //sun.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 158: //sun.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 159: //sun.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 160: //sun.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 161: //sun.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 162: //sun.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 163: //sun.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 164: //sun.noon.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 165: //sun.noon.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 166: //sun.noon.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 167: //sun.noon.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 168: //sun.midnight.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 169: //sun.midnight.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 170: //sun.midnight.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 171: //sun.midnight.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 172: //stars.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 173: //stars.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 174: //stars.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 175: //stars.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 176: //stars.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 177: //stars.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 178: //stars.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 179: //stars.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 180: //stars.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 181: //stars.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 182: //stars.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 183: //stars.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 184: //stars.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 185: //stars.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 186: //stars.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 187: //stars.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 188: //stars.noon.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 189: //stars.noon.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 190: //stars.noon.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 191: //stars.noon.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 192: //stars.midnight.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 193: //stars.midnight.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 194: //stars.midnight.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 195: //stars.midnight.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 196: //lowerSky.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 197: //lowerSky.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 198: //lowerSky.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 199: //lowerSky.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 200: //lowerSky.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 201: //lowerSky.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 202: //lowerSky.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 203: //lowerSky.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 204: //lowerSky.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 205: //lowerSky.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 206: //lowerSky.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 207: //lowerSky.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 208: //lowerSky.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 209: //lowerSky.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 210: //lowerSky.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 211: //lowerSky.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 212: //lowerSky.noon.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 213: //lowerSky.noon.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 214: //lowerSky.noon.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 215: //lowerSky.noon.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 216: //lowerSky.midnight.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 217: //lowerSky.midnight.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 218: //lowerSky.midnight.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 219: //lowerSky.midnight.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 220: //horizon.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 221: //horizon.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 222: //horizon.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 223: //horizon.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 224: //horizon.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 225: //horizon.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 226: //horizon.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 227: //horizon.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 228: //horizon.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 229: //horizon.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 230: //horizon.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 231: //horizon.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 232: //horizon.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 233: //horizon.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 234: //horizon.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 235: //horizon.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 236: //horizon.noon.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 237: //horizon.noon.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 238: //horizon.noon.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 239: //horizon.noon.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 240: //horizon.midnight.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 241: //horizon.midnight.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 242: //horizon.midnight.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 243: //horizon.midnight.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 244: //upperClouds.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 245: //upperClouds.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 246: //upperClouds.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 247: //upperClouds.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 248: //upperClouds.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 249: //upperClouds.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 250: //upperClouds.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 251: //upperClouds.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 252: //upperClouds.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 253: //upperClouds.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 254: //upperClouds.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 255: //upperClouds.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 256: //upperClouds.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 257: //upperClouds.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 258: //upperClouds.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 259: //upperClouds.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 260: //upperClouds.noon.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 261: //upperClouds.noon.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 262: //upperClouds.noon.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 263: //upperClouds.noon.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 264: //upperClouds.midnight.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 265: //upperClouds.midnight.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 266: //upperClouds.midnight.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 267: //upperClouds.midnight.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 268: //fogDayNear - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 269: //fogDayFar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 270: //fogNightNear - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 271: //fogNightFar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 272: //fogDayPower - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 273: //fogNightPower - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 274: //inam_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return INAM.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 275: //windSpeed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 276: //lowerCloudSpeed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 277: //upperCloudSpeed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 278: //transDelta - return CB_UINT8_FIELD; + return UINT8_FIELD; case 279: //sunGlare - return CB_UINT8_FIELD; + return UINT8_FIELD; case 280: //sunDamage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 281: //rainFadeIn - return CB_UINT8_FIELD; + return UINT8_FIELD; case 282: //rainFadeOut - return CB_UINT8_FIELD; + return UINT8_FIELD; case 283: //boltFadeIn - return CB_UINT8_FIELD; + return UINT8_FIELD; case 284: //boltFadeOut - return CB_UINT8_FIELD; + return UINT8_FIELD; case 285: //boltFrequency - return CB_UINT8_FIELD; + return UINT8_FIELD; case 286: //weatherType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 287: //boltRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 288: //boltGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 289: //boltBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 290: //sounds if(ListFieldID == 0) //sounds { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Sounds.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Sounds.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //type - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * WTHRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -2051,7 +2051,7 @@ bool WTHRRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz { ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); + strncpy(MODL->Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); } break; case 2: //texture diff --git a/src/FalloutNewVegas/Records/API/apistrip.py b/src/FalloutNewVegas/Records/API/apistrip.py new file mode 100644 index 0000000..5846df7 --- /dev/null +++ b/src/FalloutNewVegas/Records/API/apistrip.py @@ -0,0 +1,173 @@ +import os, glob + +def maxer(lines): + nums = [-1] + for line in lines: +## if line.lstrip()[:2] == '//': +## continue + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + nums.append(pos-i+2) + return max(nums) + +def spacer(line, maxsize): + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + g = 1 + while line[pos+g] == ' ': + g += 1 + line = line[:pos-i+1] + ' = ' + line[pos+g:] + pos = line.find('=') + return line[:pos] + ' ' * (maxsize - pos) + line[pos:] + return line +for infile in glob.glob('*.cpp~'): + os.remove(infile) +for infile in glob.glob('*.h~'): + os.remove(infile) +for infile in glob.glob('*.bak'): + os.remove(infile) +for infile in glob.glob('*.cpp'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + inTest = False + inSet = False + inDel = False + inGet = False + inAttr = False + enumLines = [] + testLines = [] + num = 0 + for l in contents[:-1]: + num += 1 + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + elif inSet or inDel or inGet or inAttr: + testLines += [l] + if inDel: + if 'break' in l: + print 'Break found in ', infile, 'DeleteField' + print '\t', testLines[-3], + print '\t', testLines[-2], + print '\t', l + if 'return ' in l: + print 'Return found in ', infile, 'DeleteField' + print '\t', testLines[-3], + print '\t', testLines[-2], + print '\t', l + if inGet: + if '_FIELD' in l: + print '_FIELD found in ', infile, 'GetField' + print '\t', testLines[-3], + print '\t', testLines[-2], + print '\t', l + if inAttr: + pass + if inDel or inSet or inGet: + if 'default:' in l: + if 'break' not in testLines[-2] and 'return' not in testLines[-2]: + if '}' in testLines[-2] or 'break' not in testLines[-3] and 'return' not in testLines[-3]: + print 'Missing break found in ', infile, 'line', num + print '\t', testLines[-3], + print '\t', testLines[-2], + print '\t', l + if ' case ' in l and 'switch' not in testLines[-3]: + if 'break' not in testLines[-2] and 'return' not in testLines[-2]: + if '}' in testLines[-2] or 'break' not in testLines[-3] and 'return' not in testLines[-3]: + print 'Missing break or return found in ', infile, 'line', num + print '\t', testLines[-3], + print '\t', testLines[-2], + print '\t', l + if l.startswith(' }'): + inSet = False + inDel = False + inGet = False + inAttr = False + testLines = [] + o.write(l) + else: + o.write(l) + if ' enum ' in l: + inEnum = True + if 'SetField(FIELD_IDENTIFIERS, void *FieldValue, UINT32 ArraySize)' in l: + inSet = True + if 'DeleteField(FIELD_IDENTIFIERS)' in l: + inDel = True + if 'GetField(FIELD_IDENTIFIERS, void **FieldValues)' in l: + inGet = True + if 'GetFieldAttribute(FIELD_IDENTIFIERS, UINT32 WhichAttribute)' in l: + inAttr = True + + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() + +for infile in glob.glob('*.h'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() \ No newline at end of file diff --git a/src/FalloutNewVegas/Records/ARMARecord.cpp b/src/FalloutNewVegas/Records/ARMARecord.cpp index e23ba36..27e3763 100644 --- a/src/FalloutNewVegas/Records/ARMARecord.cpp +++ b/src/FalloutNewVegas/Records/ARMARecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ARMARecord.h" namespace FNV @@ -736,7 +736,11 @@ int32_t ARMARecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DNAM.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" ARMA: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/ARMARecord.h b/src/FalloutNewVegas/Records/ARMARecord.h index 2d76996..9cb4146 100644 --- a/src/FalloutNewVegas/Records/ARMARecord.h +++ b/src/FalloutNewVegas/Records/ARMARecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/ARMORecord.cpp b/src/FalloutNewVegas/Records/ARMORecord.cpp index 6d9693f..485cf34 100644 --- a/src/FalloutNewVegas/Records/ARMORecord.cpp +++ b/src/FalloutNewVegas/Records/ARMORecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ARMORecord.h" namespace FNV @@ -901,7 +901,7 @@ int32_t ARMORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ARMO: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/ARMORecord.h b/src/FalloutNewVegas/Records/ARMORecord.h index 84636af..2f8f1ef 100644 --- a/src/FalloutNewVegas/Records/ARMORecord.h +++ b/src/FalloutNewVegas/Records/ARMORecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/ASPCRecord.cpp b/src/FalloutNewVegas/Records/ASPCRecord.cpp index d8cadae..5a100a7 100644 --- a/src/FalloutNewVegas/Records/ASPCRecord.cpp +++ b/src/FalloutNewVegas/Records/ASPCRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ASPCRecord.h" namespace FNV @@ -509,7 +509,7 @@ int32_t ASPCRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //ERROR //printer("FileName = %s\n", FileName); printer(" ASPC: %08X - Unexpected SNAM\n", formID); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -532,7 +532,7 @@ int32_t ASPCRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ASPC: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/ASPCRecord.h b/src/FalloutNewVegas/Records/ASPCRecord.h index 69a1b8f..1739702 100644 --- a/src/FalloutNewVegas/Records/ASPCRecord.h +++ b/src/FalloutNewVegas/Records/ASPCRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/AVIFRecord.cpp b/src/FalloutNewVegas/Records/AVIFRecord.cpp index b1329a4..cc6d8c0 100644 --- a/src/FalloutNewVegas/Records/AVIFRecord.cpp +++ b/src/FalloutNewVegas/Records/AVIFRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "AVIFRecord.h" namespace FNV @@ -135,7 +135,11 @@ int32_t AVIFRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer ANAM.Read(buffer, subSize, CompressedOnDisk); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" AVIF: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/AVIFRecord.h b/src/FalloutNewVegas/Records/AVIFRecord.h index 4df86be..be419f8 100644 --- a/src/FalloutNewVegas/Records/AVIFRecord.h +++ b/src/FalloutNewVegas/Records/AVIFRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/BOOKRecord.cpp b/src/FalloutNewVegas/Records/BOOKRecord.cpp index 6d32c50..9f2eab2 100644 --- a/src/FalloutNewVegas/Records/BOOKRecord.cpp +++ b/src/FalloutNewVegas/Records/BOOKRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "BOOKRecord.h" namespace FNV @@ -266,7 +266,7 @@ int32_t BOOKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" BOOK: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/BOOKRecord.h b/src/FalloutNewVegas/Records/BOOKRecord.h index 4144ab7..ea05c69 100644 --- a/src/FalloutNewVegas/Records/BOOKRecord.h +++ b/src/FalloutNewVegas/Records/BOOKRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/BPTDRecord.cpp b/src/FalloutNewVegas/Records/BPTDRecord.cpp index e37fdb5..a684fb0 100644 --- a/src/FalloutNewVegas/Records/BPTDRecord.cpp +++ b/src/FalloutNewVegas/Records/BPTDRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "BPTDRecord.h" namespace FNV @@ -538,7 +538,11 @@ int32_t BPTDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer RAGA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" BPTD: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/BPTDRecord.h b/src/FalloutNewVegas/Records/BPTDRecord.h index 355e78f..eee93c7 100644 --- a/src/FalloutNewVegas/Records/BPTDRecord.h +++ b/src/FalloutNewVegas/Records/BPTDRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CAMSRecord.cpp b/src/FalloutNewVegas/Records/CAMSRecord.cpp index aec4a3d..04792df 100644 --- a/src/FalloutNewVegas/Records/CAMSRecord.cpp +++ b/src/FalloutNewVegas/Records/CAMSRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CAMSRecord.h" namespace FNV @@ -374,7 +374,11 @@ int32_t CAMSRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer MNAM.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" CAMS: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/CAMSRecord.h b/src/FalloutNewVegas/Records/CAMSRecord.h index f96ce6f..2502b63 100644 --- a/src/FalloutNewVegas/Records/CAMSRecord.h +++ b/src/FalloutNewVegas/Records/CAMSRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CCRDRecord.cpp b/src/FalloutNewVegas/Records/CCRDRecord.cpp index 3f4c434..c51bdca 100644 --- a/src/FalloutNewVegas/Records/CCRDRecord.cpp +++ b/src/FalloutNewVegas/Records/CCRDRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CCRDRecord.h" namespace FNV @@ -252,7 +252,11 @@ int32_t CCRDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" CCRD: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/CCRDRecord.h b/src/FalloutNewVegas/Records/CCRDRecord.h index 2ef8e96..1a531a6 100644 --- a/src/FalloutNewVegas/Records/CCRDRecord.h +++ b/src/FalloutNewVegas/Records/CCRDRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CDCKRecord.cpp b/src/FalloutNewVegas/Records/CDCKRecord.cpp index 8d8569c..3c34e97 100644 --- a/src/FalloutNewVegas/Records/CDCKRecord.cpp +++ b/src/FalloutNewVegas/Records/CDCKRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CDCKRecord.h" namespace FNV @@ -131,7 +131,11 @@ int32_t CDCKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" CDCK: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/CDCKRecord.h b/src/FalloutNewVegas/Records/CDCKRecord.h index d64aa25..2256b63 100644 --- a/src/FalloutNewVegas/Records/CDCKRecord.h +++ b/src/FalloutNewVegas/Records/CDCKRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CELLRecord.cpp b/src/FalloutNewVegas/Records/CELLRecord.cpp index 543c948..1791f7e 100644 --- a/src/FalloutNewVegas/Records/CELLRecord.cpp +++ b/src/FalloutNewVegas/Records/CELLRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CELLRecord.h" namespace FNV @@ -525,7 +525,7 @@ int32_t CELLRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CELL: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/CELLRecord.h b/src/FalloutNewVegas/Records/CELLRecord.h index 1bf3ec5..ebd252e 100644 --- a/src/FalloutNewVegas/Records/CELLRecord.h +++ b/src/FalloutNewVegas/Records/CELLRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CHALRecord.cpp b/src/FalloutNewVegas/Records/CHALRecord.cpp index 03d54b0..ed791a7 100644 --- a/src/FalloutNewVegas/Records/CHALRecord.cpp +++ b/src/FalloutNewVegas/Records/CHALRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CHALRecord.h" namespace FNV @@ -311,7 +311,11 @@ int32_t CHALRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer XNAM.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" CHAL: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/CHALRecord.h b/src/FalloutNewVegas/Records/CHALRecord.h index df4073f..20da35d 100644 --- a/src/FalloutNewVegas/Records/CHALRecord.h +++ b/src/FalloutNewVegas/Records/CHALRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CHIPRecord.cpp b/src/FalloutNewVegas/Records/CHIPRecord.cpp index ba306c2..8c0827d 100644 --- a/src/FalloutNewVegas/Records/CHIPRecord.cpp +++ b/src/FalloutNewVegas/Records/CHIPRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CHIPRecord.h" namespace FNV @@ -205,7 +205,11 @@ int32_t CHIPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer ZNAM.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" CHIP: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/CHIPRecord.h b/src/FalloutNewVegas/Records/CHIPRecord.h index 301d529..75737ad 100644 --- a/src/FalloutNewVegas/Records/CHIPRecord.h +++ b/src/FalloutNewVegas/Records/CHIPRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CLASRecord.cpp b/src/FalloutNewVegas/Records/CLASRecord.cpp index ddae5e0..1a77a3f 100644 --- a/src/FalloutNewVegas/Records/CLASRecord.cpp +++ b/src/FalloutNewVegas/Records/CLASRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CLASRecord.h" namespace FNV @@ -373,7 +373,7 @@ int32_t CLASRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CLAS: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/CLASRecord.h b/src/FalloutNewVegas/Records/CLASRecord.h index a21f307..948f4b9 100644 --- a/src/FalloutNewVegas/Records/CLASRecord.h +++ b/src/FalloutNewVegas/Records/CLASRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CLMTRecord.cpp b/src/FalloutNewVegas/Records/CLMTRecord.cpp index a9b6062..5a6e121 100644 --- a/src/FalloutNewVegas/Records/CLMTRecord.cpp +++ b/src/FalloutNewVegas/Records/CLMTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CLMTRecord.h" namespace FNV @@ -223,7 +223,7 @@ int32_t CLMTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CLMT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/CLMTRecord.h b/src/FalloutNewVegas/Records/CLMTRecord.h index e1a3bb1..3306026 100644 --- a/src/FalloutNewVegas/Records/CLMTRecord.h +++ b/src/FalloutNewVegas/Records/CLMTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CMNYRecord.cpp b/src/FalloutNewVegas/Records/CMNYRecord.cpp index 7a32f39..3305923 100644 --- a/src/FalloutNewVegas/Records/CMNYRecord.cpp +++ b/src/FalloutNewVegas/Records/CMNYRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CMNYRecord.h" namespace FNV @@ -176,7 +176,11 @@ int32_t CMNYRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" CMNY: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/CMNYRecord.h b/src/FalloutNewVegas/Records/CMNYRecord.h index 2315c73..66e1af7 100644 --- a/src/FalloutNewVegas/Records/CMNYRecord.h +++ b/src/FalloutNewVegas/Records/CMNYRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/COBJRecord.cpp b/src/FalloutNewVegas/Records/COBJRecord.cpp index 529a29e..15b8893 100644 --- a/src/FalloutNewVegas/Records/COBJRecord.cpp +++ b/src/FalloutNewVegas/Records/COBJRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "COBJRecord.h" namespace FNV @@ -183,7 +183,7 @@ int32_t COBJRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" COBJ: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/COBJRecord.h b/src/FalloutNewVegas/Records/COBJRecord.h index 10a3459..e5ae351 100644 --- a/src/FalloutNewVegas/Records/COBJRecord.h +++ b/src/FalloutNewVegas/Records/COBJRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CONTRecord.cpp b/src/FalloutNewVegas/Records/CONTRecord.cpp index 2b180ac..5c0f2dc 100644 --- a/src/FalloutNewVegas/Records/CONTRecord.cpp +++ b/src/FalloutNewVegas/Records/CONTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CONTRecord.h" namespace FNV @@ -274,7 +274,7 @@ int32_t CONTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CONT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/CONTRecord.h b/src/FalloutNewVegas/Records/CONTRecord.h index 0f22dbf..fb0908e 100644 --- a/src/FalloutNewVegas/Records/CONTRecord.h +++ b/src/FalloutNewVegas/Records/CONTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CPTHRecord.cpp b/src/FalloutNewVegas/Records/CPTHRecord.cpp index 689c16e..f38f173 100644 --- a/src/FalloutNewVegas/Records/CPTHRecord.cpp +++ b/src/FalloutNewVegas/Records/CPTHRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CPTHRecord.h" namespace FNV @@ -171,7 +171,11 @@ int32_t CPTHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer SNAM.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" CPTH: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/CPTHRecord.h b/src/FalloutNewVegas/Records/CPTHRecord.h index 8c1ecca..9851836 100644 --- a/src/FalloutNewVegas/Records/CPTHRecord.h +++ b/src/FalloutNewVegas/Records/CPTHRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CREARecord.cpp b/src/FalloutNewVegas/Records/CREARecord.cpp index 1808f2d..490b838 100644 --- a/src/FalloutNewVegas/Records/CREARecord.cpp +++ b/src/FalloutNewVegas/Records/CREARecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CREARecord.h" namespace FNV @@ -2918,7 +2918,7 @@ int32_t CREARecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CREA: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/CREARecord.h b/src/FalloutNewVegas/Records/CREARecord.h index 8927e54..9ba5dec 100644 --- a/src/FalloutNewVegas/Records/CREARecord.h +++ b/src/FalloutNewVegas/Records/CREARecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CSNORecord.cpp b/src/FalloutNewVegas/Records/CSNORecord.cpp index be8f909..ce9b2fa 100644 --- a/src/FalloutNewVegas/Records/CSNORecord.cpp +++ b/src/FalloutNewVegas/Records/CSNORecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CSNORecord.h" namespace FNV @@ -249,7 +249,11 @@ int32_t CSNORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer break; // TODO: The rest of the ICO* subrecords default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" CSNO: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/CSNORecord.h b/src/FalloutNewVegas/Records/CSNORecord.h index 58fb7cc..ee70e2c 100644 --- a/src/FalloutNewVegas/Records/CSNORecord.h +++ b/src/FalloutNewVegas/Records/CSNORecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/CSTYRecord.cpp b/src/FalloutNewVegas/Records/CSTYRecord.cpp index f2dd471..5a5d2b1 100644 --- a/src/FalloutNewVegas/Records/CSTYRecord.cpp +++ b/src/FalloutNewVegas/Records/CSTYRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CSTYRecord.h" namespace FNV @@ -445,7 +445,7 @@ int32_t CSTYRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CSTY: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/CSTYRecord.h b/src/FalloutNewVegas/Records/CSTYRecord.h index 308c2bd..b94f8b6 100644 --- a/src/FalloutNewVegas/Records/CSTYRecord.h +++ b/src/FalloutNewVegas/Records/CSTYRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/DEBRRecord.cpp b/src/FalloutNewVegas/Records/DEBRRecord.cpp index 5a9898b..6a7889d 100644 --- a/src/FalloutNewVegas/Records/DEBRRecord.cpp +++ b/src/FalloutNewVegas/Records/DEBRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "DEBRRecord.h" namespace FNV @@ -87,7 +87,7 @@ bool DEBRRecord::DEBRModel::Read(unsigned char *&buffer, const uint32_t &subSize uint32_t size = (uint32_t)strlen((char *)buffer) + 1; modPath = new char[size]; - strcpy_s(modPath, size, (char *)buffer); + strncpy(modPath, (char *)buffer, size); buffer += size; flags = *(uint8_t *)buffer; @@ -202,7 +202,7 @@ DEBRRecord::DEBRModels& DEBRRecord::DEBRModels::operator = (const DEBRModels &rh { pathSize = (uint32_t)strlen(rhs.MODS[p]->modPath) + 1; MODS[p]->modPath = new char[pathSize]; - strcpy_s(MODS[p]->modPath, pathSize, rhs.MODS[p]->modPath); + strncpy(MODS[p]->modPath, rhs.MODS[p]->modPath, pathSize); } MODS[p]->flags = rhs.MODS[p]->flags; } @@ -313,7 +313,7 @@ int32_t DEBRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" DEBR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/DEBRRecord.h b/src/FalloutNewVegas/Records/DEBRRecord.h index 973e65c..f8d01fa 100644 --- a/src/FalloutNewVegas/Records/DEBRRecord.h +++ b/src/FalloutNewVegas/Records/DEBRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/DEHYRecord.cpp b/src/FalloutNewVegas/Records/DEHYRecord.cpp index 36a4c3e..0b269db 100644 --- a/src/FalloutNewVegas/Records/DEHYRecord.cpp +++ b/src/FalloutNewVegas/Records/DEHYRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "DEHYRecord.h" namespace FNV @@ -122,7 +122,11 @@ int32_t DEHYRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" DEHY: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/DEHYRecord.h b/src/FalloutNewVegas/Records/DEHYRecord.h index 6e88706..3ae678d 100644 --- a/src/FalloutNewVegas/Records/DEHYRecord.h +++ b/src/FalloutNewVegas/Records/DEHYRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/DIALRecord.cpp b/src/FalloutNewVegas/Records/DIALRecord.cpp index 90fd18e..14cef78 100644 --- a/src/FalloutNewVegas/Records/DIALRecord.cpp +++ b/src/FalloutNewVegas/Records/DIALRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "DIALRecord.h" namespace FNV @@ -358,7 +358,7 @@ int32_t DIALRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer(" DIAL: %08X - Unexpected INFC chunk\n", formID); //CBASH_CHUNK_DEBUG //printer(" Size = %i\n", subSize); - //printer(" CurPos = %04x\n\n", buffer - 6); + //printer(" CurPos = %08x\n\n", buffer - 6); //buffer += subSize; //break; } @@ -389,7 +389,7 @@ int32_t DIALRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer(" DIAL: %08X - Unexpected INFX chunk\n", formID); //CBASH_CHUNK_DEBUG //printer(" Size = %i\n", subSize); - //printer(" CurPos = %04x\n\n", buffer - 6); + //printer(" CurPos = %08x\n\n", buffer - 6); //buffer += subSize; //break; } @@ -416,7 +416,7 @@ int32_t DIALRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" DIAL: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/DIALRecord.h b/src/FalloutNewVegas/Records/DIALRecord.h index 5eaf5b3..b85841f 100644 --- a/src/FalloutNewVegas/Records/DIALRecord.h +++ b/src/FalloutNewVegas/Records/DIALRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/DOBJRecord.cpp b/src/FalloutNewVegas/Records/DOBJRecord.cpp index 6cf832d..ee82836 100644 --- a/src/FalloutNewVegas/Records/DOBJRecord.cpp +++ b/src/FalloutNewVegas/Records/DOBJRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "DOBJRecord.h" namespace FNV @@ -122,7 +122,11 @@ int32_t DOBJRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" DOBJ: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/DOBJRecord.h b/src/FalloutNewVegas/Records/DOBJRecord.h index 140a103..41a225c 100644 --- a/src/FalloutNewVegas/Records/DOBJRecord.h +++ b/src/FalloutNewVegas/Records/DOBJRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/DOORRecord.cpp b/src/FalloutNewVegas/Records/DOORRecord.cpp index 9a27ce8..1bc2ad7 100644 --- a/src/FalloutNewVegas/Records/DOORRecord.cpp +++ b/src/FalloutNewVegas/Records/DOORRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "DOORRecord.h" namespace FNV @@ -265,7 +265,7 @@ int32_t DOORRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" DOOR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/DOORRecord.h b/src/FalloutNewVegas/Records/DOORRecord.h index 2bb593b..a1dd893 100644 --- a/src/FalloutNewVegas/Records/DOORRecord.h +++ b/src/FalloutNewVegas/Records/DOORRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/ECZNRecord.cpp b/src/FalloutNewVegas/Records/ECZNRecord.cpp index ef15568..34130b2 100644 --- a/src/FalloutNewVegas/Records/ECZNRecord.cpp +++ b/src/FalloutNewVegas/Records/ECZNRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ECZNRecord.h" namespace FNV @@ -188,7 +188,11 @@ int32_t ECZNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" ECZN: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/ECZNRecord.h b/src/FalloutNewVegas/Records/ECZNRecord.h index 20a97dd..cda22dc 100644 --- a/src/FalloutNewVegas/Records/ECZNRecord.h +++ b/src/FalloutNewVegas/Records/ECZNRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/EFSHRecord.cpp b/src/FalloutNewVegas/Records/EFSHRecord.cpp index b48539b..ff79e98 100644 --- a/src/FalloutNewVegas/Records/EFSHRecord.cpp +++ b/src/FalloutNewVegas/Records/EFSHRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "EFSHRecord.h" namespace FNV @@ -394,7 +394,7 @@ int32_t EFSHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" EFSH: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/EFSHRecord.h b/src/FalloutNewVegas/Records/EFSHRecord.h index 3882208..d77b7c2 100644 --- a/src/FalloutNewVegas/Records/EFSHRecord.h +++ b/src/FalloutNewVegas/Records/EFSHRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/ENCHRecord.cpp b/src/FalloutNewVegas/Records/ENCHRecord.cpp index 08c588a..3135974 100644 --- a/src/FalloutNewVegas/Records/ENCHRecord.cpp +++ b/src/FalloutNewVegas/Records/ENCHRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ENCHRecord.h" namespace FNV @@ -233,7 +233,7 @@ int32_t ENCHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ENCH: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/ENCHRecord.h b/src/FalloutNewVegas/Records/ENCHRecord.h index bb738fe..7482be5 100644 --- a/src/FalloutNewVegas/Records/ENCHRecord.h +++ b/src/FalloutNewVegas/Records/ENCHRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/EXPLRecord.cpp b/src/FalloutNewVegas/Records/EXPLRecord.cpp index fea8f1c..b3fd379 100644 --- a/src/FalloutNewVegas/Records/EXPLRecord.cpp +++ b/src/FalloutNewVegas/Records/EXPLRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "EXPLRecord.h" namespace FNV @@ -345,7 +345,7 @@ int32_t EXPLRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" EXPL: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/EXPLRecord.h b/src/FalloutNewVegas/Records/EXPLRecord.h index c548eeb..3a9b272 100644 --- a/src/FalloutNewVegas/Records/EXPLRecord.h +++ b/src/FalloutNewVegas/Records/EXPLRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/EYESRecord.cpp b/src/FalloutNewVegas/Records/EYESRecord.cpp index 02b1e3f..b8879b1 100644 --- a/src/FalloutNewVegas/Records/EYESRecord.cpp +++ b/src/FalloutNewVegas/Records/EYESRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "EYESRecord.h" namespace FNV @@ -183,7 +183,7 @@ int32_t EYESRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" EYES: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/EYESRecord.h b/src/FalloutNewVegas/Records/EYESRecord.h index 6f2fe68..c3fb216 100644 --- a/src/FalloutNewVegas/Records/EYESRecord.h +++ b/src/FalloutNewVegas/Records/EYESRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/FACTRecord.cpp b/src/FalloutNewVegas/Records/FACTRecord.cpp index 1d5b39c..d3b4563 100644 --- a/src/FalloutNewVegas/Records/FACTRecord.cpp +++ b/src/FalloutNewVegas/Records/FACTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "FACTRecord.h" namespace FNV @@ -271,7 +271,7 @@ int32_t FACTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" FACT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -286,7 +286,6 @@ int32_t FACTRecord::Unload() EDID.Unload(); FULL.Unload(); XNAM.Unload(); - DATA.Unload(); CNAM.Unload(); RNAM.Unload(); WMI1.Unload(); diff --git a/src/FalloutNewVegas/Records/FACTRecord.h b/src/FalloutNewVegas/Records/FACTRecord.h index e498ff9..0a23c46 100644 --- a/src/FalloutNewVegas/Records/FACTRecord.h +++ b/src/FalloutNewVegas/Records/FACTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { @@ -83,7 +83,8 @@ class FACTRecord : public FNVRecord //Faction StringRecord FULL; //Name OrderedSparseArray XNAM; //Relations, not sure if record order matters ReqSubRecord DATA; //Data - SemiOptSimpleFloatSubRecord CNAM; //Unused + + SemiOptSimpleFloatSubRecord CNAM; //Unused OrderedSparseArray RNAM; //Ranks OptSimpleSubRecord WMI1; //Reputation diff --git a/src/FalloutNewVegas/Records/FLSTRecord.cpp b/src/FalloutNewVegas/Records/FLSTRecord.cpp index 6115527..d69a5d0 100644 --- a/src/FalloutNewVegas/Records/FLSTRecord.cpp +++ b/src/FalloutNewVegas/Records/FLSTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "FLSTRecord.h" namespace FNV @@ -123,7 +123,11 @@ int32_t FLSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer LNAM.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" FLST: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/FLSTRecord.h b/src/FalloutNewVegas/Records/FLSTRecord.h index 9d6108f..6716e22 100644 --- a/src/FalloutNewVegas/Records/FLSTRecord.h +++ b/src/FalloutNewVegas/Records/FLSTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/FURNRecord.cpp b/src/FalloutNewVegas/Records/FURNRecord.cpp index a9e0549..14eb09e 100644 --- a/src/FalloutNewVegas/Records/FURNRecord.cpp +++ b/src/FalloutNewVegas/Records/FURNRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "FURNRecord.h" namespace FNV @@ -545,7 +545,7 @@ int32_t FURNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" FURN: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/FURNRecord.h b/src/FalloutNewVegas/Records/FURNRecord.h index 04db7b0..4c56dc6 100644 --- a/src/FalloutNewVegas/Records/FURNRecord.h +++ b/src/FalloutNewVegas/Records/FURNRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/GLOBRecord.cpp b/src/FalloutNewVegas/Records/GLOBRecord.cpp index f5641bb..0e46931 100644 --- a/src/FalloutNewVegas/Records/GLOBRecord.cpp +++ b/src/FalloutNewVegas/Records/GLOBRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "GLOBRecord.h" namespace FNV @@ -119,7 +119,7 @@ int32_t GLOBRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" GLOB: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/GLOBRecord.h b/src/FalloutNewVegas/Records/GLOBRecord.h index 750f05b..a6f06b2 100644 --- a/src/FalloutNewVegas/Records/GLOBRecord.h +++ b/src/FalloutNewVegas/Records/GLOBRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/GMSTRecord.cpp b/src/FalloutNewVegas/Records/GMSTRecord.cpp index 387200a..b5d7cce 100644 --- a/src/FalloutNewVegas/Records/GMSTRecord.cpp +++ b/src/FalloutNewVegas/Records/GMSTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "GMSTRecord.h" namespace FNV @@ -132,7 +132,7 @@ GMSTRecord::GMSTRecord(GMSTRecord *srcRecord): case 's': vSize = (uint32_t)strlen(srcRecord->DATA.s) + 1; DATA.s = new char [vSize]; - strcpy_s(DATA.s, vSize, srcRecord->DATA.s); + strncpy(DATA.s, srcRecord->DATA.s, vSize); break; default: break; @@ -207,7 +207,7 @@ int32_t GMSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" GMST: %08X - Unknown GMST format = %c\n", formID, DATA.format); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -216,7 +216,7 @@ int32_t GMSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" GMST: Unknown subType = %04X\n", subType); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/GMSTRecord.h b/src/FalloutNewVegas/Records/GMSTRecord.h index 9618a4b..a75ea5f 100644 --- a/src/FalloutNewVegas/Records/GMSTRecord.h +++ b/src/FalloutNewVegas/Records/GMSTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/GRASRecord.cpp b/src/FalloutNewVegas/Records/GRASRecord.cpp index fae6d7e..1cc35de 100644 --- a/src/FalloutNewVegas/Records/GRASRecord.cpp +++ b/src/FalloutNewVegas/Records/GRASRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "GRASRecord.h" namespace FNV @@ -235,7 +235,7 @@ int32_t GRASRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" GRAS: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/GRASRecord.h b/src/FalloutNewVegas/Records/GRASRecord.h index a141616..7d287e0 100644 --- a/src/FalloutNewVegas/Records/GRASRecord.h +++ b/src/FalloutNewVegas/Records/GRASRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/HAIRRecord.cpp b/src/FalloutNewVegas/Records/HAIRRecord.cpp index ca5c7ee..f272277 100644 --- a/src/FalloutNewVegas/Records/HAIRRecord.cpp +++ b/src/FalloutNewVegas/Records/HAIRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "HAIRRecord.h" namespace FNV @@ -228,7 +228,7 @@ int32_t HAIRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" HAIR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/HAIRRecord.h b/src/FalloutNewVegas/Records/HAIRRecord.h index f50610a..5a19fba 100644 --- a/src/FalloutNewVegas/Records/HAIRRecord.h +++ b/src/FalloutNewVegas/Records/HAIRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/HDPTRecord.cpp b/src/FalloutNewVegas/Records/HDPTRecord.cpp index e73c6ca..807a721 100644 --- a/src/FalloutNewVegas/Records/HDPTRecord.cpp +++ b/src/FalloutNewVegas/Records/HDPTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "HDPTRecord.h" namespace FNV @@ -181,7 +181,7 @@ int32_t HDPTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" HDPT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/HDPTRecord.h b/src/FalloutNewVegas/Records/HDPTRecord.h index 0fd275a..c52bf87 100644 --- a/src/FalloutNewVegas/Records/HDPTRecord.h +++ b/src/FalloutNewVegas/Records/HDPTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/HUNGRecord.cpp b/src/FalloutNewVegas/Records/HUNGRecord.cpp index 97351f7..d8a6f0b 100644 --- a/src/FalloutNewVegas/Records/HUNGRecord.cpp +++ b/src/FalloutNewVegas/Records/HUNGRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "HUNGRecord.h" namespace FNV @@ -122,7 +122,11 @@ int32_t HUNGRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" HUNG: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/HUNGRecord.h b/src/FalloutNewVegas/Records/HUNGRecord.h index 6a2ac7a..b3531d4 100644 --- a/src/FalloutNewVegas/Records/HUNGRecord.h +++ b/src/FalloutNewVegas/Records/HUNGRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/IDLERecord.cpp b/src/FalloutNewVegas/Records/IDLERecord.cpp index b270ada..722d72a 100644 --- a/src/FalloutNewVegas/Records/IDLERecord.cpp +++ b/src/FalloutNewVegas/Records/IDLERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "IDLERecord.h" namespace FNV @@ -393,7 +393,7 @@ int32_t IDLERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" IDLE: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/IDLERecord.h b/src/FalloutNewVegas/Records/IDLERecord.h index b210e83..46635e7 100644 --- a/src/FalloutNewVegas/Records/IDLERecord.h +++ b/src/FalloutNewVegas/Records/IDLERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/IDLMRecord.cpp b/src/FalloutNewVegas/Records/IDLMRecord.cpp index 6777edb..a4c63d8 100644 --- a/src/FalloutNewVegas/Records/IDLMRecord.cpp +++ b/src/FalloutNewVegas/Records/IDLMRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "IDLMRecord.h" namespace FNV @@ -179,7 +179,7 @@ int32_t IDLMRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" IDLM: %08X - Unexpected IDLC value. Expected (0) and got (%u). IDLC = %u.\n", formID, test, IDLC.value); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); } } break; @@ -187,7 +187,7 @@ int32_t IDLMRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" IDLM: %08X - Unexpected IDLC chunk size. Expected (1 or 4) and got (%u)\n", formID, subSize); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -203,7 +203,7 @@ int32_t IDLMRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" IDLM: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/IDLMRecord.h b/src/FalloutNewVegas/Records/IDLMRecord.h index 71b8718..fd6eff7 100644 --- a/src/FalloutNewVegas/Records/IDLMRecord.h +++ b/src/FalloutNewVegas/Records/IDLMRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/IMADRecord.cpp b/src/FalloutNewVegas/Records/IMADRecord.cpp index 8d7ff01..38cf73b 100644 --- a/src/FalloutNewVegas/Records/IMADRecord.cpp +++ b/src/FalloutNewVegas/Records/IMADRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "IMADRecord.h" namespace FNV @@ -352,7 +352,11 @@ int32_t IMADRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer RDSI.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" IMAD: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/IMADRecord.h b/src/FalloutNewVegas/Records/IMADRecord.h index c2048b4..51d4ecc 100644 --- a/src/FalloutNewVegas/Records/IMADRecord.h +++ b/src/FalloutNewVegas/Records/IMADRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/IMGSRecord.cpp b/src/FalloutNewVegas/Records/IMGSRecord.cpp index c931bd3..da05844 100644 --- a/src/FalloutNewVegas/Records/IMGSRecord.cpp +++ b/src/FalloutNewVegas/Records/IMGSRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "IMGSRecord.h" namespace FNV @@ -250,7 +250,11 @@ int32_t IMGSRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DNAM.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" IMGS: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/IMGSRecord.h b/src/FalloutNewVegas/Records/IMGSRecord.h index c61688f..1d2d01f 100644 --- a/src/FalloutNewVegas/Records/IMGSRecord.h +++ b/src/FalloutNewVegas/Records/IMGSRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/IMODRecord.cpp b/src/FalloutNewVegas/Records/IMODRecord.cpp index e59e2c1..e71b09c 100644 --- a/src/FalloutNewVegas/Records/IMODRecord.cpp +++ b/src/FalloutNewVegas/Records/IMODRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "IMODRecord.h" namespace FNV @@ -219,7 +219,11 @@ int32_t IMODRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" IMOD: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/IMODRecord.h b/src/FalloutNewVegas/Records/IMODRecord.h index 2ca9627..ded5597 100644 --- a/src/FalloutNewVegas/Records/IMODRecord.h +++ b/src/FalloutNewVegas/Records/IMODRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/INFORecord.cpp b/src/FalloutNewVegas/Records/INFORecord.cpp index c4104cb..08e2c5f 100644 --- a/src/FalloutNewVegas/Records/INFORecord.cpp +++ b/src/FalloutNewVegas/Records/INFORecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "INFORecord.h" namespace FNV @@ -863,7 +863,7 @@ int32_t INFORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" INFO: %08X - Unexpected SCHR chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -880,7 +880,7 @@ int32_t INFORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" INFO: %08X - Unexpected SCDA chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -897,7 +897,7 @@ int32_t INFORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" INFO: %08X - Unexpected SCTX chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -916,7 +916,7 @@ int32_t INFORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" INFO: %08X - Unexpected SLSD chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -937,7 +937,7 @@ int32_t INFORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" INFO: %08X - Unexpected SCVR chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -956,7 +956,7 @@ int32_t INFORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" INFO: %08X - Unexpected SCRV chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -975,7 +975,7 @@ int32_t INFORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" INFO: %08X - Unexpected SCRO chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -1003,7 +1003,7 @@ int32_t INFORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/INFORecord.h b/src/FalloutNewVegas/Records/INFORecord.h index 82f3578..dcaf670 100644 --- a/src/FalloutNewVegas/Records/INFORecord.h +++ b/src/FalloutNewVegas/Records/INFORecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/INGRRecord.cpp b/src/FalloutNewVegas/Records/INGRRecord.cpp index 8fdec6d..2ec0a20 100644 --- a/src/FalloutNewVegas/Records/INGRRecord.cpp +++ b/src/FalloutNewVegas/Records/INGRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "INGRRecord.h" namespace FNV @@ -387,7 +387,7 @@ int32_t INGRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INGR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/INGRRecord.h b/src/FalloutNewVegas/Records/INGRRecord.h index 6246969..2ebaac2 100644 --- a/src/FalloutNewVegas/Records/INGRRecord.h +++ b/src/FalloutNewVegas/Records/INGRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/IPCTRecord.cpp b/src/FalloutNewVegas/Records/IPCTRecord.cpp index e7cee56..ec1eb6d 100644 --- a/src/FalloutNewVegas/Records/IPCTRecord.cpp +++ b/src/FalloutNewVegas/Records/IPCTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "IPCTRecord.h" namespace FNV @@ -301,7 +301,11 @@ int32_t IPCTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer NAM1.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" IPCT: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/IPCTRecord.h b/src/FalloutNewVegas/Records/IPCTRecord.h index da83eb4..224a99f 100644 --- a/src/FalloutNewVegas/Records/IPCTRecord.h +++ b/src/FalloutNewVegas/Records/IPCTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/IPDSRecord.cpp b/src/FalloutNewVegas/Records/IPDSRecord.cpp index d49e20c..07672a8 100644 --- a/src/FalloutNewVegas/Records/IPDSRecord.cpp +++ b/src/FalloutNewVegas/Records/IPDSRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "IPDSRecord.h" namespace FNV @@ -157,7 +157,11 @@ int32_t IPDSRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" IPDS: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/IPDSRecord.h b/src/FalloutNewVegas/Records/IPDSRecord.h index 0fd370b..2bd9310 100644 --- a/src/FalloutNewVegas/Records/IPDSRecord.h +++ b/src/FalloutNewVegas/Records/IPDSRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/KEYMRecord.cpp b/src/FalloutNewVegas/Records/KEYMRecord.cpp index c4ead5d..a49a272 100644 --- a/src/FalloutNewVegas/Records/KEYMRecord.cpp +++ b/src/FalloutNewVegas/Records/KEYMRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "KEYMRecord.h" namespace FNV @@ -223,7 +223,7 @@ int32_t KEYMRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" KEYM: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/KEYMRecord.h b/src/FalloutNewVegas/Records/KEYMRecord.h index e35330f..08b83b7 100644 --- a/src/FalloutNewVegas/Records/KEYMRecord.h +++ b/src/FalloutNewVegas/Records/KEYMRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/LANDRecord.cpp b/src/FalloutNewVegas/Records/LANDRecord.cpp index 0a89324..158533b 100644 --- a/src/FalloutNewVegas/Records/LANDRecord.cpp +++ b/src/FalloutNewVegas/Records/LANDRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LANDRecord.h" #include "CELLRecord.h" @@ -415,7 +415,7 @@ int32_t LANDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LAND: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/LANDRecord.h b/src/FalloutNewVegas/Records/LANDRecord.h index aeeaff9..d54127c 100644 --- a/src/FalloutNewVegas/Records/LANDRecord.h +++ b/src/FalloutNewVegas/Records/LANDRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/LGTMRecord.cpp b/src/FalloutNewVegas/Records/LGTMRecord.cpp index c94f7c6..70fd769 100644 --- a/src/FalloutNewVegas/Records/LGTMRecord.cpp +++ b/src/FalloutNewVegas/Records/LGTMRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LGTMRecord.h" namespace FNV @@ -119,7 +119,11 @@ int32_t LGTMRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" LGTM: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/LGTMRecord.h b/src/FalloutNewVegas/Records/LGTMRecord.h index 6fda9bc..465aab3 100644 --- a/src/FalloutNewVegas/Records/LGTMRecord.h +++ b/src/FalloutNewVegas/Records/LGTMRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/LIGHRecord.cpp b/src/FalloutNewVegas/Records/LIGHRecord.cpp index 6456376..663db90 100644 --- a/src/FalloutNewVegas/Records/LIGHRecord.cpp +++ b/src/FalloutNewVegas/Records/LIGHRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LIGHRecord.h" namespace FNV @@ -336,7 +336,7 @@ int32_t LIGHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LIGH: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/LIGHRecord.h b/src/FalloutNewVegas/Records/LIGHRecord.h index 524c425..9eb3edb 100644 --- a/src/FalloutNewVegas/Records/LIGHRecord.h +++ b/src/FalloutNewVegas/Records/LIGHRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/LSCRRecord.cpp b/src/FalloutNewVegas/Records/LSCRRecord.cpp index 3912509..dfbd509 100644 --- a/src/FalloutNewVegas/Records/LSCRRecord.cpp +++ b/src/FalloutNewVegas/Records/LSCRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LSCRRecord.h" namespace FNV @@ -174,7 +174,7 @@ int32_t LSCRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LSCR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/LSCRRecord.h b/src/FalloutNewVegas/Records/LSCRRecord.h index e356d65..734b6cd 100644 --- a/src/FalloutNewVegas/Records/LSCRRecord.h +++ b/src/FalloutNewVegas/Records/LSCRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/LSCTRecord.cpp b/src/FalloutNewVegas/Records/LSCTRecord.cpp index 45d41a1..7285c15 100644 --- a/src/FalloutNewVegas/Records/LSCTRecord.cpp +++ b/src/FalloutNewVegas/Records/LSCTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LSCTRecord.h" namespace FNV @@ -209,7 +209,11 @@ int32_t LSCTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" LSCT: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/LSCTRecord.h b/src/FalloutNewVegas/Records/LSCTRecord.h index e376e42..bfe6027 100644 --- a/src/FalloutNewVegas/Records/LSCTRecord.h +++ b/src/FalloutNewVegas/Records/LSCTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/LTEXRecord.cpp b/src/FalloutNewVegas/Records/LTEXRecord.cpp index 758234a..7b23e45 100644 --- a/src/FalloutNewVegas/Records/LTEXRecord.cpp +++ b/src/FalloutNewVegas/Records/LTEXRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LTEXRecord.h" namespace FNV @@ -503,7 +503,7 @@ int32_t LTEXRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LTEX: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/LTEXRecord.h b/src/FalloutNewVegas/Records/LTEXRecord.h index bbf83ab..d7dbf5b 100644 --- a/src/FalloutNewVegas/Records/LTEXRecord.h +++ b/src/FalloutNewVegas/Records/LTEXRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/LVLCRecord.cpp b/src/FalloutNewVegas/Records/LVLCRecord.cpp index 5031d0b..f6a5a44 100644 --- a/src/FalloutNewVegas/Records/LVLCRecord.cpp +++ b/src/FalloutNewVegas/Records/LVLCRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LVLCRecord.h" namespace FNV @@ -214,7 +214,7 @@ int32_t LVLCRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LVLC: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/LVLCRecord.h b/src/FalloutNewVegas/Records/LVLCRecord.h index 914d97b..abc836e 100644 --- a/src/FalloutNewVegas/Records/LVLCRecord.h +++ b/src/FalloutNewVegas/Records/LVLCRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/LVLIRecord.cpp b/src/FalloutNewVegas/Records/LVLIRecord.cpp index a973290..957446b 100644 --- a/src/FalloutNewVegas/Records/LVLIRecord.cpp +++ b/src/FalloutNewVegas/Records/LVLIRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LVLIRecord.h" namespace FNV @@ -193,7 +193,7 @@ int32_t LVLIRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LVLI: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/LVLIRecord.h b/src/FalloutNewVegas/Records/LVLIRecord.h index dd77942..9d5507d 100644 --- a/src/FalloutNewVegas/Records/LVLIRecord.h +++ b/src/FalloutNewVegas/Records/LVLIRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/LVLNRecord.cpp b/src/FalloutNewVegas/Records/LVLNRecord.cpp index a38bd44..127a8ba 100644 --- a/src/FalloutNewVegas/Records/LVLNRecord.cpp +++ b/src/FalloutNewVegas/Records/LVLNRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LVLNRecord.h" namespace FNV @@ -214,7 +214,7 @@ int32_t LVLNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LVLN: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/LVLNRecord.h b/src/FalloutNewVegas/Records/LVLNRecord.h index c4449e4..79a1a6f 100644 --- a/src/FalloutNewVegas/Records/LVLNRecord.h +++ b/src/FalloutNewVegas/Records/LVLNRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/MESGRecord.cpp b/src/FalloutNewVegas/Records/MESGRecord.cpp index bd83914..dea356a 100644 --- a/src/FalloutNewVegas/Records/MESGRecord.cpp +++ b/src/FalloutNewVegas/Records/MESGRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "MESGRecord.h" namespace FNV @@ -208,7 +208,11 @@ int32_t MESGRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer Buttons[Buttons.size() - 1].CTDA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" MESG: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/MESGRecord.h b/src/FalloutNewVegas/Records/MESGRecord.h index 34ab642..bffb380 100644 --- a/src/FalloutNewVegas/Records/MESGRecord.h +++ b/src/FalloutNewVegas/Records/MESGRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/MGEFRecord.cpp b/src/FalloutNewVegas/Records/MGEFRecord.cpp index 6c02fcd..9a86ccf 100644 --- a/src/FalloutNewVegas/Records/MGEFRecord.cpp +++ b/src/FalloutNewVegas/Records/MGEFRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "MGEFRecord.h" namespace FNV @@ -752,7 +752,7 @@ int32_t MGEFRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" MGEF: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/MGEFRecord.h b/src/FalloutNewVegas/Records/MGEFRecord.h index 0f60db6..27e5aed 100644 --- a/src/FalloutNewVegas/Records/MGEFRecord.h +++ b/src/FalloutNewVegas/Records/MGEFRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/MICNRecord.cpp b/src/FalloutNewVegas/Records/MICNRecord.cpp index fa693ba..2f3f3cc 100644 --- a/src/FalloutNewVegas/Records/MICNRecord.cpp +++ b/src/FalloutNewVegas/Records/MICNRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "MICNRecord.h" namespace FNV @@ -119,7 +119,7 @@ int32_t MICNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" MICN: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/MICNRecord.h b/src/FalloutNewVegas/Records/MICNRecord.h index 8d2b161..748f574 100644 --- a/src/FalloutNewVegas/Records/MICNRecord.h +++ b/src/FalloutNewVegas/Records/MICNRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/MISCRecord.cpp b/src/FalloutNewVegas/Records/MISCRecord.cpp index 7782217..5f32a43 100644 --- a/src/FalloutNewVegas/Records/MISCRecord.cpp +++ b/src/FalloutNewVegas/Records/MISCRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "MISCRecord.h" namespace FNV @@ -223,7 +223,7 @@ int32_t MISCRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" MISC: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/MISCRecord.h b/src/FalloutNewVegas/Records/MISCRecord.h index cb62f9d..980c5a3 100644 --- a/src/FalloutNewVegas/Records/MISCRecord.h +++ b/src/FalloutNewVegas/Records/MISCRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/MSETRecord.cpp b/src/FalloutNewVegas/Records/MSETRecord.cpp index 14bd78c..9acc6ed 100644 --- a/src/FalloutNewVegas/Records/MSETRecord.cpp +++ b/src/FalloutNewVegas/Records/MSETRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "MSETRecord.h" namespace FNV @@ -358,7 +358,11 @@ int32_t MSETRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize, CompressedOnDisk); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" MSET: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/MSETRecord.h b/src/FalloutNewVegas/Records/MSETRecord.h index 5c7ec77..ee3719b 100644 --- a/src/FalloutNewVegas/Records/MSETRecord.h +++ b/src/FalloutNewVegas/Records/MSETRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/MSTTRecord.cpp b/src/FalloutNewVegas/Records/MSTTRecord.cpp index 6d31ce1..34617e6 100644 --- a/src/FalloutNewVegas/Records/MSTTRecord.cpp +++ b/src/FalloutNewVegas/Records/MSTTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "MSTTRecord.h" namespace FNV @@ -197,7 +197,7 @@ int32_t MSTTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" MSTT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/MSTTRecord.h b/src/FalloutNewVegas/Records/MSTTRecord.h index 26e6117..b54fdda 100644 --- a/src/FalloutNewVegas/Records/MSTTRecord.h +++ b/src/FalloutNewVegas/Records/MSTTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/MUSCRecord.cpp b/src/FalloutNewVegas/Records/MUSCRecord.cpp index 9d0d518..1ef38d9 100644 --- a/src/FalloutNewVegas/Records/MUSCRecord.cpp +++ b/src/FalloutNewVegas/Records/MUSCRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "MUSCRecord.h" namespace FNV @@ -123,7 +123,11 @@ int32_t MUSCRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer ANAM.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" MUSC: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/MUSCRecord.h b/src/FalloutNewVegas/Records/MUSCRecord.h index fb56640..566bc75 100644 --- a/src/FalloutNewVegas/Records/MUSCRecord.h +++ b/src/FalloutNewVegas/Records/MUSCRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/NAVIRecord.cpp b/src/FalloutNewVegas/Records/NAVIRecord.cpp index bf09679..ce0d991 100644 --- a/src/FalloutNewVegas/Records/NAVIRecord.cpp +++ b/src/FalloutNewVegas/Records/NAVIRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "NAVIRecord.h" namespace FNV @@ -451,7 +451,7 @@ int32_t NAVIRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" NAVI: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/NAVIRecord.h b/src/FalloutNewVegas/Records/NAVIRecord.h index 338ce6a..d4c4e51 100644 --- a/src/FalloutNewVegas/Records/NAVIRecord.h +++ b/src/FalloutNewVegas/Records/NAVIRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/NAVMRecord.cpp b/src/FalloutNewVegas/Records/NAVMRecord.cpp index e516598..c6a6303 100644 --- a/src/FalloutNewVegas/Records/NAVMRecord.cpp +++ b/src/FalloutNewVegas/Records/NAVMRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "NAVMRecord.h" #include "CELLRecord.h" @@ -627,7 +627,7 @@ int32_t NAVMRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" NAVM: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/NAVMRecord.h b/src/FalloutNewVegas/Records/NAVMRecord.h index 1c33ef9..f392668 100644 --- a/src/FalloutNewVegas/Records/NAVMRecord.h +++ b/src/FalloutNewVegas/Records/NAVMRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/NOTERecord.cpp b/src/FalloutNewVegas/Records/NOTERecord.cpp index 9ab60a2..3a502d6 100644 --- a/src/FalloutNewVegas/Records/NOTERecord.cpp +++ b/src/FalloutNewVegas/Records/NOTERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "NOTERecord.h" namespace FNV @@ -255,7 +255,7 @@ int32_t NOTERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" NOTE: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/NOTERecord.h b/src/FalloutNewVegas/Records/NOTERecord.h index b2b4687..640a6f9 100644 --- a/src/FalloutNewVegas/Records/NOTERecord.h +++ b/src/FalloutNewVegas/Records/NOTERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/NPC_Record.cpp b/src/FalloutNewVegas/Records/NPC_Record.cpp index 86ec678..db169ac 100644 --- a/src/FalloutNewVegas/Records/NPC_Record.cpp +++ b/src/FalloutNewVegas/Records/NPC_Record.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "NPC_Record.h" namespace FNV @@ -1340,7 +1340,7 @@ int32_t NPC_Record::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" NPC_: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/NPC_Record.h b/src/FalloutNewVegas/Records/NPC_Record.h index 2f4de7f..fd5fde1 100644 --- a/src/FalloutNewVegas/Records/NPC_Record.h +++ b/src/FalloutNewVegas/Records/NPC_Record.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/PACKRecord.cpp b/src/FalloutNewVegas/Records/PACKRecord.cpp index bcf4ea8..bcff3f4 100644 --- a/src/FalloutNewVegas/Records/PACKRecord.cpp +++ b/src/FalloutNewVegas/Records/PACKRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "PACKRecord.h" namespace FNV @@ -1998,7 +1998,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer // printer(" INFO: %08X - Unexpected IDLC value. Expected (0) and got (%u). IDLC = %u.\n", formID, test, IDLC.value); // CBASH_CHUNK_DEBUG // printer(" Size = %i\n", subSize); - // printer(" CurPos = %04x\n\n", buffer - 6); + // printer(" CurPos = %08x\n\n", buffer - 6); // } // } // break; @@ -2006,7 +2006,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer // printer(" INFO: %08X - Unexpected IDLC chunk size. Expected (1 or 4) and got (%u)\n", formID, subSize); // CBASH_CHUNK_DEBUG // printer(" Size = %i\n", subSize); - // printer(" CurPos = %04x\n\n", buffer - 6); + // printer(" CurPos = %08x\n\n", buffer - 6); // buffer += subSize; // break; // } @@ -2057,7 +2057,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected INAM chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -2078,7 +2078,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected SCHR chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -2099,7 +2099,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected SCDA chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -2120,7 +2120,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected SCTX chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -2144,7 +2144,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected SLSD chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -2171,7 +2171,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected SCVR chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -2195,7 +2195,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected SCRV chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -2219,7 +2219,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected SCRO chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -2240,7 +2240,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected TNAM chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -2261,7 +2261,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected PKED chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; } break; @@ -2272,7 +2272,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected PUID chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; } break; @@ -2283,7 +2283,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unexpected PKAM chunk\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; } break; @@ -2292,7 +2292,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" PACK: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/PACKRecord.h b/src/FalloutNewVegas/Records/PACKRecord.h index e12fe8d..c6c02d6 100644 --- a/src/FalloutNewVegas/Records/PACKRecord.h +++ b/src/FalloutNewVegas/Records/PACKRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/PBEARecord.cpp b/src/FalloutNewVegas/Records/PBEARecord.cpp index c9f4551..cf7061d 100644 --- a/src/FalloutNewVegas/Records/PBEARecord.cpp +++ b/src/FalloutNewVegas/Records/PBEARecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "PBEARecord.h" #include "CELLRecord.h" @@ -323,7 +323,7 @@ int32_t PBEARecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" PBEA: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/PBEARecord.h b/src/FalloutNewVegas/Records/PBEARecord.h index 39a7994..6d6c49b 100644 --- a/src/FalloutNewVegas/Records/PBEARecord.h +++ b/src/FalloutNewVegas/Records/PBEARecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/PCBERecord.cpp b/src/FalloutNewVegas/Records/PCBERecord.cpp index a260583..d6824c6 100644 --- a/src/FalloutNewVegas/Records/PCBERecord.cpp +++ b/src/FalloutNewVegas/Records/PCBERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "PCBERecord.h" #include "CELLRecord.h" @@ -323,7 +323,7 @@ int32_t PCBERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" PCBE: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/PCBERecord.h b/src/FalloutNewVegas/Records/PCBERecord.h index 1e20a05..24d44f0 100644 --- a/src/FalloutNewVegas/Records/PCBERecord.h +++ b/src/FalloutNewVegas/Records/PCBERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/PERKRecord.cpp b/src/FalloutNewVegas/Records/PERKRecord.cpp index 405d2aa..bbb6b0d 100644 --- a/src/FalloutNewVegas/Records/PERKRecord.cpp +++ b/src/FalloutNewVegas/Records/PERKRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "PERKRecord.h" namespace FNV @@ -468,7 +468,11 @@ int32_t PERKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //PRKF.Read(buffer, subSize); //FILL IN MANUALLY break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" PERK: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/PERKRecord.h b/src/FalloutNewVegas/Records/PERKRecord.h index f2853b0..6b148a4 100644 --- a/src/FalloutNewVegas/Records/PERKRecord.h +++ b/src/FalloutNewVegas/Records/PERKRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/PFLARecord.cpp b/src/FalloutNewVegas/Records/PFLARecord.cpp index e521592..1da409d 100644 --- a/src/FalloutNewVegas/Records/PFLARecord.cpp +++ b/src/FalloutNewVegas/Records/PFLARecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "PFLARecord.h" #include "CELLRecord.h" @@ -323,7 +323,7 @@ int32_t PFLARecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" PFLA: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/PFLARecord.h b/src/FalloutNewVegas/Records/PFLARecord.h index aec2dad..e136344 100644 --- a/src/FalloutNewVegas/Records/PFLARecord.h +++ b/src/FalloutNewVegas/Records/PFLARecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/PGRERecord.cpp b/src/FalloutNewVegas/Records/PGRERecord.cpp index ce72a40..3b3037f 100644 --- a/src/FalloutNewVegas/Records/PGRERecord.cpp +++ b/src/FalloutNewVegas/Records/PGRERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "PGRERecord.h" #include "CELLRecord.h" @@ -323,7 +323,7 @@ int32_t PGRERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" PGRE: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/PGRERecord.h b/src/FalloutNewVegas/Records/PGRERecord.h index 973ed5d..093df66 100644 --- a/src/FalloutNewVegas/Records/PGRERecord.h +++ b/src/FalloutNewVegas/Records/PGRERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/PMISRecord.cpp b/src/FalloutNewVegas/Records/PMISRecord.cpp index 24d77fc..2c754c4 100644 --- a/src/FalloutNewVegas/Records/PMISRecord.cpp +++ b/src/FalloutNewVegas/Records/PMISRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "PMISRecord.h" #include "CELLRecord.h" @@ -323,7 +323,7 @@ int32_t PMISRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" PMIS: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/PMISRecord.h b/src/FalloutNewVegas/Records/PMISRecord.h index f0e7b51..99318ce 100644 --- a/src/FalloutNewVegas/Records/PMISRecord.h +++ b/src/FalloutNewVegas/Records/PMISRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/PROJRecord.cpp b/src/FalloutNewVegas/Records/PROJRecord.cpp index 7a654df..020ec5b 100644 --- a/src/FalloutNewVegas/Records/PROJRecord.cpp +++ b/src/FalloutNewVegas/Records/PROJRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "PROJRecord.h" namespace FNV @@ -491,7 +491,7 @@ int32_t PROJRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" PROJ: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/PROJRecord.h b/src/FalloutNewVegas/Records/PROJRecord.h index 25135b7..10fdb9f 100644 --- a/src/FalloutNewVegas/Records/PROJRecord.h +++ b/src/FalloutNewVegas/Records/PROJRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/PWATRecord.cpp b/src/FalloutNewVegas/Records/PWATRecord.cpp index c0fc895..d5b036a 100644 --- a/src/FalloutNewVegas/Records/PWATRecord.cpp +++ b/src/FalloutNewVegas/Records/PWATRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "PWATRecord.h" namespace FNV @@ -368,7 +368,7 @@ int32_t PWATRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" PWAT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/PWATRecord.h b/src/FalloutNewVegas/Records/PWATRecord.h index 767931d..b4f33cd 100644 --- a/src/FalloutNewVegas/Records/PWATRecord.h +++ b/src/FalloutNewVegas/Records/PWATRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/QUSTRecord.cpp b/src/FalloutNewVegas/Records/QUSTRecord.cpp index e6ade4f..9a1dceb 100644 --- a/src/FalloutNewVegas/Records/QUSTRecord.cpp +++ b/src/FalloutNewVegas/Records/QUSTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "QUSTRecord.h" namespace FNV @@ -486,7 +486,7 @@ int32_t QUSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" QUST: %08X - Unexpected CTDA chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -591,7 +591,7 @@ int32_t QUSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" QUST: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/QUSTRecord.h b/src/FalloutNewVegas/Records/QUSTRecord.h index 08a1803..e4bae79 100644 --- a/src/FalloutNewVegas/Records/QUSTRecord.h +++ b/src/FalloutNewVegas/Records/QUSTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/RACERecord.cpp b/src/FalloutNewVegas/Records/RACERecord.cpp index fc66015..3d1ede5 100644 --- a/src/FalloutNewVegas/Records/RACERecord.cpp +++ b/src/FalloutNewVegas/Records/RACERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "RACERecord.h" namespace FNV @@ -584,7 +584,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected MODL\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -697,7 +697,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected MODB\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -810,7 +810,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected MODT\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -923,7 +923,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected MODS\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -1036,7 +1036,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected MODD\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -1125,7 +1125,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected ICON\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -1214,7 +1214,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected MICO\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -1240,7 +1240,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected FGGS\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -1260,7 +1260,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected FGGA\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -1280,7 +1280,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected FGTS\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -1300,7 +1300,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected SNAM\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -1310,7 +1310,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/RACERecord.h b/src/FalloutNewVegas/Records/RACERecord.h index b1c85e4..abf0650 100644 --- a/src/FalloutNewVegas/Records/RACERecord.h +++ b/src/FalloutNewVegas/Records/RACERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/RADSRecord.cpp b/src/FalloutNewVegas/Records/RADSRecord.cpp index 20b78a1..c96d772 100644 --- a/src/FalloutNewVegas/Records/RADSRecord.cpp +++ b/src/FalloutNewVegas/Records/RADSRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "RADSRecord.h" namespace FNV @@ -122,7 +122,11 @@ int32_t RADSRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" RADS: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/RADSRecord.h b/src/FalloutNewVegas/Records/RADSRecord.h index dc5e5f0..6e6d6db 100644 --- a/src/FalloutNewVegas/Records/RADSRecord.h +++ b/src/FalloutNewVegas/Records/RADSRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/RCCTRecord.cpp b/src/FalloutNewVegas/Records/RCCTRecord.cpp index dcf4432..d5b9105 100644 --- a/src/FalloutNewVegas/Records/RCCTRecord.cpp +++ b/src/FalloutNewVegas/Records/RCCTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "RCCTRecord.h" namespace FNV @@ -147,7 +147,11 @@ int32_t RCCTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" RCCT: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/RCCTRecord.h b/src/FalloutNewVegas/Records/RCCTRecord.h index 0f3b9cc..3663a5b 100644 --- a/src/FalloutNewVegas/Records/RCCTRecord.h +++ b/src/FalloutNewVegas/Records/RCCTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/RCPERecord.cpp b/src/FalloutNewVegas/Records/RCPERecord.cpp index f7a5595..5819a4b 100644 --- a/src/FalloutNewVegas/Records/RCPERecord.cpp +++ b/src/FalloutNewVegas/Records/RCPERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "RCPERecord.h" namespace FNV @@ -148,7 +148,11 @@ int32_t RCPERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //RCOD.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" RCPE: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/RCPERecord.h b/src/FalloutNewVegas/Records/RCPERecord.h index 4d419ab..872a967 100644 --- a/src/FalloutNewVegas/Records/RCPERecord.h +++ b/src/FalloutNewVegas/Records/RCPERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/REFRRecord.cpp b/src/FalloutNewVegas/Records/REFRRecord.cpp index 6a74a33..3671e74 100644 --- a/src/FalloutNewVegas/Records/REFRRecord.cpp +++ b/src/FalloutNewVegas/Records/REFRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "REFRRecord.h" #include "CELLRecord.h" @@ -1242,7 +1242,7 @@ int32_t REFRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" REFR: %08X - Unexpected TNAM chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -1345,7 +1345,7 @@ int32_t REFRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" REFR: %08X - Unexpected FULL chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -1450,7 +1450,7 @@ int32_t REFRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" REFR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/REFRRecord.h b/src/FalloutNewVegas/Records/REFRRecord.h index 8d59347..29b00af 100644 --- a/src/FalloutNewVegas/Records/REFRRecord.h +++ b/src/FalloutNewVegas/Records/REFRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/REGNRecord.cpp b/src/FalloutNewVegas/Records/REGNRecord.cpp index 5d10818..505c80b 100644 --- a/src/FalloutNewVegas/Records/REGNRecord.cpp +++ b/src/FalloutNewVegas/Records/REGNRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "REGNRecord.h" #include @@ -790,7 +790,7 @@ int32_t REGNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" REGN: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/REGNRecord.h b/src/FalloutNewVegas/Records/REGNRecord.h index 64a864d..9d895d8 100644 --- a/src/FalloutNewVegas/Records/REGNRecord.h +++ b/src/FalloutNewVegas/Records/REGNRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/REPURecord.cpp b/src/FalloutNewVegas/Records/REPURecord.cpp index 3fa1210..17157e3 100644 --- a/src/FalloutNewVegas/Records/REPURecord.cpp +++ b/src/FalloutNewVegas/Records/REPURecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "REPURecord.h" namespace FNV @@ -131,7 +131,11 @@ int32_t REPURecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" REPU: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/REPURecord.h b/src/FalloutNewVegas/Records/REPURecord.h index 3bd23dc..7a5c942 100644 --- a/src/FalloutNewVegas/Records/REPURecord.h +++ b/src/FalloutNewVegas/Records/REPURecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/RGDLRecord.cpp b/src/FalloutNewVegas/Records/RGDLRecord.cpp index fb2fed2..d769334 100644 --- a/src/FalloutNewVegas/Records/RGDLRecord.cpp +++ b/src/FalloutNewVegas/Records/RGDLRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "RGDLRecord.h" namespace FNV @@ -401,7 +401,11 @@ int32_t RGDLRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer ANAM.Read(buffer, subSize, CompressedOnDisk); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" RGDL: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/RGDLRecord.h b/src/FalloutNewVegas/Records/RGDLRecord.h index 9b9719c..6f84a80 100644 --- a/src/FalloutNewVegas/Records/RGDLRecord.h +++ b/src/FalloutNewVegas/Records/RGDLRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/SCOLRecord.cpp b/src/FalloutNewVegas/Records/SCOLRecord.cpp index 9d50106..21022fd 100644 --- a/src/FalloutNewVegas/Records/SCOLRecord.cpp +++ b/src/FalloutNewVegas/Records/SCOLRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SCOLRecord.h" namespace FNV @@ -211,7 +211,7 @@ int32_t SCOLRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" SCOL: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/SCOLRecord.h b/src/FalloutNewVegas/Records/SCOLRecord.h index 34515c3..849c1dc 100644 --- a/src/FalloutNewVegas/Records/SCOLRecord.h +++ b/src/FalloutNewVegas/Records/SCOLRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/SCPTRecord.cpp b/src/FalloutNewVegas/Records/SCPTRecord.cpp index 6d02652..bce157c 100644 --- a/src/FalloutNewVegas/Records/SCPTRecord.cpp +++ b/src/FalloutNewVegas/Records/SCPTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SCPTRecord.h" namespace FNV @@ -214,7 +214,7 @@ int32_t SCPTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" SCPT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/SCPTRecord.h b/src/FalloutNewVegas/Records/SCPTRecord.h index eccda2a..a358d13 100644 --- a/src/FalloutNewVegas/Records/SCPTRecord.h +++ b/src/FalloutNewVegas/Records/SCPTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/SLPDRecord.cpp b/src/FalloutNewVegas/Records/SLPDRecord.cpp index 1d4f559..b0d589a 100644 --- a/src/FalloutNewVegas/Records/SLPDRecord.cpp +++ b/src/FalloutNewVegas/Records/SLPDRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SLPDRecord.h" namespace FNV @@ -122,7 +122,11 @@ int32_t SLPDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" SLPD: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/SLPDRecord.h b/src/FalloutNewVegas/Records/SLPDRecord.h index 3b657ec..e625fa4 100644 --- a/src/FalloutNewVegas/Records/SLPDRecord.h +++ b/src/FalloutNewVegas/Records/SLPDRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/SOUNRecord.cpp b/src/FalloutNewVegas/Records/SOUNRecord.cpp index 047fcd3..e3908df 100644 --- a/src/FalloutNewVegas/Records/SOUNRecord.cpp +++ b/src/FalloutNewVegas/Records/SOUNRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SOUNRecord.h" namespace FNV @@ -329,7 +329,7 @@ int32_t SOUNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" SOUN: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/SOUNRecord.h b/src/FalloutNewVegas/Records/SOUNRecord.h index 9a8dfc2..f0b8276 100644 --- a/src/FalloutNewVegas/Records/SOUNRecord.h +++ b/src/FalloutNewVegas/Records/SOUNRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/SPELRecord.cpp b/src/FalloutNewVegas/Records/SPELRecord.cpp index 9365803..baa04d9 100644 --- a/src/FalloutNewVegas/Records/SPELRecord.cpp +++ b/src/FalloutNewVegas/Records/SPELRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SPELRecord.h" namespace FNV @@ -393,7 +393,7 @@ int32_t SPELRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" SPEL: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/SPELRecord.h b/src/FalloutNewVegas/Records/SPELRecord.h index 16b24fc..f92ce71 100644 --- a/src/FalloutNewVegas/Records/SPELRecord.h +++ b/src/FalloutNewVegas/Records/SPELRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/STATRecord.cpp b/src/FalloutNewVegas/Records/STATRecord.cpp index 13e611d..a48e5ce 100644 --- a/src/FalloutNewVegas/Records/STATRecord.cpp +++ b/src/FalloutNewVegas/Records/STATRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "STATRecord.h" namespace FNV @@ -304,7 +304,7 @@ int32_t STATRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" STAT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/STATRecord.h b/src/FalloutNewVegas/Records/STATRecord.h index d85a10c..4c2cde9 100644 --- a/src/FalloutNewVegas/Records/STATRecord.h +++ b/src/FalloutNewVegas/Records/STATRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/TACTRecord.cpp b/src/FalloutNewVegas/Records/TACTRecord.cpp index 6e5d7d6..0474f55 100644 --- a/src/FalloutNewVegas/Records/TACTRecord.cpp +++ b/src/FalloutNewVegas/Records/TACTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "TACTRecord.h" namespace FNV @@ -212,7 +212,7 @@ int32_t TACTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" TACT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/TACTRecord.h b/src/FalloutNewVegas/Records/TACTRecord.h index 77ac31e..0c8fc8b 100644 --- a/src/FalloutNewVegas/Records/TACTRecord.h +++ b/src/FalloutNewVegas/Records/TACTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/TERMRecord.cpp b/src/FalloutNewVegas/Records/TERMRecord.cpp index 7c7d2a1..75687f4 100644 --- a/src/FalloutNewVegas/Records/TERMRecord.cpp +++ b/src/FalloutNewVegas/Records/TERMRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "TERMRecord.h" namespace FNV @@ -681,7 +681,7 @@ int32_t TERMRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" TERM: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/TERMRecord.h b/src/FalloutNewVegas/Records/TERMRecord.h index bcc38f6..4f4b223 100644 --- a/src/FalloutNewVegas/Records/TERMRecord.h +++ b/src/FalloutNewVegas/Records/TERMRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/TREERecord.cpp b/src/FalloutNewVegas/Records/TREERecord.cpp index 88101bf..a88278a 100644 --- a/src/FalloutNewVegas/Records/TREERecord.cpp +++ b/src/FalloutNewVegas/Records/TREERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "TREERecord.h" namespace FNV @@ -228,7 +228,7 @@ int32_t TREERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" TREE: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/TREERecord.h b/src/FalloutNewVegas/Records/TREERecord.h index cc50e31..5aee13d 100644 --- a/src/FalloutNewVegas/Records/TREERecord.h +++ b/src/FalloutNewVegas/Records/TREERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/TXSTRecord.cpp b/src/FalloutNewVegas/Records/TXSTRecord.cpp index e96766f..9256588 100644 --- a/src/FalloutNewVegas/Records/TXSTRecord.cpp +++ b/src/FalloutNewVegas/Records/TXSTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "TXSTRecord.h" namespace FNV @@ -218,7 +218,7 @@ int32_t TXSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" TXST: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/TXSTRecord.h b/src/FalloutNewVegas/Records/TXSTRecord.h index ad9d43a..e7026ac 100644 --- a/src/FalloutNewVegas/Records/TXSTRecord.h +++ b/src/FalloutNewVegas/Records/TXSTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/VTYPRecord.cpp b/src/FalloutNewVegas/Records/VTYPRecord.cpp index 684ffe4..636a776 100644 --- a/src/FalloutNewVegas/Records/VTYPRecord.cpp +++ b/src/FalloutNewVegas/Records/VTYPRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "VTYPRecord.h" namespace FNV @@ -155,7 +155,11 @@ int32_t VTYPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DNAM.Read(buffer, subSize); break; default: - UnrecognizedSubRecord(formID, subType, subSize, buffer, end_buffer); + //printf("FileName = %s\n", FileName); + printf(" VTYP: %08X - Unknown subType = %04x\n", formID, subType); + printf(" Size = %i\n", subSize); + printf(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; break; } }; diff --git a/src/FalloutNewVegas/Records/VTYPRecord.h b/src/FalloutNewVegas/Records/VTYPRecord.h index decdd01..62362b8 100644 --- a/src/FalloutNewVegas/Records/VTYPRecord.h +++ b/src/FalloutNewVegas/Records/VTYPRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/WATRRecord.cpp b/src/FalloutNewVegas/Records/WATRRecord.cpp index 04ed0f2..9d68004 100644 --- a/src/FalloutNewVegas/Records/WATRRecord.cpp +++ b/src/FalloutNewVegas/Records/WATRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "WATRRecord.h" namespace FNV @@ -351,7 +351,7 @@ int32_t WATRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" WATR: %08X - Unexpected DATA size\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -367,7 +367,7 @@ int32_t WATRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" WATR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/WATRRecord.h b/src/FalloutNewVegas/Records/WATRRecord.h index 0f58a07..bef95eb 100644 --- a/src/FalloutNewVegas/Records/WATRRecord.h +++ b/src/FalloutNewVegas/Records/WATRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/WEAPRecord.cpp b/src/FalloutNewVegas/Records/WEAPRecord.cpp index 3cca29c..5cb14c5 100644 --- a/src/FalloutNewVegas/Records/WEAPRecord.cpp +++ b/src/FalloutNewVegas/Records/WEAPRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "WEAPRecord.h" namespace FNV @@ -2470,7 +2470,7 @@ int32_t WEAPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" WEAP: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/WEAPRecord.h b/src/FalloutNewVegas/Records/WEAPRecord.h index ddfd128..f7da0c1 100644 --- a/src/FalloutNewVegas/Records/WEAPRecord.h +++ b/src/FalloutNewVegas/Records/WEAPRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/WRLDRecord.cpp b/src/FalloutNewVegas/Records/WRLDRecord.cpp index 9db60e1..5a0f5ac 100644 --- a/src/FalloutNewVegas/Records/WRLDRecord.cpp +++ b/src/FalloutNewVegas/Records/WRLDRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "WRLDRecord.h" namespace FNV @@ -413,7 +413,7 @@ int32_t WRLDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" WRLD: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/WRLDRecord.h b/src/FalloutNewVegas/Records/WRLDRecord.h index 59833fc..b2bc1dc 100644 --- a/src/FalloutNewVegas/Records/WRLDRecord.h +++ b/src/FalloutNewVegas/Records/WRLDRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/WTHRRecord.cpp b/src/FalloutNewVegas/Records/WTHRRecord.cpp index 1ac9757..ae96c9d 100644 --- a/src/FalloutNewVegas/Records/WTHRRecord.cpp +++ b/src/FalloutNewVegas/Records/WTHRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "WTHRRecord.h" namespace FNV @@ -656,7 +656,7 @@ int32_t WTHRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" WTHR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/FalloutNewVegas/Records/WTHRRecord.h b/src/FalloutNewVegas/Records/WTHRRecord.h index d5afecd..0b62699 100644 --- a/src/FalloutNewVegas/Records/WTHRRecord.h +++ b/src/FalloutNewVegas/Records/WTHRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace FNV { diff --git a/src/FalloutNewVegas/Records/strip.py b/src/FalloutNewVegas/Records/strip.py new file mode 100644 index 0000000..821eac3 --- /dev/null +++ b/src/FalloutNewVegas/Records/strip.py @@ -0,0 +1,114 @@ +import os, glob + +def maxer(lines): + nums = [-1] + for line in lines: +## if line.lstrip()[:2] == '//': +## continue + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + nums.append(pos-i+2) + return max(nums) + +def spacer(line, maxsize): + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + g = 1 + while line[pos+g] == ' ': + g += 1 + line = line[:pos-i+1] + ' = ' + line[pos+g:] + pos = line.find('=') + return line[:pos] + ' ' * (maxsize - pos) + line[pos:] + return line +for infile in glob.glob('*.cpp~'): + os.remove(infile) +for infile in glob.glob('*.h~'): + os.remove(infile) +for infile in glob.glob('*.bak'): + os.remove(infile) +for infile in glob.glob('*.cpp'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() + +for infile in glob.glob('*.h'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() \ No newline at end of file diff --git a/src/FalloutNewVegas/strip.py b/src/FalloutNewVegas/strip.py new file mode 100644 index 0000000..821eac3 --- /dev/null +++ b/src/FalloutNewVegas/strip.py @@ -0,0 +1,114 @@ +import os, glob + +def maxer(lines): + nums = [-1] + for line in lines: +## if line.lstrip()[:2] == '//': +## continue + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + nums.append(pos-i+2) + return max(nums) + +def spacer(line, maxsize): + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + g = 1 + while line[pos+g] == ' ': + g += 1 + line = line[:pos-i+1] + ' = ' + line[pos+g:] + pos = line.find('=') + return line[:pos] + ' ' * (maxsize - pos) + line[pos:] + return line +for infile in glob.glob('*.cpp~'): + os.remove(infile) +for infile in glob.glob('*.h~'): + os.remove(infile) +for infile in glob.glob('*.bak'): + os.remove(infile) +for infile in glob.glob('*.cpp'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() + +for infile in glob.glob('*.h'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() \ No newline at end of file diff --git a/src/GRUPRecord.h b/src/GRUPRecord.h index bc415fc..17809c0 100644 --- a/src/GRUPRecord.h +++ b/src/GRUPRecord.h @@ -115,10 +115,9 @@ class GRUPRecords { //Allocates many records at once in a contiguous space //Allocate memory - unsigned char *buffer = (unsigned char *)malloc(sizeof(T) * (uint32_t)records.size()); + unsigned char *buffer = (unsigned char*)pool.add_buffer(sizeof(T) * (uint32_t)records.size()); if(buffer == 0) throw std::bad_alloc(); - pool.add_buffer(buffer); //Construct the records for(uint32_t x = 0; x < records.size();++x) @@ -266,10 +265,9 @@ class FNVGRUPRecords { //Allocates many records at once in a contiguous space //Allocate memory - unsigned char *buffer = (unsigned char *)malloc(sizeof(T) * (uint32_t)records.size()); + unsigned char *buffer = (unsigned char *)pool.add_buffer(sizeof(T) * (uint32_t)records.size()); if(buffer == 0) throw std::bad_alloc(); - pool.add_buffer(buffer); //Construct the records for(uint32_t x = 0; x < records.size();++x) @@ -423,10 +421,9 @@ class TES5GRUPRecords { //Allocates many records at once in a contiguous space //Allocate memory - unsigned char *buffer = (unsigned char *)malloc(sizeof(T) * (uint32_t)records.size()); + unsigned char *buffer = (unsigned char *)pool.add_buffer(sizeof(T) * (uint32_t)records.size()); if (buffer == 0) throw std::bad_alloc(); - pool.add_buffer(buffer); //Construct the records for(uint32_t x = 0; x < records.size();++x) diff --git a/src/GenericChunks.cpp b/src/GenericChunks.cpp index 19a37fa..0b83d7f 100644 --- a/src/GenericChunks.cpp +++ b/src/GenericChunks.cpp @@ -1937,7 +1937,10 @@ GENMNAM::GENMNAM(): NWCellX(0), NWCellY(0), SECellX(0), - SECellY(0) + SECellY(0), + minHeight(50000.0f), + maxHeight(80000.0f), + initialPitch(50.0f) { // } @@ -2600,7 +2603,7 @@ FNVAlternateTextures& FNVAlternateTextures::operator = (const FNVAlternateTextur { nameSize = (uint32_t)strlen(rhs.MODS[p]->name) + 1; MODS[p]->name = new char[nameSize]; - strcpy_s(MODS[p]->name, nameSize, rhs.MODS[p]->name); + strncpy(MODS[p]->name, rhs.MODS[p]->name, nameSize); } MODS[p]->texture = rhs.MODS[p]->texture; MODS[p]->index = rhs.MODS[p]->index; @@ -4349,3 +4352,44 @@ bool GENIMPF::operator !=(const GENIMPF &other) const { return !(*this == other); } + +TES5ACBS::TES5ACBS() : + flags(0), + magickaOffset(0), + staminaOffset(0), + levelUnion(0), + calcMinLevel(0), + calcMaxLevel(0), + speedMultiplier(0), + dispositionBase_unused(0), + templateFlags(0), + healthOffset(0), + bleedoutOverride(0) +{ + // +} + +TES5ACBS::~TES5ACBS() +{ + // +} + +bool TES5ACBS::operator ==(const TES5ACBS &other) const +{ + return (flags == other.flags && + magickaOffset == other.magickaOffset && + staminaOffset == other.staminaOffset && + levelUnion == other.levelUnion && + calcMinLevel == other.calcMinLevel && + calcMaxLevel == other.calcMaxLevel && + speedMultiplier == other.speedMultiplier && + dispositionBase_unused == other.dispositionBase_unused && + templateFlags == other.templateFlags && + healthOffset == other.healthOffset && + bleedoutOverride == other.bleedoutOverride); +} + +bool TES5ACBS::operator !=(const TES5ACBS &other) const +{ + return !(*this == other); +} \ No newline at end of file diff --git a/src/GenericChunks.h b/src/GenericChunks.h index 04e8b64..4394173 100644 --- a/src/GenericChunks.h +++ b/src/GenericChunks.h @@ -50,8 +50,8 @@ class FormIDOp FormIDOp(); virtual ~FormIDOp(); - virtual bool Accept(uint32_t &curFormID) abstract {}; - virtual bool AcceptMGEF(uint32_t &curMgefCode) abstract {}; + virtual bool Accept(uint32_t &curFormID) = 0; + virtual bool AcceptMGEF(uint32_t &curMgefCode) = 0; uint32_t GetCount(); void ResetCount(); @@ -753,6 +753,10 @@ struct GENMNAM int32_t dimX, dimY; int16_t NWCellX, NWCellY, SECellX, SECellY; + float minHeight; + float maxHeight; + float initialPitch; + GENMNAM(); ~GENMNAM(); @@ -1797,3 +1801,25 @@ struct GENIMPF bool operator ==(const GENIMPF &other) const; bool operator !=(const GENIMPF &other) const; }; + + +struct TES5ACBS +{ + uint32_t flags; + uint16_t magickaOffset; + uint16_t staminaOffset; + int16_t levelUnion; + uint16_t calcMinLevel; + uint16_t calcMaxLevel; + uint16_t speedMultiplier; + int16_t dispositionBase_unused; + uint16_t templateFlags; + uint16_t healthOffset; + uint16_t bleedoutOverride; + + TES5ACBS(); + ~TES5ACBS(); + + bool operator ==(const TES5ACBS &other) const; + bool operator !=(const TES5ACBS &other) const; +}; \ No newline at end of file diff --git a/src/GenericRecord.cpp b/src/GenericRecord.cpp index 585d565..2f32480 100644 --- a/src/GenericRecord.cpp +++ b/src/GenericRecord.cpp @@ -197,7 +197,7 @@ void Record::IsExtendedWinning(bool value) uint32_t Record::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) { - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * Record::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -236,29 +236,35 @@ bool Record::VisitFormIDs(FormIDOp &op) return false; } -bool Record::Read() - { - if(IsLoaded() || IsChanged()) - return false; - uint32_t recSize = *(uint32_t*)&recData[-16]; - //Check against the original record flags to see if it is compressed since the current flags may have changed - if ((*(uint32_t*)&recData[-12] & fIsCompressed) != 0) - { - unsigned char localBuffer[BUFFERSIZE]; - uint32_t expandedRecSize = *(uint32_t*)recData; - unsigned char *buffer = (expandedRecSize >= BUFFERSIZE) ? new unsigned char[expandedRecSize] : &localBuffer[0]; - uncompress(buffer, (uLongf*)&expandedRecSize, &recData[4], recSize - 4); - ParseRecord(buffer, buffer + expandedRecSize, true); - if(buffer != &localBuffer[0]) - delete [] buffer; - } - else - ParseRecord(recData, recData + recSize); +bool Record::ReadRecord(int32_t sizeDistance) +{ + if (IsLoaded() || IsChanged()) + return false; + uint32_t recSize = *(uint32_t*)&recData[-sizeDistance]; - IsLoaded(true); - return true; - } + //Check against the original record flags to see if it is compressed since the current flags may have changed + if ((*(uint32_t*)&recData[-sizeDistance + 4] & fIsCompressed) != 0) + { + unsigned char localBuffer[BUFFERSIZE]; + uLongf expandedRecSize = *(uint32_t*)recData; + unsigned char *buffer = (expandedRecSize >= BUFFERSIZE) ? new unsigned char[expandedRecSize] : &localBuffer[0]; + uncompress(buffer, (uLongf*)&expandedRecSize, &recData[4], recSize - 4); + ParseRecord(buffer, buffer + expandedRecSize, true); + if (buffer != &localBuffer[0]) + delete[] buffer; + } + else + ParseRecord(recData, recData + recSize); + + IsLoaded(true); + return true; +} + +bool Record::Read() +{ + return ReadRecord(16); +} uint32_t Record::Write(FileWriter &writer, const bool &bMastersChanged, FormIDResolver &expander, FormIDResolver &collapser, std::vector &Expanders) { @@ -615,28 +621,9 @@ FNVRecord::~FNVRecord() } bool FNVRecord::Read() - { - if(IsLoaded() || IsChanged()) - return false; - uint32_t recSize = *(uint32_t*)&recData[-20]; - - //Check against the original record flags to see if it is compressed since the current flags may have changed - if ((*(uint32_t*)&recData[-16] & fIsCompressed) != 0) - { - unsigned char localBuffer[BUFFERSIZE]; - uint32_t expandedRecSize = *(uint32_t*)recData; - unsigned char *buffer = (expandedRecSize >= BUFFERSIZE) ? new unsigned char[expandedRecSize] : &localBuffer[0]; - uncompress(buffer, (uLongf*)&expandedRecSize, &recData[4], recSize - 4); - ParseRecord(buffer, buffer + expandedRecSize, true); - if(buffer != &localBuffer[0]) - delete [] buffer; - } - else - ParseRecord(recData, recData + recSize); - - IsLoaded(true); - return true; - } +{ + return ReadRecord(20); +} uint32_t FNVRecord::Write(FileWriter &writer, const bool &bMastersChanged, FormIDResolver &expander, FormIDResolver &collapser, std::vector &Expanders) { @@ -767,28 +754,9 @@ TES5Record::~TES5Record() } bool TES5Record::Read() - { - if(IsLoaded() || IsChanged()) - return false; - uint32_t recSize = *(uint32_t*)&recData[-20]; - - //Check against the original record flags to see if it is compressed since the current flags may have changed - if ((*(uint32_t*)&recData[-16] & fIsCompressed) != 0) - { - unsigned char localBuffer[BUFFERSIZE]; - uint32_t expandedRecSize = *(uint32_t*)recData; - unsigned char *buffer = (expandedRecSize >= BUFFERSIZE) ? new unsigned char[expandedRecSize] : &localBuffer[0]; - uncompress(buffer, (uLongf*)&expandedRecSize, &recData[4], recSize - 4); - ParseRecord(buffer, buffer + expandedRecSize, true); - if(buffer != &localBuffer[0]) - delete [] buffer; - } - else - ParseRecord(recData, recData + recSize); - - IsLoaded(true); - return true; - } +{ + return ReadRecord(20); +} uint32_t TES5Record::Write(FileWriter &writer, const bool &bMastersChanged, FormIDResolver &expander, FormIDResolver &collapser, std::vector &Expanders) { diff --git a/src/GenericRecord.h b/src/GenericRecord.h index 2ada1d1..b3f3b81 100644 --- a/src/GenericRecord.h +++ b/src/GenericRecord.h @@ -242,11 +242,11 @@ struct Record //bool HasInvalidFormIDs() const; //void HasInvalidFormIDs(bool value); - virtual int32_t Unload() abstract {}; - virtual uint32_t GetType() abstract {}; - virtual char * GetStrType() abstract {}; - virtual int32_t WriteRecord(FileWriter &writer) abstract {}; - virtual int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false) abstract {}; + virtual int32_t Unload() = 0; + virtual uint32_t GetType() = 0; + virtual char * GetStrType() = 0; + virtual int32_t WriteRecord(FileWriter &writer) = 0; + virtual int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false) = 0; virtual uint32_t GetFieldAttribute(DEFAULTED_FIELD_IDENTIFIERS, uint32_t WhichAttribute=0); virtual void * GetField(DEFAULTED_FIELD_IDENTIFIERS, void **FieldValues=NULL); @@ -265,9 +265,10 @@ struct Record bool master_equality(Record *master, RecordOp &read_self, RecordOp &read_master, boost::unordered_set &identical_records); bool shallow_equals(Record *other); - virtual bool equals(Record *other) abstract {}; + virtual bool equals(Record *other) = 0; virtual bool deep_equals(Record *master, RecordOp &read_self, RecordOp &read_master, boost::unordered_set &identical_records); + bool ReadRecord(int32_t sizeDistance); bool IsDeleted() const; void IsDeleted(bool value); bool IsBorderRegion(); diff --git a/src/Logger.cpp b/src/Logger.cpp new file mode 100644 index 0000000..5fa6f94 --- /dev/null +++ b/src/Logger.cpp @@ -0,0 +1,63 @@ +#include "Logger.h" +#include + +Logger::~Logger() { + if (logFile.is_open()) + logFile.close(); +} + +Logger& Logger::getInstance() { + static Logger instance = Logger(); + return instance; +} + +void Logger::init(int argc, char * argv[]) { + if (logFile.is_open()) + return; + + if (argc < 4) + return; + + std::string logFileName = argv[3]; + logFileName += "Logs_"; + std::time_t t = time(0); + struct tm* now = localtime(&t); + char buffer[20]; + strftime(buffer, 20, "%d.%m.%y_%H.%M.%S", now); + logFileName += buffer; + logFileName += ".txt"; + logFile.open(logFileName, std::ios::out | std::ios::trunc); + if (!logFile) { + std::cout << "Couldn't open log file\n"; + return; + } + + if (argc > 4) + logLevel = atoi(argv[4]); + + logFile << "Arguments: " << argv[1] << " " << argv[2] << " " << argv[3] << " " << logLevel << std::endl << std::endl; + + Log info; + info.logFile = &logFile; + info.isHigherLevel = (logLevel <= 0); + loggers.push_back(info); + + Log warning; + warning.logFile = &logFile; + warning.isHigherLevel = (logLevel <= 1); + loggers.push_back(warning); + + Log debug; + debug.logFile = &logFile; + debug.isHigherLevel = (logLevel <= 2); + loggers.push_back(debug); + + Log error; + error.logFile = &logFile; + error.isHigherLevel = (logLevel <= 3); + loggers.push_back(error); +} + +Log* Logger::getLogger(int level) { + return &loggers[level]; +} \ No newline at end of file diff --git a/src/Logger.h b/src/Logger.h new file mode 100644 index 0000000..81eaa11 --- /dev/null +++ b/src/Logger.h @@ -0,0 +1,44 @@ +#pragma once +#include +#include +#include + +struct Log { + std::ofstream* logFile = NULL; + bool isHigherLevel = false; + + template + Log& operator<<(T const& obj) { + if (logFile != NULL) + (*logFile) << obj; + + if (isHigherLevel) + std::cout << obj; + + return *this; + } + + Log& operator<<(std::ostream& (*pf)(std::ostream&)) { + if (logFile != NULL) + (*logFile) << pf; + + if (isHigherLevel) + std::cout << pf; + + return *this; + } +}; + +class Logger { +private: + int logLevel = 2; // Debug and above + std::ofstream logFile; + std::vector loggers; + Logger() {} +public: + ~Logger(); + Logger(Logger& copy) {} + static Logger& getInstance(); + void init(int argc, char * argv[]); + Log* getLogger(int level); +}; \ No newline at end of file diff --git a/src/MacroDefinitions.h b/src/MacroDefinitions.h index 9122849..3c57496 100644 --- a/src/MacroDefinitions.h +++ b/src/MacroDefinitions.h @@ -38,15 +38,23 @@ #include "Types.h" -#ifdef _M_X64 - //#pragma message("Compiling with x64 compatibility") - #define CBASH_X64_COMPATIBILITY - //#error "CBASH is untested as a x64 build" -#elif defined(_M_IX86) - //#pragma message("Compiling with x86 compatibility") - #define CBASH_X64_COMPATIBILITY +#ifdef _WIN32 + + #ifdef _M_X64 + //#pragma message("Compiling with x64 compatibility") + #define CBASH_X64_COMPATIBILITY + //#error "CBASH is untested as a x64 build" + #elif defined(_M_IX86) + //#pragma message("Compiling with x86 compatibility") + #define CBASH_X64_COMPATIBILITY + #else + #error "Unknown platform" + #endif + #else - #error "Unknown platform" + #if __x86_64__ || __ppc64__ + #define CBASH_X64_COMPATIBILITY + #endif #endif //#define CBASH_X64_COMPATIBILITY @@ -57,7 +65,7 @@ #undef CBASH_CHUNK_LCHECK #define CBASH_DEBUG_VARS -#define CBASH_DEBUG_CHUNK +//#define CBASH_DEBUG_CHUNK //Peek into the data before and after to see what's up #ifdef CBASH_DEBUG_CHUNK @@ -240,7 +248,6 @@ #define VATSFUNCTIONSIZE 18 #endif -typedef cb_formid_t FORMID; typedef uint32_t MGEFCODE; typedef uint32_t ACTORVALUE; typedef uint32_t FORMID_OR_UINT32; @@ -275,32 +282,41 @@ typedef Record ** RECORDIDARRAY; #define VSDPRINT(_var) DPRINT(#_var " = %s",_var) #define VDDPRINT(_var) DPRINT(#_var " = %d",_var) - +//Stringify-based, probably slower, but charsify is not supported on other compilers than MSVC +#ifdef _WIN32 #define REV32(x) ((#@x & 0x000000FFU) << 24 | (#@x & 0x0000FF00U) << 8 | (#@x & 0x00FF0000U) >> 8 | (#@x & 0xFF000000U) >> 24) +#else +#define REV32(x) (#x[3] << 24 | #x[2] << 16 | #x[1] << 8 | #x[0]) +#endif + #define WRITE(x) x.Write(REV32(x), writer) #define WRITEREQ(x) x.ReqWrite(REV32(x), writer) #define WRITEAS(x,y) x.Write(REV32(y), writer) #define WRITEEMPTY(x) writer.record_write_subheader(REV32(x), 0); // 3 methods to flip bits conditionally -#ifdef BITSET_BRANCHING // slowest method - #define SETBIT(var,mask,set) var = set ? (var | mask) : (var & ~mask) -#elif defined BITSET_NO_SUPERSCALAR - // Uses more operations, but avoids branching - // Usually about 5-10% faster than branching - #define SETBIT(var,mask,set) \ - __pragma(warning(push)) \ - __pragma(warning(disable:4804)) \ - var ^= (-set ^ var) & mask \ - __pramga(warning(pop)) -#else // Superscalar CPU method - // Pretty much all modern CPU's are superscalar - // About 16% faster than the non-branching method - #define SETBIT(var,mask,set) \ - __pragma(warning(push)) \ - __pragma(warning(disable:4804)) \ - var = (var & ~mask) | (-set & mask) \ - __pragma(warning(pop)) +#ifdef _WIN32 + #ifdef BITSET_BRANCHING // slowest method + #define SETBIT(var,mask,set) var = set ? (var | mask) : (var & ~mask) + #elif defined BITSET_NO_SUPERSCALAR + // Uses more operations, but avoids branching + // Usually about 5-10% faster than branching + #define SETBIT(var,mask,set) \ + __pragma(warning(push)) \ + __pragma(warning(disable:4804)) \ + var ^= (-set ^ var) & mask \ + __pramga(warning(pop)) + #else // Superscalar CPU method + // Pretty much all modern CPU's are superscalar + // About 16% faster than the non-branching method + #define SETBIT(var,mask,set) \ + __pragma(warning(push)) \ + __pragma(warning(disable:4804)) \ + var = (var & ~mask) | (-set & mask) \ + __pragma(warning(pop)) + #endif +#else + #define SETBIT(var,mask,set) var = set ? (var | mask) : (var & ~mask) #endif // Quick macro to debug struct sizes at compile time @@ -312,3 +328,12 @@ typedef Record ** RECORDIDARRAY; // fill in the fields. #define SIZE_CHECK(type, size) \ SIZE_CHECK_MSG(type, size, #type " must be " #size " bytes") + + +#define CBASH_SUBTYPE_UNKNOWN char unknownSubBuffer[150]; \ + sprintf(unknownSubBuffer, "%s: %08X - Unknown subType = %04x [%c%c%c%c]\n\tSize = %i\n\tCurPos = %08x\n\n", GetStrType(), formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF, subSize, buffer - 6); \ + log_error << unknownSubBuffer; + +#define CBASH_SUBTYPE_NOT_IMPLEMENTED char notImpSubBuffer[150]; \ + sprintf(notImpSubBuffer, "%s: %08X - Not Implemented subType = %04x [%c%c%c%c]\n\tSize = %i\n\tCurPos = %08x\n\n", GetStrType(), formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF, subSize, buffer - 6); \ + log_warning << notImpSubBuffer; \ No newline at end of file diff --git a/src/ModFile.h b/src/ModFile.h index 421ab64..3adc964 100644 --- a/src/ModFile.h +++ b/src/ModFile.h @@ -76,17 +76,17 @@ struct ModFile bool Open(); bool Close(); - virtual int32_t LoadTES4() abstract {}; - virtual int32_t Load(RecordOp &read_parser, RecordOp &indexer, std::vector &Expanders, std::vector &DeletedRecords) abstract {}; - virtual uint32_t GetNumRecords(const uint32_t &RecordType) abstract {}; - virtual Record * CreateRecord(const uint32_t &RecordType, char * const &RecordEditorID, Record *&SourceRecord, Record *&ParentRecord, CreationFlags &options) abstract {}; - virtual int32_t DeleteRecord(Record *&curRecord, RecordOp &deindexer) abstract {}; - virtual int32_t Save(char * const &SaveName, std::vector &Expanders, bool CloseMod, RecordOp &indexer) abstract {}; + virtual int32_t LoadTES4() = 0; + virtual int32_t Load(RecordOp &read_parser, RecordOp &indexer, std::vector &Expanders, std::vector &DeletedRecords) = 0; + virtual size_t GetNumRecords(const uint32_t &RecordType) = 0; + virtual Record * CreateRecord(const uint32_t &RecordType, char * const &RecordEditorID, Record *&SourceRecord, Record *&ParentRecord, CreationFlags &options) = 0; + virtual int32_t DeleteRecord(Record *&curRecord, RecordOp &deindexer) = 0; + virtual int32_t Save(char * const &SaveName, std::vector &Expanders, bool CloseMod, RecordOp &indexer) = 0; - virtual void SetFilter(bool inclusive, boost::unordered_set &RecordTypes, boost::unordered_set &WorldSpaces) abstract {}; + virtual void SetFilter(bool inclusive, boost::unordered_set &RecordTypes, boost::unordered_set &WorldSpaces) = 0; - virtual void VisitAllRecords(RecordOp &op) abstract {}; - virtual void VisitRecords(const uint32_t &RecordType, RecordOp &op) abstract {}; + virtual void VisitAllRecords(RecordOp &op) = 0; + virtual void VisitRecords(const uint32_t &RecordType, RecordOp &op) = 0; }; class FormIDMasterUpdater : public FormIDOp diff --git a/src/Oblivion/GRUPRecord.h b/src/Oblivion/GRUPRecord.h index 82d4c03..a8f1910 100644 --- a/src/Oblivion/GRUPRecord.h +++ b/src/Oblivion/GRUPRecord.h @@ -148,19 +148,17 @@ class GRUPRecords unsigned char *dial_buffer = NULL; if(numDIAL) { - dial_buffer = (unsigned char *)malloc(sizeof(Ob::DIALRecord) * numDIAL); + dial_buffer = (unsigned char *)dial_pool.add_buffer(sizeof(Ob::DIALRecord) * numDIAL); if(dial_buffer == 0) throw std::bad_alloc(); - dial_pool.add_buffer(dial_buffer); } unsigned char *info_buffer = NULL; if(numINFO) { - info_buffer = (unsigned char *)malloc(sizeof(Ob::INFORecord) * numINFO); + info_buffer = (unsigned char *)info_pool.add_buffer(sizeof(Ob::INFORecord) * numINFO); if(info_buffer == 0) throw std::bad_alloc(); - info_pool.add_buffer(info_buffer); } last_record = orphaned_records = new Ob::DIALRecord(); @@ -413,46 +411,41 @@ class GRUPRecords unsigned char *cell_buffer = NULL; if(numCELL) { - cell_buffer = (unsigned char *)malloc(sizeof(Ob::CELLRecord) * numCELL); + cell_buffer = (unsigned char *)cell_pool.add_buffer(sizeof(Ob::CELLRecord) * numCELL); if(cell_buffer == 0) throw std::bad_alloc(); - cell_pool.add_buffer(cell_buffer); } unsigned char *achr_buffer = NULL; if(numACHR) { - achr_buffer = (unsigned char *)malloc(sizeof(Ob::ACHRRecord) * numACHR); + achr_buffer = (unsigned char *)achr_pool.add_buffer(sizeof(Ob::ACHRRecord) * numACHR); if(achr_buffer == 0) throw std::bad_alloc(); - achr_pool.add_buffer(achr_buffer); } unsigned char *acre_buffer = NULL; if(numACRE) { - acre_buffer = (unsigned char *)malloc(sizeof(Ob::ACRERecord) * numACRE); + acre_buffer = (unsigned char *)acre_pool.add_buffer(sizeof(Ob::ACRERecord) * numACRE); if(acre_buffer == 0) throw std::bad_alloc(); - acre_pool.add_buffer(acre_buffer); } unsigned char *refr_buffer = NULL; if(numREFR) { - refr_buffer = (unsigned char *)malloc(sizeof(Ob::REFRRecord) * numREFR); + refr_buffer = (unsigned char *)refr_pool.add_buffer(sizeof(Ob::REFRRecord) * numREFR); if(refr_buffer == 0) throw std::bad_alloc(); - refr_pool.add_buffer(refr_buffer); } unsigned char *pgrd_buffer = NULL; if(numPGRD) { - pgrd_buffer = (unsigned char *)malloc(sizeof(Ob::PGRDRecord) * numPGRD); + pgrd_buffer = (unsigned char *)pgrd_pool.add_buffer(sizeof(Ob::PGRDRecord) * numPGRD); if(pgrd_buffer == 0) throw std::bad_alloc(); - pgrd_pool.add_buffer(pgrd_buffer); } last_record = orphaned_records = new Ob::CELLRecord(); @@ -990,73 +983,65 @@ class GRUPRecords unsigned char *wrld_buffer = NULL; if(numWRLD) { - wrld_buffer = (unsigned char *)malloc(sizeof(Ob::WRLDRecord) * numWRLD); + wrld_buffer = (unsigned char *)wrld_pool.add_buffer(sizeof(Ob::WRLDRecord) * numWRLD); if(wrld_buffer == 0) throw std::bad_alloc(); - wrld_pool.add_buffer(wrld_buffer); } unsigned char *road_buffer = NULL; if(numROAD) { - road_buffer = (unsigned char *)malloc(sizeof(Ob::ROADRecord) * numROAD); + road_buffer = (unsigned char *)road_pool.add_buffer(sizeof(Ob::ROADRecord) * numROAD); if(road_buffer == 0) throw std::bad_alloc(); - road_pool.add_buffer(road_buffer); } unsigned char *cell_buffer = NULL; if(numCELL) { - cell_buffer = (unsigned char *)malloc(sizeof(Ob::CELLRecord) * numCELL); + cell_buffer = (unsigned char *)cell_pool.add_buffer(sizeof(Ob::CELLRecord) * numCELL); if(cell_buffer == 0) throw std::bad_alloc(); - cell_pool.add_buffer(cell_buffer); } unsigned char *achr_buffer = NULL; if(numACHR) { - achr_buffer = (unsigned char *)malloc(sizeof(Ob::ACHRRecord) * numACHR); + achr_buffer = (unsigned char *)CELL.achr_pool.add_buffer(sizeof(Ob::ACHRRecord) * numACHR); if(achr_buffer == 0) throw std::bad_alloc(); - CELL.achr_pool.add_buffer(achr_buffer); } unsigned char *acre_buffer = NULL; if(numACRE) { - acre_buffer = (unsigned char *)malloc(sizeof(Ob::ACRERecord) * numACRE); + acre_buffer = (unsigned char *)CELL.acre_pool.add_buffer(sizeof(Ob::ACRERecord) * numACRE); if(acre_buffer == 0) throw std::bad_alloc(); - CELL.acre_pool.add_buffer(acre_buffer); } unsigned char *refr_buffer = NULL; if(numREFR) { - refr_buffer = (unsigned char *)malloc(sizeof(Ob::REFRRecord) * numREFR); + refr_buffer = (unsigned char *)CELL.refr_pool.add_buffer(sizeof(Ob::REFRRecord) * numREFR); if(refr_buffer == 0) throw std::bad_alloc(); - CELL.refr_pool.add_buffer(refr_buffer); } unsigned char *pgrd_buffer = NULL; if(numPGRD) { - pgrd_buffer = (unsigned char *)malloc(sizeof(Ob::PGRDRecord) * numPGRD); + pgrd_buffer = (unsigned char *)CELL.pgrd_pool.add_buffer(sizeof(Ob::PGRDRecord) * numPGRD); if(pgrd_buffer == 0) throw std::bad_alloc(); - CELL.pgrd_pool.add_buffer(pgrd_buffer); } unsigned char *land_buffer = NULL; if(numLAND) { - land_buffer = (unsigned char *)malloc(sizeof(Ob::LANDRecord) * numLAND); + land_buffer = (unsigned char *)land_pool.add_buffer(sizeof(Ob::LANDRecord) * numLAND); if(land_buffer == 0) throw std::bad_alloc(); - land_pool.add_buffer(land_buffer); } last_wrld_record = orphaned_wrld_records = new Ob::WRLDRecord(); diff --git a/src/Oblivion/Records/ACHRRecord.cpp b/src/Oblivion/Records/ACHRRecord.cpp index e50a76a..af345c2 100644 --- a/src/Oblivion/Records/ACHRRecord.cpp +++ b/src/Oblivion/Records/ACHRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ACHRRecord.h" #include "CELLRecord.h" @@ -193,7 +193,7 @@ int32_t ACHRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ACHR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/ACHRRecord.h b/src/Oblivion/Records/ACHRRecord.h index c07d1b0..d13f682 100644 --- a/src/Oblivion/Records/ACHRRecord.h +++ b/src/Oblivion/Records/ACHRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/ACRERecord.cpp b/src/Oblivion/Records/ACRERecord.cpp index 662d89d..7768894 100644 --- a/src/Oblivion/Records/ACRERecord.cpp +++ b/src/Oblivion/Records/ACRERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ACRERecord.h" #include "CELLRecord.h" @@ -190,7 +190,7 @@ int32_t ACRERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ACRE: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/ACRERecord.h b/src/Oblivion/Records/ACRERecord.h index 08c0ef2..45222a3 100644 --- a/src/Oblivion/Records/ACRERecord.h +++ b/src/Oblivion/Records/ACRERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/ACTIRecord.cpp b/src/Oblivion/Records/ACTIRecord.cpp index 1829260..3f96192 100644 --- a/src/Oblivion/Records/ACTIRecord.cpp +++ b/src/Oblivion/Records/ACTIRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ACTIRecord.h" namespace Ob @@ -146,7 +146,7 @@ int32_t ACTIRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ACTI: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/ACTIRecord.h b/src/Oblivion/Records/ACTIRecord.h index 7d5c9b4..013b54e 100644 --- a/src/Oblivion/Records/ACTIRecord.h +++ b/src/Oblivion/Records/ACTIRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/ALCHRecord.cpp b/src/Oblivion/Records/ALCHRecord.cpp index aa8b525..f75d124 100644 --- a/src/Oblivion/Records/ALCHRecord.cpp +++ b/src/Oblivion/Records/ALCHRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ALCHRecord.h" namespace Ob @@ -235,7 +235,7 @@ int32_t ALCHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ALCH: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/ALCHRecord.h b/src/Oblivion/Records/ALCHRecord.h index 7c23a0c..423549e 100644 --- a/src/Oblivion/Records/ALCHRecord.h +++ b/src/Oblivion/Records/ALCHRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/AMMORecord.cpp b/src/Oblivion/Records/AMMORecord.cpp index e249130..da303cc 100644 --- a/src/Oblivion/Records/AMMORecord.cpp +++ b/src/Oblivion/Records/AMMORecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "AMMORecord.h" namespace Ob @@ -231,7 +231,7 @@ int32_t AMMORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" AMMO: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/AMMORecord.h b/src/Oblivion/Records/AMMORecord.h index ccb71ce..dfbc40c 100644 --- a/src/Oblivion/Records/AMMORecord.h +++ b/src/Oblivion/Records/AMMORecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/ANIORecord.cpp b/src/Oblivion/Records/ANIORecord.cpp index 40def05..ad28d74 100644 --- a/src/Oblivion/Records/ANIORecord.cpp +++ b/src/Oblivion/Records/ANIORecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ANIORecord.h" namespace Ob @@ -136,7 +136,7 @@ int32_t ANIORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ANIO: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/ANIORecord.h b/src/Oblivion/Records/ANIORecord.h index 531c7ff..761a3ac 100644 --- a/src/Oblivion/Records/ANIORecord.h +++ b/src/Oblivion/Records/ANIORecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/API/ACHRRecordAPI.cpp b/src/Oblivion/Records/API/ACHRRecordAPI.cpp index d516d62..9e5264b 100644 --- a/src/Oblivion/Records/API/ACHRRecordAPI.cpp +++ b/src/Oblivion/Records/API/ACHRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ACHRRecord.h" +#include "../../../Common.h" +#include "../ACHRRecord.h" namespace Ob { @@ -45,75 +45,75 @@ uint32_t ACHRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 6: //unknownXPCIFormID - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //unknownXPCIString - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //lod1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //lod2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //lod3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //parentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 13: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XESP.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //merchantContainer - return CB_FORMID_FIELD; + return FORMID_FIELD; case 15: //horse - return CB_FORMID_FIELD; + return FORMID_FIELD; case 16: //xrgd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGD.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 22: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 23: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 24: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ACHRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/ACRERecordAPI.cpp b/src/Oblivion/Records/API/ACRERecordAPI.cpp index 0f38f4f..84e30cc 100644 --- a/src/Oblivion/Records/API/ACRERecordAPI.cpp +++ b/src/Oblivion/Records/API/ACRERecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ACRERecord.h" +#include "../../../Common.h" +#include "../ACRERecord.h" namespace Ob { @@ -45,73 +45,73 @@ uint32_t ACRERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 6: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 8: //globalVariable - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //lod1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //lod2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //lod3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //parentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 14: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XESP.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //xrgd_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XRGD.GetSize(); default: //fieldType - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 21: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 22: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 23: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ACRERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/ACTIRecordAPI.cpp b/src/Oblivion/Records/API/ACTIRecordAPI.cpp index fa6cdc4..6208021 100644 --- a/src/Oblivion/Records/API/ACTIRecordAPI.cpp +++ b/src/Oblivion/Records/API/ACTIRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ACTIRecord.h" +#include "../../../Common.h" +#include "../ACTIRecord.h" namespace Ob { @@ -45,38 +45,38 @@ uint32_t ACTIRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ACTIRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/ALCHRecordAPI.cpp b/src/Oblivion/Records/API/ALCHRecordAPI.cpp index b87f3ce..00c4cae 100644 --- a/src/Oblivion/Records/API/ALCHRecordAPI.cpp +++ b/src/Oblivion/Records/API/ALCHRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ALCHRecord.h" +#include "../../../Common.h" +#include "../ALCHRecord.h" namespace Ob { @@ -45,67 +45,67 @@ uint32_t ALCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 13: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 14: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //effects if(ListFieldID == 0) //effects { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Effects.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -114,203 +114,203 @@ uint32_t ALCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_CHAR4_FIELD; + return MGEFCODE_OR_CHAR4_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded()) - return Effects.value[ListIndex]->EFID.value >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->EFID.value >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; else - return CB_CHAR4_FIELD; + return CHAR4_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //magnitude - return CB_UINT32_FIELD; + return UINT32_FIELD; case 4: //area - return CB_UINT32_FIELD; + return UINT32_FIELD; case 5: //duration - return CB_UINT32_FIELD; + return UINT32_FIELD; case 6: //rangeType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 7: //actorValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; + return FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded()) { switch(Effects.value[ListIndex]->OBME->EFME.value.efitParamInfo) { case 1: //It's a regular formID, so nothing fancy. - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //It's a mgefCode, and not a formID at all. //Conditional resolution of mgefCode's based on JRoush's OBME mod //It's resolved just like a formID, except it uses the lower byte instead of the upper - return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; case 3: //It's an actor value, and not a formID at all. //Conditional resolution of av's based on JRoush's OBME/AV mod(s) //It's resolved just like a formID - return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; default: //It's not a formID, mgefCode, or fancied up actor value //so do nothing - return CB_UINT32_FIELD; + return UINT32_FIELD; } } else - return CB_STATIC_ACTORVALUE_FIELD; + return STATIC_ACTORVALUE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 8: //script switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; + return FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->SCIT.IsLoaded()) { switch(Effects.value[ListIndex]->OBME->EFME.value.efixParamInfo) { case 1: //It's a regular formID, so nothing fancy. - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //It's a mgefCode, and not a formID at all. //Conditional resolution of mgefCode's based on JRoush's OBME mod //It's resolved just like a formID, except it uses the lower byte instead of the upper - return Effects.value[ListIndex]->SCIT->script >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->SCIT->script >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; case 3: //It's an actor value, and not a formID at all. //Conditional resolution of av's based on JRoush's OBME/AV mod(s) //It's resolved just like a formID - return Effects.value[ListIndex]->SCIT->script >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->SCIT->script >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; default: //It's not a formID, mgefCode, or fancied up actor value //so do nothing - return CB_UINT32_FIELD; + return UINT32_FIELD; } } else - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 9: //school - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 10: //visual switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_CHAR4_FIELD; + return MGEFCODE_OR_CHAR4_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->SCIT.IsLoaded()) - return ((Effects.value[ListIndex]->SCIT->visual >= 0x80000000) ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD); + return ((Effects.value[ListIndex]->SCIT->visual >= 0x80000000) ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD); else - return CB_CHAR4_FIELD; + return CHAR4_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 11: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->SCIT.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; //OBME Fields case 14: //recordVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //betaVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //minorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //majorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //efitParamInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //efixParamInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //reserved1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->OBME.IsLoaded() ? 0xA : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 21: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 22: //efixOverrides - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 23: //efixFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 24: //baseCost - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //resistAV switch(WhichAttribute) { case 0: //fieldType - return CB_ACTORVALUE_FIELD; + return ACTORVALUE_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->OBME->EFIX.IsLoaded()) - return Effects.value[ListIndex]->OBME->EFIX->resistAV >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->OBME->EFIX->resistAV >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; else - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 26: //reserved2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->OBME->EFIX.IsLoaded() ? 0x10 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } //OBME Fields case 16: //recordVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //betaVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //minorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //majorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //reserved switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return OBME.IsLoaded() ? 0x1C : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 21: //datx_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return (OBME.IsLoaded() && OBME->DATX.IsLoaded()) ? 0x20 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ALCHRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/AMMORecordAPI.cpp b/src/Oblivion/Records/API/AMMORecordAPI.cpp index 35e52c8..2776cbb 100644 --- a/src/Oblivion/Records/API/AMMORecordAPI.cpp +++ b/src/Oblivion/Records/API/AMMORecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\AMMORecord.h" +#include "../../../Common.h" +#include "../AMMORecord.h" namespace Ob { @@ -45,61 +45,61 @@ uint32_t AMMORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //enchantment - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //enchantPoints - return CB_UINT16_FIELD; + return UINT16_FIELD; case 12: //speed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 14: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //value - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //damage - return CB_UINT16_FIELD; + return UINT16_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * AMMORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/ANIORecordAPI.cpp b/src/Oblivion/Records/API/ANIORecordAPI.cpp index 57821ea..2ea01cb 100644 --- a/src/Oblivion/Records/API/ANIORecordAPI.cpp +++ b/src/Oblivion/Records/API/ANIORecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ANIORecord.h" +#include "../../../Common.h" +#include "../ANIORecord.h" namespace Ob { @@ -45,34 +45,34 @@ uint32_t ANIORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 7: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //animationId - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ANIORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/APPARecordAPI.cpp b/src/Oblivion/Records/API/APPARecordAPI.cpp index 77143c4..47a6514 100644 --- a/src/Oblivion/Records/API/APPARecordAPI.cpp +++ b/src/Oblivion/Records/API/APPARecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\APPARecord.h" +#include "../../../Common.h" +#include "../APPARecord.h" namespace Ob { @@ -45,46 +45,46 @@ uint32_t APPARecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //apparatusType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 12: //value - return CB_UINT32_FIELD; + return UINT32_FIELD; case 13: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 14: //quality - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * APPARecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/ARMORecordAPI.cpp b/src/Oblivion/Records/API/ARMORecordAPI.cpp index 2531720..26957b7 100644 --- a/src/Oblivion/Records/API/ARMORecordAPI.cpp +++ b/src/Oblivion/Records/API/ARMORecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ARMORecord.h" +#include "../../../Common.h" +#include "../ARMORecord.h" namespace Ob { @@ -45,99 +45,99 @@ uint32_t ARMORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //enchantment - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //enchantPoints - return CB_UINT16_FIELD; + return UINT16_FIELD; case 9: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 10: //maleBody_modPath - return CB_STRING_FIELD; + return STRING_FIELD; case 11: //maleBody_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //maleBody_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //maleWorld_modPath - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //maleWorld_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //maleWorld_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD2.IsLoaded() ? MOD2->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //maleIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 17: //femaleBody_modPath - return CB_STRING_FIELD; + return STRING_FIELD; case 18: //femaleBody_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //femaleBody_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD3.IsLoaded() ? MOD3->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //femaleWorld_modPath - return CB_STRING_FIELD; + return STRING_FIELD; case 21: //femaleWorld_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //femaleWorld_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD4.IsLoaded() ? MOD4->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //femaleIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 24: //strength - return CB_UINT16_FIELD; + return UINT16_FIELD; case 25: //value - return CB_UINT32_FIELD; + return UINT32_FIELD; case 26: //health - return CB_UINT32_FIELD; + return UINT32_FIELD; case 27: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ARMORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/BOOKRecordAPI.cpp b/src/Oblivion/Records/API/BOOKRecordAPI.cpp index 70f45b7..278c103 100644 --- a/src/Oblivion/Records/API/BOOKRecordAPI.cpp +++ b/src/Oblivion/Records/API/BOOKRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\BOOKRecord.h" +#include "../../../Common.h" +#include "../BOOKRecord.h" namespace Ob { @@ -45,52 +45,52 @@ uint32_t BOOKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //text - return CB_STRING_FIELD; + return STRING_FIELD; case 11: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //enchantment - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //enchantPoints - return CB_UINT16_FIELD; + return UINT16_FIELD; case 14: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 15: //teaches - return CB_SINT8_FIELD; + return SINT8_FIELD; case 16: //value - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * BOOKRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/BSGNRecordAPI.cpp b/src/Oblivion/Records/API/BSGNRecordAPI.cpp index cd06559..a46bfca 100644 --- a/src/Oblivion/Records/API/BSGNRecordAPI.cpp +++ b/src/Oblivion/Records/API/BSGNRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\BSGNRecord.h" +#include "../../../Common.h" +#include "../BSGNRecord.h" namespace Ob { @@ -45,33 +45,33 @@ uint32_t BSGNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //text - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //spells switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)SPLO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * BSGNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/CELLRecordAPI.cpp b/src/Oblivion/Records/API/CELLRecordAPI.cpp index 72c7347..e853380 100644 --- a/src/Oblivion/Records/API/CELLRecordAPI.cpp +++ b/src/Oblivion/Records/API/CELLRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CELLRecord.h" +#include "../../../Common.h" +#include "../CELLRecord.h" namespace Ob { @@ -45,174 +45,174 @@ uint32_t CELLRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 7: //ambientRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //ambientGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: //ambientBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 10: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLL.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //directionalRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //directionalGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //directionalBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLL.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //fogRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //fogGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //fogBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLL.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //fogNear - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //fogFar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //directionalXY - return CB_SINT32_FIELD; + return SINT32_FIELD; case 22: //directionalZ - return CB_SINT32_FIELD; + return SINT32_FIELD; case 23: //directionalFade - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //fogClip - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //musicType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 26: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 27: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 28: //globalVariable - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //climate - return CB_FORMID_FIELD; + return FORMID_FIELD; case 30: //waterHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //regions switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)XCLR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //posX switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_SINT32_FIELD; + return UNKNOWN_OR_SINT32_FIELD; case 2: //WhichType if(!IsInterior()) - return CB_SINT32_FIELD; - return CB_UNKNOWN_FIELD; + return SINT32_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 33: //posY switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_SINT32_FIELD; + return UNKNOWN_OR_SINT32_FIELD; case 2: //WhichType if(!IsInterior()) - return CB_SINT32_FIELD; - return CB_UNKNOWN_FIELD; + return SINT32_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 34: //water - return CB_FORMID_FIELD; + return FORMID_FIELD; case 35: //ACHR switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ACHR.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 36: //ACRE switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ACRE.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 37: //REFR switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)REFR.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 38: //PGRD - return CB_SUBRECORD_FIELD; + return SUBRECORD_FIELD; case 39: //LAND - return CB_SUBRECORD_FIELD; + return SUBRECORD_FIELD; case 40: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CELLRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/CLASRecordAPI.cpp b/src/Oblivion/Records/API/CLASRecordAPI.cpp index 9810159..c54d9c8 100644 --- a/src/Oblivion/Records/API/CLASRecordAPI.cpp +++ b/src/Oblivion/Records/API/CLASRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CLASRecord.h" +#include "../../../Common.h" +#include "../CLASRecord.h" namespace Ob { @@ -45,61 +45,61 @@ uint32_t CLASRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 7: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //primary1 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //primary2 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 10: //specialization - return CB_UINT32_FIELD; + return UINT32_FIELD; case 11: //major1 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 12: //major2 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 13: //major3 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 14: //major4 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 15: //major5 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 16: //major6 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 17: //major7 - return CB_SINT32_FIELD; + return SINT32_FIELD; case 18: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 19: //services - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 20: //trainSkill - return CB_SINT8_FIELD; + return SINT8_FIELD; case 21: //trainLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CLASRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/CLMTRecordAPI.cpp b/src/Oblivion/Records/API/CLMTRecordAPI.cpp index 77e322d..6b1f5a6 100644 --- a/src/Oblivion/Records/API/CLMTRecordAPI.cpp +++ b/src/Oblivion/Records/API/CLMTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CLMTRecord.h" +#include "../../../Common.h" +#include "../CLMTRecord.h" namespace Ob { @@ -45,75 +45,75 @@ uint32_t CLMTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //weathers if(ListFieldID == 0) //weathers { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Weathers.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Weathers.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //weather - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //chance - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //sunPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //glarePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //riseBegin - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //riseEnd - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //setBegin - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //setEnd - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //volatility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //phaseLength - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CLMTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/CLOTRecordAPI.cpp b/src/Oblivion/Records/API/CLOTRecordAPI.cpp index b50e7c8..1b3d6d7 100644 --- a/src/Oblivion/Records/API/CLOTRecordAPI.cpp +++ b/src/Oblivion/Records/API/CLOTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CLOTRecord.h" +#include "../../../Common.h" +#include "../CLOTRecord.h" namespace Ob { @@ -45,95 +45,95 @@ uint32_t CLOTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //enchantment - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //enchantPoints - return CB_UINT16_FIELD; + return UINT16_FIELD; case 9: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 10: //maleBody_modPath - return CB_STRING_FIELD; + return STRING_FIELD; case 11: //maleBody_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //maleBody_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //maleWorld_modPath - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //maleWorld_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //maleWorld_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD2.IsLoaded() ? MOD2->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //maleIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 17: //femaleBody_modPath - return CB_STRING_FIELD; + return STRING_FIELD; case 18: //femaleBody_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //femaleBody_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD3.IsLoaded() ? MOD3->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //femaleWorld_modPath - return CB_STRING_FIELD; + return STRING_FIELD; case 21: //femaleWorld_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //femaleWorld_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD4.IsLoaded() ? MOD4->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //femaleIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 24: //value - return CB_UINT32_FIELD; + return UINT32_FIELD; case 25: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CLOTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/CONTRecordAPI.cpp b/src/Oblivion/Records/API/CONTRecordAPI.cpp index 7858ff6..41f4585 100644 --- a/src/Oblivion/Records/API/CONTRecordAPI.cpp +++ b/src/Oblivion/Records/API/CONTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CONTRecord.h" +#include "../../../Common.h" +#include "../CONTRecord.h" namespace Ob { @@ -45,71 +45,71 @@ uint32_t CONTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //items if(ListFieldID == 0) //items { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CNTO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= CNTO.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //item - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //soundOpen - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //soundClose - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CONTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/CREARecordAPI.cpp b/src/Oblivion/Records/API/CREARecordAPI.cpp index 806aea4..363a1ec 100644 --- a/src/Oblivion/Records/API/CREARecordAPI.cpp +++ b/src/Oblivion/Records/API/CREARecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CREARecord.h" +#include "../../../Common.h" +#include "../CREARecord.h" namespace Ob { @@ -45,292 +45,292 @@ uint32_t CREARecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //spells switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)SPLO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //bodyParts switch(WhichAttribute) { case 0: //fieldType - return CB_ISTRING_ARRAY_FIELD; + return ISTRING_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)NIFZ.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //nift_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return NIFT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 13: //baseSpell - return CB_UINT16_FIELD; + return UINT16_FIELD; case 14: //fatigue - return CB_UINT16_FIELD; + return UINT16_FIELD; case 15: //barterGold - return CB_UINT16_FIELD; + return UINT16_FIELD; case 16: //level - return CB_SINT16_FIELD; + return SINT16_FIELD; case 17: //calcMin - return CB_UINT16_FIELD; + return UINT16_FIELD; case 18: //calcMax - return CB_UINT16_FIELD; + return UINT16_FIELD; case 19: //factions if(ListFieldID == 0) //factions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)SNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= SNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //faction - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //rank - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //deathItem - return CB_FORMID_FIELD; + return FORMID_FIELD; case 21: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //items if(ListFieldID == 0) //items { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CNTO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= CNTO.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //item - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //aggression - return CB_UINT8_FIELD; + return UINT8_FIELD; case 24: //confidence - return CB_UINT8_FIELD; + return UINT8_FIELD; case 25: //energyLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 26: //responsibility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //services - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 28: //trainSkill - return CB_SINT8_FIELD; + return SINT8_FIELD; case 29: //trainLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 31: //aiPackages switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PKID.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //animations switch(WhichAttribute) { case 0: //fieldType - return CB_ISTRING_ARRAY_FIELD; + return ISTRING_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)KFFZ.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 33: //creatureType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 34: //combat - return CB_UINT8_FIELD; + return UINT8_FIELD; case 35: //magic - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //stealth - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //soulType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 38: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 39: //health - return CB_UINT16_FIELD; + return UINT16_FIELD; case 40: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //attackDamage - return CB_UINT16_FIELD; + return UINT16_FIELD; case 42: //strength - return CB_UINT8_FIELD; + return UINT8_FIELD; case 43: //intelligence - return CB_UINT8_FIELD; + return UINT8_FIELD; case 44: //willpower - return CB_UINT8_FIELD; + return UINT8_FIELD; case 45: //agility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 46: //speed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 47: //endurance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 48: //personality - return CB_UINT8_FIELD; + return UINT8_FIELD; case 49: //luck - return CB_UINT8_FIELD; + return UINT8_FIELD; case 50: //attackReach - return CB_UINT8_FIELD; + return UINT8_FIELD; case 51: //combatStyle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 52: //turningSpeed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //baseScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 54: //footWeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 55: //inheritsSoundsFrom - return CB_FORMID_FIELD; + return FORMID_FIELD; case 56: //bloodSprayPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 57: //bloodDecalPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 58: //sounds if(ListFieldID == 0) //sounds { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Sounds.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Sounds.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //soundType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //chance - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CREARecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/CSTYRecordAPI.cpp b/src/Oblivion/Records/API/CSTYRecordAPI.cpp index 655fc48..b2cd05d 100644 --- a/src/Oblivion/Records/API/CSTYRecordAPI.cpp +++ b/src/Oblivion/Records/API/CSTYRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CSTYRecord.h" +#include "../../../Common.h" +#include "../CSTYRecord.h" namespace Ob { @@ -45,199 +45,199 @@ uint32_t CSTYRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //dodgeChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 6: //lrChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 7: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //lrTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //lrTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //forTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //forTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //backTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //backTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 14: //idleTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //idleTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //blkChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //atkChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //atkBRecoil - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //atkBUnc - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //atkBh2h - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //pAtkChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 23: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //pAtkBRecoil - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //pAtkBUnc - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //pAtkNormal - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //pAtkFor - return CB_UINT8_FIELD; + return UINT8_FIELD; case 28: //pAtkBack - return CB_UINT8_FIELD; + return UINT8_FIELD; case 29: //pAtkL - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //pAtkR - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //holdTimerMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 33: //holdTimerMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 34: //flagsA - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 35: //acroDodge - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //unused5 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 37: //rMultOpt - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 38: //rMultMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 39: //mDistance - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 40: //rDistance - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 41: //buffStand - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 42: //rStand - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 43: //groupStand - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 44: //rushChance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 45: //unused6 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 46: //rushMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 47: //flagsB - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 48: //dodgeFMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 49: //dodgeFBase - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 50: //encSBase - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //encSMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //dodgeAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //dodgeNAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 54: //dodgeBAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 55: //dodgeBNAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 56: //dodgeFAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 57: //dodgeFNAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 58: //blockMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 59: //blockBase - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 60: //blockAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 61: //blockNAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 62: //atkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 63: //atkBase - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 64: //atkAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 65: //atkNAtkMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 66: //atkBlockMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 67: //pAtkFBase - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 68: //pAtkFMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CSTYRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/DIALRecordAPI.cpp b/src/Oblivion/Records/API/DIALRecordAPI.cpp index 13b44ff..2ad8a47 100644 --- a/src/Oblivion/Records/API/DIALRecordAPI.cpp +++ b/src/Oblivion/Records/API/DIALRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\DIALRecord.h" +#include "../../../Common.h" +#include "../DIALRecord.h" namespace Ob { @@ -45,53 +45,53 @@ uint32_t DIALRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //quests switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)QSTI.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //removedQuests switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)QSTR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //dialType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 9: //INFO switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)INFO.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * DIALRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/DOORRecordAPI.cpp b/src/Oblivion/Records/API/DOORRecordAPI.cpp index 3862512..98d2189 100644 --- a/src/Oblivion/Records/API/DOORRecordAPI.cpp +++ b/src/Oblivion/Records/API/DOORRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\DOORRecord.h" +#include "../../../Common.h" +#include "../DOORRecord.h" namespace Ob { @@ -45,54 +45,54 @@ uint32_t DOORRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //soundOpen - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //soundClose - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //soundLoop - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 14: //destinations switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)TNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * DOORRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/EFSHRecordAPI.cpp b/src/Oblivion/Records/API/EFSHRecordAPI.cpp index 4216a14..847fa5a 100644 --- a/src/Oblivion/Records/API/EFSHRecordAPI.cpp +++ b/src/Oblivion/Records/API/EFSHRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\EFSHRecord.h" +#include "../../../Common.h" +#include "../EFSHRecord.h" namespace Ob { @@ -45,219 +45,219 @@ uint32_t EFSHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //fillTexturePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //particleTexturePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 8: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //memSBlend - return CB_UINT32_FIELD; + return UINT32_FIELD; case 10: //memBlendOp - return CB_UINT32_FIELD; + return UINT32_FIELD; case 11: //memZFunc - return CB_UINT32_FIELD; + return UINT32_FIELD; case 12: //fillRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //fillGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //fillBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //fillAIn - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //fillAFull - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //fillAOut - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //fillAPRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //fillAAmp - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //fillAFreq - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //fillAnimSpdU - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //fillAnimSpdV - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //edgeOff - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //edgeRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 26: //edgeGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //edgeBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 28: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 29: //edgeAIn - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //edgeAFull - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //edgeAOut - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 32: //edgeAPRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 33: //edgeAAmp - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 34: //edgeAFreq - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 35: //fillAFRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 36: //edgeAFRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 37: //memDBlend - return CB_UINT8_FIELD; + return UINT8_FIELD; case 38: //partSBlend - return CB_UINT8_FIELD; + return UINT8_FIELD; case 39: //partBlendOp - return CB_UINT8_FIELD; + return UINT8_FIELD; case 40: //partZFunc - return CB_UINT8_FIELD; + return UINT8_FIELD; case 41: //partDBlend - return CB_UINT8_FIELD; + return UINT8_FIELD; case 42: //partBUp - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 43: //partBFull - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 44: //partBDown - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 45: //partBFRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 46: //partBPRatio - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 47: //partLTime - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 48: //partLDelta - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 49: //partNSpd - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 50: //partNAcc - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 51: //partVel1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 52: //partVel2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 53: //partVel3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 54: //partAcc1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 55: //partAcc2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 56: //partAcc3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 57: //partKey1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 58: //partKey2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 59: //partKey1Time - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 60: //partKey2Time - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 61: //key1Red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 62: //key1Green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 63: //key1Blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 64: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 65: //key2Red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 66: //key2Green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 67: //key2Blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 68: //unused5 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 69: //key3Red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 70: //key3Green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 71: //key3Blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 72: //unused6 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 73: //key1A - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 74: //key2A - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 75: //key3A - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 76: //key1Time - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 77: //key2Time - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 78: //key3Time - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * EFSHRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/ENCHRecordAPI.cpp b/src/Oblivion/Records/API/ENCHRecordAPI.cpp index 818dfcb..d6b90d4 100644 --- a/src/Oblivion/Records/API/ENCHRecordAPI.cpp +++ b/src/Oblivion/Records/API/ENCHRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ENCHRecord.h" +#include "../../../Common.h" +#include "../ENCHRecord.h" namespace Ob { @@ -45,50 +45,50 @@ uint32_t ENCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //itemType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 7: //chargeAmount - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //enchantCost - return CB_UINT32_FIELD; + return UINT32_FIELD; case 9: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 10: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //effects if(ListFieldID == 0) //effects { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Effects.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -97,203 +97,203 @@ uint32_t ENCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_CHAR4_FIELD; + return MGEFCODE_OR_CHAR4_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded()) - return Effects.value[ListIndex]->EFID.value >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->EFID.value >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; else - return CB_CHAR4_FIELD; + return CHAR4_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //magnitude - return CB_UINT32_FIELD; + return UINT32_FIELD; case 4: //area - return CB_UINT32_FIELD; + return UINT32_FIELD; case 5: //duration - return CB_UINT32_FIELD; + return UINT32_FIELD; case 6: //rangeType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 7: //actorValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; + return FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded()) { switch(Effects.value[ListIndex]->OBME->EFME.value.efitParamInfo) { case 1: //It's a regular formID, so nothing fancy. - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //It's a mgefCode, and not a formID at all. //Conditional resolution of mgefCode's based on JRoush's OBME mod //It's resolved just like a formID, except it uses the lower byte instead of the upper - return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; case 3: //It's an actor value, and not a formID at all. //Conditional resolution of av's based on JRoush's OBME/AV mod(s) //It's resolved just like a formID - return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; default: //It's not a formID, mgefCode, or fancied up actor value //so do nothing - return CB_UINT32_FIELD; + return UINT32_FIELD; } } else - return CB_STATIC_ACTORVALUE_FIELD; + return STATIC_ACTORVALUE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 8: //script switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; + return FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->SCIT.IsLoaded()) { switch(Effects.value[ListIndex]->OBME->EFME.value.efixParamInfo) { case 1: //It's a regular formID, so nothing fancy. - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //It's a mgefCode, and not a formID at all. //Conditional resolution of mgefCode's based on JRoush's OBME mod //It's resolved just like a formID, except it uses the lower byte instead of the upper - return Effects.value[ListIndex]->SCIT->script >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->SCIT->script >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; case 3: //It's an actor value, and not a formID at all. //Conditional resolution of av's based on JRoush's OBME/AV mod(s) //It's resolved just like a formID - return Effects.value[ListIndex]->SCIT->script >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->SCIT->script >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; default: //It's not a formID, mgefCode, or fancied up actor value //so do nothing - return CB_UINT32_FIELD; + return UINT32_FIELD; } } else - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 9: //school - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 10: //visual switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_CHAR4_FIELD; + return MGEFCODE_OR_CHAR4_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->SCIT.IsLoaded()) - return ((Effects.value[ListIndex]->SCIT->visual >= 0x80000000) ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD); + return ((Effects.value[ListIndex]->SCIT->visual >= 0x80000000) ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD); else - return CB_CHAR4_FIELD; + return CHAR4_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 11: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->SCIT.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; //OBME Fields case 14: //recordVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //betaVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //minorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //majorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //efitParamInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //efixParamInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //reserved1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->OBME.IsLoaded() ? 0xA : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 21: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 22: //efixOverrides - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 23: //efixFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 24: //baseCost - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //resistAV switch(WhichAttribute) { case 0: //fieldType - return CB_ACTORVALUE_FIELD; + return ACTORVALUE_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->OBME->EFIX.IsLoaded()) - return Effects.value[ListIndex]->OBME->EFIX->resistAV >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->OBME->EFIX->resistAV >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; else - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 26: //reserved2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->OBME->EFIX.IsLoaded() ? 0x10 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } //OBME Fields case 12: //recordVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //betaVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //minorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //majorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //reserved switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return OBME.IsLoaded() ? 0x1C : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //datx_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return (OBME.IsLoaded() && OBME->DATX.IsLoaded()) ? 0x20 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ENCHRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/EYESRecordAPI.cpp b/src/Oblivion/Records/API/EYESRecordAPI.cpp index 32d57f5..249e8ea 100644 --- a/src/Oblivion/Records/API/EYESRecordAPI.cpp +++ b/src/Oblivion/Records/API/EYESRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\EYESRecord.h" +#include "../../../Common.h" +#include "../EYESRecord.h" namespace Ob { @@ -45,23 +45,23 @@ uint32_t EYESRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * EYESRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/FACTRecordAPI.cpp b/src/Oblivion/Records/API/FACTRecordAPI.cpp index feaf126..4a5467a 100644 --- a/src/Oblivion/Records/API/FACTRecordAPI.cpp +++ b/src/Oblivion/Records/API/FACTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\FACTRecord.h" +#include "../../../Common.h" +#include "../FACTRecord.h" namespace Ob { @@ -45,80 +45,80 @@ uint32_t FACTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //relations if(ListFieldID == 0) //relations { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= XNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //faction - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //mod - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 8: //crimeGoldMultiplier - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //ranks if(ListFieldID == 0) //ranks { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)RNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= RNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 2: //male - return CB_STRING_FIELD; + return STRING_FIELD; case 3: //female - return CB_STRING_FIELD; + return STRING_FIELD; case 4: //insigniaPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * FACTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/FLORRecordAPI.cpp b/src/Oblivion/Records/API/FLORRecordAPI.cpp index 0cbbbbd..790825d 100644 --- a/src/Oblivion/Records/API/FLORRecordAPI.cpp +++ b/src/Oblivion/Records/API/FLORRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\FLORRecord.h" +#include "../../../Common.h" +#include "../FLORRecord.h" namespace Ob { @@ -45,46 +45,46 @@ uint32_t FLORRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //ingredient - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //spring - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //summer - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //fall - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //winter - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * FLORRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/FURNRecordAPI.cpp b/src/Oblivion/Records/API/FURNRecordAPI.cpp index 1a99700..69cc64e 100644 --- a/src/Oblivion/Records/API/FURNRecordAPI.cpp +++ b/src/Oblivion/Records/API/FURNRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\FURNRecord.h" +#include "../../../Common.h" +#include "../FURNRecord.h" namespace Ob { @@ -45,38 +45,38 @@ uint32_t FURNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * FURNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/GLOBRecordAPI.cpp b/src/Oblivion/Records/API/GLOBRecordAPI.cpp index 12e116b..a7413d3 100644 --- a/src/Oblivion/Records/API/GLOBRecordAPI.cpp +++ b/src/Oblivion/Records/API/GLOBRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\GLOBRecord.h" +#include "../../../Common.h" +#include "../GLOBRecord.h" namespace Ob { @@ -45,22 +45,22 @@ uint32_t GLOBRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //format - return CB_CHAR_FIELD; + return CHAR_FIELD; case 6: //value //Regardless of format, it is always stored as a float. Go figure. - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * GLOBRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/GMSTRecordAPI.cpp b/src/Oblivion/Records/API/GMSTRecordAPI.cpp index 3516afe..b5b9dec 100644 --- a/src/Oblivion/Records/API/GMSTRecordAPI.cpp +++ b/src/Oblivion/Records/API/GMSTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\GMSTRecord.h" +#include "../../../Common.h" +#include "../GMSTRecord.h" namespace Ob { @@ -45,37 +45,37 @@ uint32_t GMSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //value switch(WhichAttribute) { case 0: //fieldType - return CB_STRING_OR_FLOAT32_OR_SINT32_FIELD; + return STRING_OR_FLOAT32_OR_SINT32_FIELD; case 2: //WhichType switch(DATA.format) { case 's': - return CB_STRING_FIELD; + return STRING_FIELD; case 'i': - return CB_SINT32_FIELD; + return SINT32_FIELD; case 'f': - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * GMSTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -134,7 +134,7 @@ bool GMSTRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz delete []DATA.s; ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; DATA.s = new char[ArraySize]; - strcpy_s(DATA.s, ArraySize, (char *)FieldValue); + strncpy(DATA.s, (char *)FieldValue, ArraySize); } break; case 'i': @@ -179,7 +179,7 @@ void GMSTRecord::DeleteField(FIELD_IDENTIFIERS) { ArraySize = (uint32_t)strlen(defaultDATA.s) + 1; DATA.s = new char[ArraySize]; - strcpy_s(DATA.s, ArraySize, defaultDATA.s); + strncpy(DATA.s, defaultDATA.s, ArraySize); } return; case 'i': diff --git a/src/Oblivion/Records/API/GRASRecordAPI.cpp b/src/Oblivion/Records/API/GRASRecordAPI.cpp index f03a059..a0fbb20 100644 --- a/src/Oblivion/Records/API/GRASRecordAPI.cpp +++ b/src/Oblivion/Records/API/GRASRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\GRASRecord.h" +#include "../../../Common.h" +#include "../GRASRecord.h" namespace Ob { @@ -45,84 +45,84 @@ uint32_t GRASRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 7: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //density - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: //minSlope - return CB_UINT8_FIELD; + return UINT8_FIELD; case 10: //maxSlope - return CB_UINT8_FIELD; + return UINT8_FIELD; case 11: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //waterDistance - return CB_UINT16_FIELD; + return UINT16_FIELD; case 13: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //waterOp - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //posRange - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //heightRange - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //colorRange - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //wavePeriod - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 20: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * GRASRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/HAIRRecordAPI.cpp b/src/Oblivion/Records/API/HAIRRecordAPI.cpp index a1ef3d5..ebd22f1 100644 --- a/src/Oblivion/Records/API/HAIRRecordAPI.cpp +++ b/src/Oblivion/Records/API/HAIRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\HAIRRecord.h" +#include "../../../Common.h" +#include "../HAIRRecord.h" namespace Ob { @@ -45,38 +45,38 @@ uint32_t HAIRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * HAIRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/IDLERecordAPI.cpp b/src/Oblivion/Records/API/IDLERecordAPI.cpp index b5213ba..2690d01 100644 --- a/src/Oblivion/Records/API/IDLERecordAPI.cpp +++ b/src/Oblivion/Records/API/IDLERecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\IDLERecord.h" +#include "../../../Common.h" +#include "../IDLERecord.h" namespace Ob { @@ -47,79 +47,79 @@ uint32_t IDLERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 7: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //conditions if(ListFieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return CTDA.value[ListIndex]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -129,23 +129,23 @@ uint32_t IDLERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -155,42 +155,42 @@ uint32_t IDLERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 7: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //group - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 10: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //prevId - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * IDLERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/INFORecordAPI.cpp b/src/Oblivion/Records/API/INFORecordAPI.cpp index 3175a55..e732eb7 100644 --- a/src/Oblivion/Records/API/INFORecordAPI.cpp +++ b/src/Oblivion/Records/API/INFORecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\INFORecord.h" +#include "../../../Common.h" +#include "../INFORecord.h" namespace Ob { @@ -45,138 +45,138 @@ uint32_t INFORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //dialType - return CB_UINT16_TYPE_FIELD; + return UINT16_TYPE_FIELD; case 6: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 7: //quest - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //topic - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //prevInfo - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //addTopics switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)NAME.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //responses if(ListFieldID == 0) //responses { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Responses.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Responses.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //emotionType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 2: //emotionValue - return CB_SINT32_FIELD; + return SINT32_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //responseNum - return CB_UINT8_FIELD; + return UINT8_FIELD; case 5: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 6: //responseText - return CB_STRING_FIELD; + return STRING_FIELD; case 7: //actorNotes - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //conditions if(ListFieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return CTDA.value[ListIndex]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -186,23 +186,23 @@ uint32_t INFORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -212,102 +212,102 @@ uint32_t INFORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 7: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //choices switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)TCLT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //linksFrom switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)TCLF.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 18: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 19: //scriptType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 20: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return SCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 21: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 22: //references if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -315,21 +315,21 @@ uint32_t INFORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (SCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD); + return (SCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 23: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * INFORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/INGRRecordAPI.cpp b/src/Oblivion/Records/API/INGRRecordAPI.cpp index 0c84419..3f62287 100644 --- a/src/Oblivion/Records/API/INGRRecordAPI.cpp +++ b/src/Oblivion/Records/API/INGRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\INGRRecord.h" +#include "../../../Common.h" +#include "../INGRRecord.h" namespace Ob { @@ -45,67 +45,67 @@ uint32_t INGRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 13: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 14: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //effects if(ListFieldID == 0) //effects { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Effects.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -114,203 +114,203 @@ uint32_t INGRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_CHAR4_FIELD; + return MGEFCODE_OR_CHAR4_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded()) - return Effects.value[ListIndex]->EFID.value >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->EFID.value >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; else - return CB_CHAR4_FIELD; + return CHAR4_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //magnitude - return CB_UINT32_FIELD; + return UINT32_FIELD; case 4: //area - return CB_UINT32_FIELD; + return UINT32_FIELD; case 5: //duration - return CB_UINT32_FIELD; + return UINT32_FIELD; case 6: //rangeType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 7: //actorValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; + return FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded()) { switch(Effects.value[ListIndex]->OBME->EFME.value.efitParamInfo) { case 1: //It's a regular formID, so nothing fancy. - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //It's a mgefCode, and not a formID at all. //Conditional resolution of mgefCode's based on JRoush's OBME mod //It's resolved just like a formID, except it uses the lower byte instead of the upper - return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; case 3: //It's an actor value, and not a formID at all. //Conditional resolution of av's based on JRoush's OBME/AV mod(s) //It's resolved just like a formID - return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; default: //It's not a formID, mgefCode, or fancied up actor value //so do nothing - return CB_UINT32_FIELD; + return UINT32_FIELD; } } else - return CB_STATIC_ACTORVALUE_FIELD; + return STATIC_ACTORVALUE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 8: //script switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; + return FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->SCIT.IsLoaded()) { switch(Effects.value[ListIndex]->OBME->EFME.value.efixParamInfo) { case 1: //It's a regular formID, so nothing fancy. - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //It's a mgefCode, and not a formID at all. //Conditional resolution of mgefCode's based on JRoush's OBME mod //It's resolved just like a formID, except it uses the lower byte instead of the upper - return Effects.value[ListIndex]->SCIT->script >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->SCIT->script >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; case 3: //It's an actor value, and not a formID at all. //Conditional resolution of av's based on JRoush's OBME/AV mod(s) //It's resolved just like a formID - return Effects.value[ListIndex]->SCIT->script >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->SCIT->script >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; default: //It's not a formID, mgefCode, or fancied up actor value //so do nothing - return CB_UINT32_FIELD; + return UINT32_FIELD; } } else - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 9: //school - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 10: //visual switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_CHAR4_FIELD; + return MGEFCODE_OR_CHAR4_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->SCIT.IsLoaded()) - return ((Effects.value[ListIndex]->SCIT->visual >= 0x80000000) ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD); + return ((Effects.value[ListIndex]->SCIT->visual >= 0x80000000) ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD); else - return CB_CHAR4_FIELD; + return CHAR4_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 11: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->SCIT.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; //OBME Fields case 14: //recordVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //betaVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //minorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //majorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //efitParamInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //efixParamInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //reserved1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->OBME.IsLoaded() ? 0xA : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 21: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 22: //efixOverrides - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 23: //efixFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 24: //baseCost - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //resistAV switch(WhichAttribute) { case 0: //fieldType - return CB_ACTORVALUE_FIELD; + return ACTORVALUE_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->OBME->EFIX.IsLoaded()) - return Effects.value[ListIndex]->OBME->EFIX->resistAV >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->OBME->EFIX->resistAV >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; else - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 26: //reserved2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->OBME->EFIX.IsLoaded() ? 0x10 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } //OBME Fields case 16: //recordVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //betaVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //minorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //majorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //reserved switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return OBME.IsLoaded() ? 0x1C : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 21: //datx_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return (OBME.IsLoaded() && OBME->DATX.IsLoaded()) ? 0x20 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * INGRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/KEYMRecordAPI.cpp b/src/Oblivion/Records/API/KEYMRecordAPI.cpp index 4900019..b5f8a32 100644 --- a/src/Oblivion/Records/API/KEYMRecordAPI.cpp +++ b/src/Oblivion/Records/API/KEYMRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\KEYMRecord.h" +#include "../../../Common.h" +#include "../KEYMRecord.h" namespace Ob { @@ -45,42 +45,42 @@ uint32_t KEYMRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 12: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * KEYMRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/LANDRecordAPI.cpp b/src/Oblivion/Records/API/LANDRecordAPI.cpp index a618420..1c09ef6 100644 --- a/src/Oblivion/Records/API/LANDRecordAPI.cpp +++ b/src/Oblivion/Records/API/LANDRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LANDRecord.h" +#include "../../../Common.h" +#include "../LANDRecord.h" namespace Ob { @@ -48,35 +48,35 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_MISSING_FIELD; + return MISSING_FIELD; case 5: //data switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DATA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //normals if(ListFieldID == 0) //normals { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -85,45 +85,45 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //x - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //y - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //z - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //heightOffset - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //heights if(ListFieldID == 0) //heights { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -132,50 +132,50 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //height - return CB_SINT8_FIELD; + return SINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return VHGT.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //colors if(ListFieldID == 0) //colors { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -184,182 +184,182 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //blue - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //baseTextures if(ListFieldID == 0) //baseTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)BTXT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= BTXT.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //quadrant - return CB_SINT8_FIELD; + return SINT8_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //layer - return CB_SINT16_FIELD; + return SINT16_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //alphaLayers if(ListFieldID == 0) //alphaLayers { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Layers.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Layers.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //quadrant - return CB_SINT8_FIELD; + return SINT8_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //layer - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //opacities if(ListX2FieldID == 0) //opacities { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Layers.value[ListIndex]->VTXT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Layers.value[ListIndex]->VTXT.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //position - return CB_UINT16_FIELD; + return UINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //vertexTextures if(ListFieldID == 0) //vertexTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)VTEX.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= VTEX.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //Position if(ListFieldID == 0) //Position { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -368,79 +368,79 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //height - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 2: //normalX - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //normalY - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //normalZ - return CB_UINT8_FIELD; + return UINT8_FIELD; case 5: //red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 6: //green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 7: //blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //baseTexture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //alphaLayer1Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //alphaLayer1Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //alphaLayer2Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //alphaLayer2Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //alphaLayer3Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //alphaLayer3Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //alphaLayer4Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 16: //alphaLayer4Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //alphaLayer5Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 18: //alphaLayer5Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //alphaLayer6Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //alphaLayer6Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //alphaLayer7Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //alphaLayer7Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //alphaLayer8Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //alphaLayer8Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 15: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LANDRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/LIGHRecordAPI.cpp b/src/Oblivion/Records/API/LIGHRecordAPI.cpp index 96fb076..355bacf 100644 --- a/src/Oblivion/Records/API/LIGHRecordAPI.cpp +++ b/src/Oblivion/Records/API/LIGHRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LIGHRecord.h" +#include "../../../Common.h" +#include "../LIGHRecord.h" namespace Ob { @@ -45,73 +45,73 @@ uint32_t LIGHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 7: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 10: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 11: //duration - return CB_SINT32_FIELD; + return SINT32_FIELD; case 12: //radius - return CB_UINT32_FIELD; + return UINT32_FIELD; case 13: //red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 18: //falloff - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //fov - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //value - return CB_UINT32_FIELD; + return UINT32_FIELD; case 21: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //fade - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LIGHRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/LSCRRecordAPI.cpp b/src/Oblivion/Records/API/LSCRRecordAPI.cpp index 3f2a7c7..0b3dffa 100644 --- a/src/Oblivion/Records/API/LSCRRecordAPI.cpp +++ b/src/Oblivion/Records/API/LSCRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LSCRRecord.h" +#include "../../../Common.h" +#include "../LSCRRecord.h" namespace Ob { @@ -45,51 +45,51 @@ uint32_t LSCRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //text - return CB_STRING_FIELD; + return STRING_FIELD; case 7: //locations if(ListFieldID == 0) //locations { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)LNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= LNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //direct - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //indirect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //gridY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 4: //gridX - return CB_SINT16_FIELD; + return SINT16_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LSCRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/LTEXRecordAPI.cpp b/src/Oblivion/Records/API/LTEXRecordAPI.cpp index a7dac7d..b8c8c2d 100644 --- a/src/Oblivion/Records/API/LTEXRecordAPI.cpp +++ b/src/Oblivion/Records/API/LTEXRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LTEXRecord.h" +#include "../../../Common.h" +#include "../LTEXRecord.h" namespace Ob { @@ -45,37 +45,37 @@ uint32_t LTEXRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //types - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 7: //friction - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //restitution - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: //specular - return CB_UINT8_FIELD; + return UINT8_FIELD; case 10: //grass switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)GNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LTEXRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/LVLCRecordAPI.cpp b/src/Oblivion/Records/API/LVLCRecordAPI.cpp index 4f38903..45138a7 100644 --- a/src/Oblivion/Records/API/LVLCRecordAPI.cpp +++ b/src/Oblivion/Records/API/LVLCRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LVLCRecord.h" +#include "../../../Common.h" +#include "../LVLCRecord.h" namespace Ob { @@ -45,77 +45,77 @@ uint32_t LVLCRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //chanceNone - return CB_UINT8_FIELD; + return UINT8_FIELD; case 6: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 7: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //template - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //entries if(ListFieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //level - return CB_SINT16_FIELD; + return SINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //listId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //count - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LVLCRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/LVLIRecordAPI.cpp b/src/Oblivion/Records/API/LVLIRecordAPI.cpp index 351a322..fa8c0bf 100644 --- a/src/Oblivion/Records/API/LVLIRecordAPI.cpp +++ b/src/Oblivion/Records/API/LVLIRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LVLIRecord.h" +#include "../../../Common.h" +#include "../LVLIRecord.h" namespace Ob { @@ -45,79 +45,79 @@ uint32_t LVLIRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //chanceNone - return CB_UINT8_FIELD; + return UINT8_FIELD; case 6: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 7: //script //This field and the template field do not exist on LVLI or LVSP records //Otherwise, they are identical //This is simply a placeholder so that LVLC, LVLI, and LVSP may be read using the same FieldID's - return CB_MISSING_FIELD; + return MISSING_FIELD; case 8: //template //This field and the script field do not exist on LVLI or LVSP records //Otherwise, they are identical //This is simply a placeholder so that LVLC, LVLI, and LVSP may be read using the same FieldID's - return CB_MISSING_FIELD; + return MISSING_FIELD; case 9: //entries if(ListFieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //level - return CB_SINT16_FIELD; + return SINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //listId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //count - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LVLIRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/LVSPRecordAPI.cpp b/src/Oblivion/Records/API/LVSPRecordAPI.cpp index ce3b2bf..c4698e8 100644 --- a/src/Oblivion/Records/API/LVSPRecordAPI.cpp +++ b/src/Oblivion/Records/API/LVSPRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LVSPRecord.h" +#include "../../../Common.h" +#include "../LVSPRecord.h" namespace Ob { @@ -45,79 +45,79 @@ uint32_t LVSPRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //chanceNone - return CB_UINT8_FIELD; + return UINT8_FIELD; case 6: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 7: //script //This field and the template field do not exist on LVLI or LVSP records //Otherwise, they are identical //This is simply a placeholder so that LVLC, LVLI, and LVSP may be read using the same FieldID's - return CB_MISSING_FIELD; + return MISSING_FIELD; case 8: //template //This field and the script field do not exist on LVLI or LVSP records //Otherwise, they are identical //This is simply a placeholder so that LVLC, LVLI, and LVSP may be read using the same FieldID's - return CB_MISSING_FIELD; + return MISSING_FIELD; case 9: //entries if(ListFieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //level - return CB_SINT16_FIELD; + return SINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //listId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //count - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LVSPRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/MGEFRecordAPI.cpp b/src/Oblivion/Records/API/MGEFRecordAPI.cpp index 9d20928..cc7524e 100644 --- a/src/Oblivion/Records/API/MGEFRecordAPI.cpp +++ b/src/Oblivion/Records/API/MGEFRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\MGEFRecord.h" +#include "../../../Common.h" +#include "../MGEFRecord.h" namespace Ob { @@ -45,93 +45,93 @@ uint32_t MGEFRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //text - return CB_STRING_FIELD; + return STRING_FIELD; case 7: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 12: //baseCost - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //associated - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //school - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 15: //resistValue - return CB_UINT32_FIELD; + return UINT32_FIELD; case 16: //numCounters - return CB_UINT16_FIELD; + return UINT16_FIELD; case 17: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //light - return CB_FORMID_FIELD; + return FORMID_FIELD; case 19: //projectileSpeed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //effectShader - return CB_FORMID_FIELD; + return FORMID_FIELD; case 21: //enchantEffect - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //castingSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 23: //boltSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //hitSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 25: //areaSound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 26: //cefEnchantment - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //cefBarter - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //counterEffects if(ListFieldID == 0) //counterEffects { switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_UINT32_ARRAY_FIELD; + return MGEFCODE_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ESCE.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= ESCE.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -141,91 +141,91 @@ uint32_t MGEFRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_CHAR4_FIELD; + return MGEFCODE_OR_CHAR4_FIELD; case 2: //WhichType - return ((ESCE.value[ListIndex] >= 0x80000000) ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD); + return ((ESCE.value[ListIndex] >= 0x80000000) ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } else - return CB_CHAR4_FIELD; + return CHAR4_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } //OBME Fields case 29: //recordVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //betaVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //minorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //majorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //mgefParamAInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //mgefParamBInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 35: //reserved1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return OBME.IsLoaded() ? 0x2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 36: //handlerCode - return CB_UINT32_FIELD; + return UINT32_FIELD; case 37: //OBMEFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 38: //mgefParamB - return CB_UINT32_FIELD; + return UINT32_FIELD; case 39: //reserved2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return OBME.IsLoaded() ? 0x1C : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 40: //mgefCode switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_FIELD; + return MGEFCODE_FIELD; case 2: //WhichType if(OBME.IsLoaded()) { if(*(MGEFCODE *)&OBME->EDDX.value.mgefCode[0] >= 0x80000000) - return CB_RESOLVED_MGEFCODE_FIELD; - return CB_STATIC_MGEFCODE_FIELD; + return RESOLVED_MGEFCODE_FIELD; + return STATIC_MGEFCODE_FIELD; } else - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 41: //datx_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return (OBME.IsLoaded() && OBME->DATX.IsLoaded()) ? 0x20 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * MGEFRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/MISCRecordAPI.cpp b/src/Oblivion/Records/API/MISCRecordAPI.cpp index 330f3ce..e46b56a 100644 --- a/src/Oblivion/Records/API/MISCRecordAPI.cpp +++ b/src/Oblivion/Records/API/MISCRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\MISCRecord.h" +#include "../../../Common.h" +#include "../MISCRecord.h" namespace Ob { @@ -45,42 +45,42 @@ uint32_t MISCRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 12: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * MISCRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/NPC_RecordAPI.cpp b/src/Oblivion/Records/API/NPC_RecordAPI.cpp index 30dbcee..8bc83f7 100644 --- a/src/Oblivion/Records/API/NPC_RecordAPI.cpp +++ b/src/Oblivion/Records/API/NPC_RecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\NPC_Record.h" +#include "../../../Common.h" +#include "../NPC_Record.h" namespace Ob { @@ -45,309 +45,309 @@ uint32_t NPC_Record::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 10: //baseSpell - return CB_UINT16_FIELD; + return UINT16_FIELD; case 11: //fatigue - return CB_UINT16_FIELD; + return UINT16_FIELD; case 12: //barterGold - return CB_UINT16_FIELD; + return UINT16_FIELD; case 13: //level - return CB_SINT16_FIELD; + return SINT16_FIELD; case 14: //calcMin - return CB_UINT16_FIELD; + return UINT16_FIELD; case 15: //calcMax - return CB_UINT16_FIELD; + return UINT16_FIELD; case 16: //factions if(ListFieldID == 0) //factions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)SNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= SNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //faction - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //rank - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //deathItem - return CB_FORMID_FIELD; + return FORMID_FIELD; case 18: //race - return CB_FORMID_FIELD; + return FORMID_FIELD; case 19: //spells switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)SPLO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 21: //items if(ListFieldID == 0) //items { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CNTO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= CNTO.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //item - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //aggression - return CB_UINT8_FIELD; + return UINT8_FIELD; case 23: //confidence - return CB_UINT8_FIELD; + return UINT8_FIELD; case 24: //energyLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 25: //responsibility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 26: //services - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 27: //trainSkill - return CB_SINT8_FIELD; + return SINT8_FIELD; case 28: //trainLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 29: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //aiPackages switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PKID.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 31: //animations switch(WhichAttribute) { case 0: //fieldType - return CB_ISTRING_ARRAY_FIELD; + return ISTRING_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)KFFZ.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //iclass - return CB_FORMID_FIELD; + return FORMID_FIELD; case 33: //armorer - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //athletics - return CB_UINT8_FIELD; + return UINT8_FIELD; case 35: //blade - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //block - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //blunt - return CB_UINT8_FIELD; + return UINT8_FIELD; case 38: //h2h - return CB_UINT8_FIELD; + return UINT8_FIELD; case 39: //heavyArmor - return CB_UINT8_FIELD; + return UINT8_FIELD; case 40: //alchemy - return CB_UINT8_FIELD; + return UINT8_FIELD; case 41: //alteration - return CB_UINT8_FIELD; + return UINT8_FIELD; case 42: //conjuration - return CB_UINT8_FIELD; + return UINT8_FIELD; case 43: //destruction - return CB_UINT8_FIELD; + return UINT8_FIELD; case 44: //illusion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 45: //mysticism - return CB_UINT8_FIELD; + return UINT8_FIELD; case 46: //restoration - return CB_UINT8_FIELD; + return UINT8_FIELD; case 47: //acrobatics - return CB_UINT8_FIELD; + return UINT8_FIELD; case 48: //lightArmor - return CB_UINT8_FIELD; + return UINT8_FIELD; case 49: //marksman - return CB_UINT8_FIELD; + return UINT8_FIELD; case 50: //mercantile - return CB_UINT8_FIELD; + return UINT8_FIELD; case 51: //security - return CB_UINT8_FIELD; + return UINT8_FIELD; case 52: //sneak - return CB_UINT8_FIELD; + return UINT8_FIELD; case 53: //speechcraft - return CB_UINT8_FIELD; + return UINT8_FIELD; case 54: //health - return CB_UINT16_FIELD; + return UINT16_FIELD; case 55: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 56: //strength - return CB_UINT8_FIELD; + return UINT8_FIELD; case 57: //intelligence - return CB_UINT8_FIELD; + return UINT8_FIELD; case 58: //willpower - return CB_UINT8_FIELD; + return UINT8_FIELD; case 59: //agility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 60: //speed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 61: //endurance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 62: //personality - return CB_UINT8_FIELD; + return UINT8_FIELD; case 63: //luck - return CB_UINT8_FIELD; + return UINT8_FIELD; case 64: //hair - return CB_FORMID_FIELD; + return FORMID_FIELD; case 65: //hairLength - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 66: //eye - return CB_FORMID_FIELD; + return FORMID_FIELD; case 67: //hairRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 68: //hairGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 69: //hairBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 70: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 71: //combatStyle - return CB_FORMID_FIELD; + return FORMID_FIELD; case 72: //fggs_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return FGGS.IsLoaded() ? 200 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 73: //fgga_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return FGGA.IsLoaded() ? 120 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 74: //fgts_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return FGTS.IsLoaded() ? 200 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 75: //fnam - return CB_UINT16_FIELD; + return UINT16_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * NPC_Record::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/PACKRecordAPI.cpp b/src/Oblivion/Records/API/PACKRecordAPI.cpp index c7d1577..c383f0e 100644 --- a/src/Oblivion/Records/API/PACKRecordAPI.cpp +++ b/src/Oblivion/Records/API/PACKRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\PACKRecord.h" +#include "../../../Common.h" +#include "../PACKRecord.h" namespace Ob { @@ -47,119 +47,119 @@ uint32_t PACKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 6: //aiType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 7: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //locType - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 9: //locId switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (PLDT.IsLoaded() && (PLDT->locType < 2 || PLDT->locType == 4)) ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return (PLDT.IsLoaded() && (PLDT->locType < 2 || PLDT->locType == 4)) ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //locRadius - return CB_SINT32_FIELD; + return SINT32_FIELD; case 11: //month - return CB_SINT8_FIELD; + return SINT8_FIELD; case 12: //day - return CB_SINT8_FIELD; + return SINT8_FIELD; case 13: //date - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //time - return CB_SINT8_FIELD; + return SINT8_FIELD; case 15: //duration - return CB_SINT32_FIELD; + return SINT32_FIELD; case 16: //targetType - return CB_SINT32_TYPE_FIELD; + return SINT32_TYPE_FIELD; case 17: //targetId switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (PTDT.IsLoaded() && PTDT->targetType != 2) ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return (PTDT.IsLoaded() && PTDT->targetType != 2) ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //targetCount - return CB_SINT32_FIELD; + return SINT32_FIELD; case 19: //conditions if(ListFieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return CTDA.value[ListIndex]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -169,23 +169,23 @@ uint32_t PACKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -195,36 +195,36 @@ uint32_t PACKRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 7: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * PACKRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/PGRDRecordAPI.cpp b/src/Oblivion/Records/API/PGRDRecordAPI.cpp index ec9f020..561c62a 100644 --- a/src/Oblivion/Records/API/PGRDRecordAPI.cpp +++ b/src/Oblivion/Records/API/PGRDRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\PGRDRecord.h" +#include "../../../Common.h" +#include "../PGRDRecord.h" namespace Ob { @@ -45,160 +45,160 @@ uint32_t PGRDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_MISSING_FIELD; + return MISSING_FIELD; case 5: //count - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //pgrp if(ListFieldID == 0) //pgrp { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)PGRP.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= PGRP.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //x - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 2: //y - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 3: //z - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 4: //connections - return CB_UINT8_FIELD; + return UINT8_FIELD; case 5: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //pgag_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return PGAG.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //pgrr_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return PGRR.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //pgri if(ListFieldID == 0) //pgri { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)PGRI.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= PGRI.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //point - return CB_UINT16_FIELD; + return UINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //x - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 4: //y - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 5: //z - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //pgrl if(ListFieldID == 0) //pgrl { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)PGRL.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= PGRL.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //reference - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //points switch(WhichAttribute) { case 0: //fieldType - return CB_UINT32_ARRAY_FIELD; + return UINT32_ARRAY_FIELD; case 1: //fieldSize //The first entry in the points array is actually the reference return (uint32_t)PGRL.value[ListIndex]->points.value.size() - 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 11: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * PGRDRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/QUSTRecordAPI.cpp b/src/Oblivion/Records/API/QUSTRecordAPI.cpp index d9fd239..9ca2900 100644 --- a/src/Oblivion/Records/API/QUSTRecordAPI.cpp +++ b/src/Oblivion/Records/API/QUSTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\QUSTRecord.h" +#include "../../../Common.h" +#include "../QUSTRecord.h" namespace Ob { @@ -45,74 +45,74 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 6: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 7: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 9: //priority - return CB_UINT8_FIELD; + return UINT8_FIELD; case 10: //conditions if(ListFieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return CTDA.value[ListIndex]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return CTDA.value[ListIndex]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -122,23 +122,23 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(CTDA.value[ListIndex]->ifunc); @@ -148,125 +148,125 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 7: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //stages if(ListFieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Stages.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Stages.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //stage - return CB_UINT16_FIELD; + return UINT16_FIELD; case 2: //entries if(ListX2FieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Stages.value[ListIndex]->Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Stages.value[ListIndex]->Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 2: //conditions if(ListX3FieldID == 0) //conditions { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX3Index >= Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX3FieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->ifunc); @@ -276,23 +276,23 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(Stages.value[ListIndex]->Entries.value[ListX2Index]->CTDA.value[ListX3Index]->ifunc); @@ -302,80 +302,80 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 7: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //text - return CB_STRING_FIELD; + return STRING_FIELD; case 4: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 5: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 6: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 7: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //scriptType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 9: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Stages.value[ListIndex]->Entries.value[ListX2Index]->SCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 10: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 11: //references if(ListX3FieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)Stages.value[ListIndex]->Entries.value[ListX2Index]->SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX3Index >= Stages.value[ListIndex]->Entries.value[ListX2Index]->SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX3FieldID) { @@ -383,54 +383,54 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (Stages.value[ListIndex]->Entries.value[ListX2Index]->SCR_.value[ListX3Index]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD); + return (Stages.value[ListIndex]->Entries.value[ListX2Index]->SCR_.value[ListX3Index]->isSCRO ? FORMID_FIELD : UINT32_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //targets if(ListFieldID == 0) //targets { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Targets.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Targets.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //targetId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //conditions if(ListX2FieldID == 0) //conditions @@ -438,51 +438,51 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Targets.value[ListIndex]->CTDA.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListX2Index >= Targets.value[ListIndex]->CTDA.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; + return UINT8_FLAG_TYPE_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //compValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; + return FORMID_OR_FLOAT32_FIELD; case 2: //WhichType - return Targets.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; + return Targets.value[ListIndex]->CTDA.value[ListX2Index]->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //ifunc - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 5: //param1 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(Targets.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -492,23 +492,23 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.first) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 6: //param2 switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType { Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(Targets.value[ListIndex]->CTDA.value[ListX2Index]->ifunc); @@ -518,40 +518,40 @@ uint32_t QUSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(CTDAFunction.second) { case eFORMID: - return CB_FORMID_FIELD; + return FORMID_FIELD; case eUINT32: - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 7: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * QUSTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/RACERecordAPI.cpp b/src/Oblivion/Records/API/RACERecordAPI.cpp index 52336bc..9365523 100644 --- a/src/Oblivion/Records/API/RACERecordAPI.cpp +++ b/src/Oblivion/Records/API/RACERecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\RACERecord.h" +#include "../../../Common.h" +#include "../RACERecord.h" namespace Ob { @@ -45,422 +45,422 @@ uint32_t RACERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //text - return CB_STRING_FIELD; + return STRING_FIELD; case 7: //spells switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)SPLO.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //relations if(ListFieldID == 0) //relations { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)XNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= XNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //faction - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //mod - return CB_SINT32_FIELD; + return SINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //skill1 - return CB_SINT8_FIELD; + return SINT8_FIELD; case 10: //skill1Boost - return CB_SINT8_FIELD; + return SINT8_FIELD; case 11: //skill2 - return CB_SINT8_FIELD; + return SINT8_FIELD; case 12: //skill2Boost - return CB_SINT8_FIELD; + return SINT8_FIELD; case 13: //skill3 - return CB_SINT8_FIELD; + return SINT8_FIELD; case 14: //skill3Boost - return CB_SINT8_FIELD; + return SINT8_FIELD; case 15: //skill4 - return CB_SINT8_FIELD; + return SINT8_FIELD; case 16: //skill4Boost - return CB_SINT8_FIELD; + return SINT8_FIELD; case 17: //skill5 - return CB_SINT8_FIELD; + return SINT8_FIELD; case 18: //skill5Boost - return CB_SINT8_FIELD; + return SINT8_FIELD; case 19: //skill6 - return CB_SINT8_FIELD; + return SINT8_FIELD; case 20: //skill6Boost - return CB_SINT8_FIELD; + return SINT8_FIELD; case 21: //skill7 - return CB_SINT8_FIELD; + return SINT8_FIELD; case 22: //skill7Boost - return CB_SINT8_FIELD; + return SINT8_FIELD; case 23: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //maleHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //femaleHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //maleWeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //femaleWeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 29: //maleVoice - return CB_FORMID_FIELD; + return FORMID_FIELD; case 30: //femaleVoice - return CB_FORMID_FIELD; + return FORMID_FIELD; case 31: //defaultHairMale - return CB_FORMID_FIELD; + return FORMID_FIELD; case 32: //defaultHairFemale - return CB_FORMID_FIELD; + return FORMID_FIELD; case 33: //defaultHairColor - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //mainClamp - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 35: //faceClamp - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 36: //maleStrength - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //maleIntelligence - return CB_UINT8_FIELD; + return UINT8_FIELD; case 38: //maleWillpower - return CB_UINT8_FIELD; + return UINT8_FIELD; case 39: //maleAgility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 40: //maleSpeed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 41: //maleEndurance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 42: //malePersonality - return CB_UINT8_FIELD; + return UINT8_FIELD; case 43: //maleLuck - return CB_UINT8_FIELD; + return UINT8_FIELD; case 44: //femaleStrength - return CB_UINT8_FIELD; + return UINT8_FIELD; case 45: //femaleIntelligence - return CB_UINT8_FIELD; + return UINT8_FIELD; case 46: //femaleWillpower - return CB_UINT8_FIELD; + return UINT8_FIELD; case 47: //femaleAgility - return CB_UINT8_FIELD; + return UINT8_FIELD; case 48: //femaleSpeed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 49: //femaleEndurance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 50: //femalePersonality - return CB_UINT8_FIELD; + return UINT8_FIELD; case 51: //femaleLuck - return CB_UINT8_FIELD; + return UINT8_FIELD; case 52: //head_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 53: //head_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 54: //head_iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 55: //head_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD0.IsLoaded() ? MOD0->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 56: //maleEars_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 57: //maleEars_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 58: //maleEars_iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 59: //maleEars_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD1.IsLoaded() ? MOD1->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 60: //femaleEars_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 61: //femaleEars_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 62: //femaleEars_iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 63: //femaleEars_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD2.IsLoaded() ? MOD2->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 64: //mouth_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 65: //mouth_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 66: //mouth_iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 67: //mouth_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD3.IsLoaded() ? MOD3->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 68: //teethLower_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 69: //teethLower_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 70: //teethLower_iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 71: //teethLower_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD4.IsLoaded() ? MOD4->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 72: //teethUpper_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 73: //teethUpper_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 74: //teethUpper_iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 75: //teethUpper_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD5.IsLoaded() ? MOD5->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 76: //tongue_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 77: //tongue_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 78: //tongue_iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 79: //tongue_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD6.IsLoaded() ? MOD6->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 80: //leftEye_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 81: //leftEye_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 82: //leftEye_iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 83: //leftEye_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD7.IsLoaded() ? MOD7->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 84: //rightEye_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 85: //rightEye_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 86: //rightEye_iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 87: //rightEye_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MOD8.IsLoaded() ? MOD8->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 88: //maleTail_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 89: //maleTail_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 90: //maleTail_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MMODL.IsLoaded() ? MMODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 91: //maleUpperBodyPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 92: //maleLowerBodyPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 93: //maleHandPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 94: //maleFootPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 95: //maleTailPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 96: //femaleTail_modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 97: //femaleTail_modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 98: //femaleTail_modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return FMODL.IsLoaded() ? FMODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 99: //femaleUpperBodyPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 100: //femaleLowerBodyPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 101: //femaleHandPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 102: //femaleFootPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 103: //femaleTailPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 104: //hairs switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)HNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 105: //eyes switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ENAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 106: //fggs_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return FGGS.IsLoaded() ? 200 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 107: //fgga_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return FGGA.IsLoaded() ? 120 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 108: //fgts_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return FGTS.IsLoaded() ? 200 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 109: //snam_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * RACERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/REFRRecordAPI.cpp b/src/Oblivion/Records/API/REFRRecordAPI.cpp index 780251f..33d7f5f 100644 --- a/src/Oblivion/Records/API/REFRRecordAPI.cpp +++ b/src/Oblivion/Records/API/REFRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\REFRRecord.h" +#include "../../../Common.h" +#include "../REFRRecord.h" namespace Ob { @@ -45,165 +45,165 @@ uint32_t REFRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //base - return CB_FORMID_FIELD; + return FORMID_FIELD; case 6: //destination - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //destinationPosX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //destinationPosY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //destinationPosZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //destinationRotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 11: //destinationRotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 12: //destinationRotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 13: //lockLevel - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Data.IsLoaded() && Data->XLOC.IsLoaded() ? 3: 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //lockKey - return CB_FORMID_FIELD; + return FORMID_FIELD; case 16: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Data.IsLoaded() && Data->XLOC.IsLoaded() ? 4: 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //lockFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 18: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Data.IsLoaded() && Data->XLOC.IsLoaded() ? 3: 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 19: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 21: //globalVariable - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 23: //parentFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 24: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Data.IsLoaded() && Data->XESP.IsLoaded() ? 3: 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //target - return CB_FORMID_FIELD; + return FORMID_FIELD; case 26: //seed switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_OR_UINT32_FIELD; + return UINT8_OR_UINT32_FIELD; case 2: //WhichType if(Data.IsLoaded() && Data->XSED.IsLoaded()) - return Data->XSED->isOffset ? CB_UINT8_FIELD : CB_UINT32_FIELD; - return CB_UINT32_FIELD; + return Data->XSED->isOffset ? UINT8_FIELD : UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 27: //lod1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //lod2 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //lod3 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //charge - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //health - return CB_SINT32_FIELD; + return SINT32_FIELD; case 32: //unknownXPCIFormID - return CB_FORMID_FIELD; + return FORMID_FIELD; case 33: //unknownXPCIString - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 34: //levelMod - return CB_SINT32_FIELD; + return SINT32_FIELD; case 35: //unknownXRTMFormID - return CB_FORMID_FIELD; + return FORMID_FIELD; case 36: //actionFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 37: //count - return CB_SINT32_FIELD; + return SINT32_FIELD; case 38: //markerFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 39: //markerName - return CB_STRING_FIELD; + return STRING_FIELD; case 40: //markerType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 41: //markerUnused switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Data.IsLoaded() && Data->Marker.IsLoaded() ? 1: 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 42: //scale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 43: //soulType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 44: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 45: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 46: //posZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 47: //rotX - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 48: //rotY - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 49: //rotZ - return CB_RADIAN_FIELD; + return RADIAN_FIELD; case 50: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * REFRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/REGNRecordAPI.cpp b/src/Oblivion/Records/API/REGNRecordAPI.cpp index 4568f51..0f68c3a 100644 --- a/src/Oblivion/Records/API/REGNRecordAPI.cpp +++ b/src/Oblivion/Records/API/REGNRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\REGNRecord.h" +#include "../../../Common.h" +#include "../REGNRecord.h" namespace Ob { @@ -45,119 +45,119 @@ uint32_t REGNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //mapRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 7: //mapGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //mapBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //worldspace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //areas if(ListFieldID == 0) //areas { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Areas.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Areas.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //edgeFalloff - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //points if(ListX2FieldID == 0) //points { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Areas.value[ListIndex]->RPLD.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Areas.value[ListIndex]->RPLD.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //posX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 2: //posY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //entries if(ListFieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //entryType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 2: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 3: //priority - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 5: //objects if(ListX2FieldID == 0) //points @@ -165,161 +165,161 @@ uint32_t REGNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value[ListIndex]->RDOT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Entries.value[ListIndex]->RDOT.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //objectId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //parentIndex - return CB_UINT16_FIELD; + return UINT16_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //density - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 5: //clustering - return CB_UINT8_FIELD; + return UINT8_FIELD; case 6: //minSlope - return CB_UINT8_FIELD; + return UINT8_FIELD; case 7: //maxSlope - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 9: //radiusWRTParent - return CB_UINT16_FIELD; + return UINT16_FIELD; case 10: //radius - return CB_UINT16_FIELD; + return UINT16_FIELD; case 11: //unk1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 12: //maxHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //sink - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 14: //sinkVar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //sizeVar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //angleVarX - return CB_UINT16_FIELD; + return UINT16_FIELD; case 17: //angleVarY - return CB_UINT16_FIELD; + return UINT16_FIELD; case 18: //angleVarZ - return CB_UINT16_FIELD; + return UINT16_FIELD; case 19: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 20: //unk2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 6: //mapName - return CB_STRING_FIELD; + return STRING_FIELD; case 7: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //grasses if(ListX2FieldID == 0) //grasses { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value[ListIndex]->RDGS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Entries.value[ListIndex]->RDGS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //grass - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //unk1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 9: //musicType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 10: //sounds if(ListX2FieldID == 0) //sounds { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value[ListIndex]->RDSD.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Entries.value[ListIndex]->RDSD.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 3: //chance - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 11: //weathers if(ListX2FieldID == 0) //weathers @@ -327,33 +327,33 @@ uint32_t REGNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value[ListIndex]->RDWT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Entries.value[ListIndex]->RDWT.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //weather - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //chance - return CB_UINT32_FIELD; + return UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * REGNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/ROADRecordAPI.cpp b/src/Oblivion/Records/API/ROADRecordAPI.cpp index df3d7b3..38c262b 100644 --- a/src/Oblivion/Records/API/ROADRecordAPI.cpp +++ b/src/Oblivion/Records/API/ROADRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ROADRecord.h" +#include "../../../Common.h" +#include "../ROADRecord.h" namespace Ob { @@ -45,88 +45,88 @@ uint32_t ROADRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_MISSING_FIELD; + return MISSING_FIELD; case 5: //pgrp if(ListFieldID == 0) //pgrp { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)PGRP.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= PGRP.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //x - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 2: //y - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 3: //z - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 4: //connections - return CB_UINT8_FIELD; + return UINT8_FIELD; case 5: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //pgrr if(ListFieldID == 0) //pgrr { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)PGRR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= PGRR.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //x - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 2: //y - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 3: //z - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 7: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ROADRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/SBSPRecordAPI.cpp b/src/Oblivion/Records/API/SBSPRecordAPI.cpp index 594464f..c3b9be9 100644 --- a/src/Oblivion/Records/API/SBSPRecordAPI.cpp +++ b/src/Oblivion/Records/API/SBSPRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SBSPRecord.h" +#include "../../../Common.h" +#include "../SBSPRecord.h" namespace Ob { @@ -45,23 +45,23 @@ uint32_t SBSPRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //sizeX - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 6: //sizeY - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 7: //sizeZ - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SBSPRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/SCPTRecordAPI.cpp b/src/Oblivion/Records/API/SCPTRecordAPI.cpp index 6cb3d13..1cd4903 100644 --- a/src/Oblivion/Records/API/SCPTRecordAPI.cpp +++ b/src/Oblivion/Records/API/SCPTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SCPTRecord.h" +#include "../../../Common.h" +#include "../SCPTRecord.h" namespace Ob { @@ -45,110 +45,110 @@ uint32_t SCPTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //numRefs - return CB_UINT32_FIELD; + return UINT32_FIELD; case 7: //compiledSize - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //lastIndex - return CB_UINT32_FIELD; + return UINT32_FIELD; case 9: //scriptType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 10: //compiled_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return SCDA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //scriptText - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 12: //vars if(ListFieldID == 0) //vars { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)VARS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= VARS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //index - return CB_UINT32_FIELD; + return UINT32_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 12; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 4: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 7; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 5: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //references if(ListFieldID == 0) //references { switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_ARRAY_FIELD; + return FORMID_OR_UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)SCR_.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= SCR_.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -156,19 +156,19 @@ uint32_t SCPTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_UINT32_FIELD; + return FORMID_OR_UINT32_FIELD; case 2: //WhichType - return (SCR_.value[ListIndex]->isSCRO ? CB_FORMID_FIELD : CB_UINT32_FIELD); + return (SCR_.value[ListIndex]->isSCRO ? FORMID_FIELD : UINT32_FIELD); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SCPTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/SGSTRecordAPI.cpp b/src/Oblivion/Records/API/SGSTRecordAPI.cpp index c92c7aa..29e570e 100644 --- a/src/Oblivion/Records/API/SGSTRecordAPI.cpp +++ b/src/Oblivion/Records/API/SGSTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SGSTRecord.h" +#include "../../../Common.h" +#include "../SGSTRecord.h" namespace Ob { @@ -45,50 +45,50 @@ uint32_t SGSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //effects if(ListFieldID == 0) //effects { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Effects.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -97,210 +97,210 @@ uint32_t SGSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_CHAR4_FIELD; + return MGEFCODE_OR_CHAR4_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded()) - return Effects.value[ListIndex]->EFID.value >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->EFID.value >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; else - return CB_CHAR4_FIELD; + return CHAR4_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //magnitude - return CB_UINT32_FIELD; + return UINT32_FIELD; case 4: //area - return CB_UINT32_FIELD; + return UINT32_FIELD; case 5: //duration - return CB_UINT32_FIELD; + return UINT32_FIELD; case 6: //rangeType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 7: //actorValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; + return FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded()) { switch(Effects.value[ListIndex]->OBME->EFME.value.efitParamInfo) { case 1: //It's a regular formID, so nothing fancy. - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //It's a mgefCode, and not a formID at all. //Conditional resolution of mgefCode's based on JRoush's OBME mod //It's resolved just like a formID, except it uses the lower byte instead of the upper - return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; case 3: //It's an actor value, and not a formID at all. //Conditional resolution of av's based on JRoush's OBME/AV mod(s) //It's resolved just like a formID - return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; default: //It's not a formID, mgefCode, or fancied up actor value //so do nothing - return CB_UINT32_FIELD; + return UINT32_FIELD; } } else - return CB_STATIC_ACTORVALUE_FIELD; + return STATIC_ACTORVALUE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 8: //script switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; + return FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->SCIT.IsLoaded()) { switch(Effects.value[ListIndex]->OBME->EFME.value.efixParamInfo) { case 1: //It's a regular formID, so nothing fancy. - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //It's a mgefCode, and not a formID at all. //Conditional resolution of mgefCode's based on JRoush's OBME mod //It's resolved just like a formID, except it uses the lower byte instead of the upper - return Effects.value[ListIndex]->SCIT->script >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->SCIT->script >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; case 3: //It's an actor value, and not a formID at all. //Conditional resolution of av's based on JRoush's OBME/AV mod(s) //It's resolved just like a formID - return Effects.value[ListIndex]->SCIT->script >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->SCIT->script >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; default: //It's not a formID, mgefCode, or fancied up actor value //so do nothing - return CB_UINT32_FIELD; + return UINT32_FIELD; } } else - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 9: //school - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 10: //visual switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_CHAR4_FIELD; + return MGEFCODE_OR_CHAR4_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->SCIT.IsLoaded()) - return ((Effects.value[ListIndex]->SCIT->visual >= 0x80000000) ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD); + return ((Effects.value[ListIndex]->SCIT->visual >= 0x80000000) ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD); else - return CB_CHAR4_FIELD; + return CHAR4_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 11: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->SCIT.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; //OBME Fields case 14: //recordVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //betaVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //minorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //majorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //efitParamInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //efixParamInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //reserved1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->OBME.IsLoaded() ? 0xA : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 21: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 22: //efixOverrides - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 23: //efixFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 24: //baseCost - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //resistAV switch(WhichAttribute) { case 0: //fieldType - return CB_ACTORVALUE_FIELD; + return ACTORVALUE_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->OBME->EFIX.IsLoaded()) - return Effects.value[ListIndex]->OBME->EFIX->resistAV >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->OBME->EFIX->resistAV >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; else - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 26: //reserved2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->OBME->EFIX.IsLoaded() ? 0x10 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //uses - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 14: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; //OBME Fields case 15: //recordVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //betaVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //minorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //majorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //reserved switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return OBME.IsLoaded() ? 0x1C : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //datx_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return (OBME.IsLoaded() && OBME->DATX.IsLoaded()) ? 0x20 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SGSTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/SKILRecordAPI.cpp b/src/Oblivion/Records/API/SKILRecordAPI.cpp index 2eda07f..da708da 100644 --- a/src/Oblivion/Records/API/SKILRecordAPI.cpp +++ b/src/Oblivion/Records/API/SKILRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SKILRecord.h" +#include "../../../Common.h" +#include "../SKILRecord.h" namespace Ob { @@ -45,41 +45,41 @@ uint32_t SKILRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //skill - return CB_SINT32_FIELD; + return SINT32_FIELD; case 6: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 7: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //action - return CB_SINT32_FIELD; + return SINT32_FIELD; case 9: //attribute - return CB_SINT32_FIELD; + return SINT32_FIELD; case 10: //specialization - return CB_UINT32_FIELD; + return UINT32_FIELD; case 11: //use0 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //use1 - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //apprentice - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //journeyman - return CB_STRING_FIELD; + return STRING_FIELD; case 15: //expert - return CB_STRING_FIELD; + return STRING_FIELD; case 16: //master - return CB_STRING_FIELD; + return STRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SKILRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/SLGMRecordAPI.cpp b/src/Oblivion/Records/API/SLGMRecordAPI.cpp index a9ad48a..9dc0d29 100644 --- a/src/Oblivion/Records/API/SLGMRecordAPI.cpp +++ b/src/Oblivion/Records/API/SLGMRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SLGMRecord.h" +#include "../../../Common.h" +#include "../SLGMRecord.h" namespace Ob { @@ -45,46 +45,46 @@ uint32_t SLGMRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //value - return CB_SINT32_FIELD; + return SINT32_FIELD; case 12: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //soulType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 14: //capacity - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SLGMRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/SOUNRecordAPI.cpp b/src/Oblivion/Records/API/SOUNRecordAPI.cpp index c7a7d09..d58ee6d 100644 --- a/src/Oblivion/Records/API/SOUNRecordAPI.cpp +++ b/src/Oblivion/Records/API/SOUNRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SOUNRecord.h" +#include "../../../Common.h" +#include "../SOUNRecord.h" namespace Ob { @@ -45,55 +45,55 @@ uint32_t SOUNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //soundPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //minDistance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 7: //maxDistance - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //freqAdjustment - return CB_SINT8_FIELD; + return SINT8_FIELD; case 9: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //flags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 11: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //staticAtten - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //stopTime - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //startTime - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SOUNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/SPELRecordAPI.cpp b/src/Oblivion/Records/API/SPELRecordAPI.cpp index 8ed5ce8..bbac7b1 100644 --- a/src/Oblivion/Records/API/SPELRecordAPI.cpp +++ b/src/Oblivion/Records/API/SPELRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\SPELRecord.h" +#include "../../../Common.h" +#include "../SPELRecord.h" namespace Ob { @@ -45,50 +45,50 @@ uint32_t SPELRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //spellType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 7: //cost - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //levelType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 9: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 10: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //effects if(ListFieldID == 0) //effects { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Effects.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Effects.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { @@ -97,203 +97,203 @@ uint32_t SPELRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_CHAR4_FIELD; + return MGEFCODE_OR_CHAR4_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded()) - return Effects.value[ListIndex]->EFID.value >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->EFID.value >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; else - return CB_CHAR4_FIELD; + return CHAR4_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //magnitude - return CB_UINT32_FIELD; + return UINT32_FIELD; case 4: //area - return CB_UINT32_FIELD; + return UINT32_FIELD; case 5: //duration - return CB_UINT32_FIELD; + return UINT32_FIELD; case 6: //rangeType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 7: //actorValue switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; + return FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded()) { switch(Effects.value[ListIndex]->OBME->EFME.value.efitParamInfo) { case 1: //It's a regular formID, so nothing fancy. - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //It's a mgefCode, and not a formID at all. //Conditional resolution of mgefCode's based on JRoush's OBME mod //It's resolved just like a formID, except it uses the lower byte instead of the upper - return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; case 3: //It's an actor value, and not a formID at all. //Conditional resolution of av's based on JRoush's OBME/AV mod(s) //It's resolved just like a formID - return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->EFIT.value.actorValue >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; default: //It's not a formID, mgefCode, or fancied up actor value //so do nothing - return CB_UINT32_FIELD; + return UINT32_FIELD; } } else - return CB_STATIC_ACTORVALUE_FIELD; + return STATIC_ACTORVALUE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 8: //script switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; + return FORMID_OR_MGEFCODE_OR_ACTORVALUE_OR_UINT32_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->SCIT.IsLoaded()) { switch(Effects.value[ListIndex]->OBME->EFME.value.efixParamInfo) { case 1: //It's a regular formID, so nothing fancy. - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //It's a mgefCode, and not a formID at all. //Conditional resolution of mgefCode's based on JRoush's OBME mod //It's resolved just like a formID, except it uses the lower byte instead of the upper - return Effects.value[ListIndex]->SCIT->script >= 0x80000000 ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD; + return Effects.value[ListIndex]->SCIT->script >= 0x80000000 ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD; case 3: //It's an actor value, and not a formID at all. //Conditional resolution of av's based on JRoush's OBME/AV mod(s) //It's resolved just like a formID - return Effects.value[ListIndex]->SCIT->script >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->SCIT->script >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; default: //It's not a formID, mgefCode, or fancied up actor value //so do nothing - return CB_UINT32_FIELD; + return UINT32_FIELD; } } else - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 9: //school - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 10: //visual switch(WhichAttribute) { case 0: //fieldType - return CB_MGEFCODE_OR_CHAR4_FIELD; + return MGEFCODE_OR_CHAR4_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->SCIT.IsLoaded()) - return ((Effects.value[ListIndex]->SCIT->visual >= 0x80000000) ? CB_RESOLVED_MGEFCODE_FIELD : CB_STATIC_MGEFCODE_FIELD); + return ((Effects.value[ListIndex]->SCIT->visual >= 0x80000000) ? RESOLVED_MGEFCODE_FIELD : STATIC_MGEFCODE_FIELD); else - return CB_CHAR4_FIELD; + return CHAR4_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 11: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 12: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->SCIT.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; //OBME Fields case 14: //recordVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //betaVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //minorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //majorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //efitParamInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //efixParamInfo - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //reserved1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->OBME.IsLoaded() ? 0xA : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 21: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 22: //efixOverrides - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 23: //efixFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 24: //baseCost - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //resistAV switch(WhichAttribute) { case 0: //fieldType - return CB_ACTORVALUE_FIELD; + return ACTORVALUE_FIELD; case 2: //WhichType if(Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->OBME->EFIX.IsLoaded()) - return Effects.value[ListIndex]->OBME->EFIX->resistAV >= 0x800 ? CB_RESOLVED_ACTORVALUE_FIELD : CB_STATIC_ACTORVALUE_FIELD; + return Effects.value[ListIndex]->OBME->EFIX->resistAV >= 0x800 ? RESOLVED_ACTORVALUE_FIELD : STATIC_ACTORVALUE_FIELD; else - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 26: //reserved2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return Effects.value[ListIndex]->OBME.IsLoaded() && Effects.value[ListIndex]->OBME->EFIX.IsLoaded() ? 0x10 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } //OBME Fields case 12: //recordVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //betaVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //minorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //majorVersion - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //reserved switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return OBME.IsLoaded() ? 0x1C : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 17: //datx_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return (OBME.IsLoaded() && OBME->DATX.IsLoaded()) ? 0x20 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SPELRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/STATRecordAPI.cpp b/src/Oblivion/Records/API/STATRecordAPI.cpp index b79f6e9..1ac0f7e 100644 --- a/src/Oblivion/Records/API/STATRecordAPI.cpp +++ b/src/Oblivion/Records/API/STATRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\STATRecord.h" +#include "../../../Common.h" +#include "../STATRecord.h" namespace Ob { @@ -45,31 +45,31 @@ uint32_t STATRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 7: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * STATRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/TREERecordAPI.cpp b/src/Oblivion/Records/API/TREERecordAPI.cpp index 25550da..eaa2d4c 100644 --- a/src/Oblivion/Records/API/TREERecordAPI.cpp +++ b/src/Oblivion/Records/API/TREERecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\TREERecord.h" +#include "../../../Common.h" +#include "../TREERecord.h" namespace Ob { @@ -45,65 +45,65 @@ uint32_t TREERecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 7: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //speedTree switch(WhichAttribute) { case 0: //fieldType - return CB_UINT32_ARRAY_FIELD; + return UINT32_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)SNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //curvature - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //minAngle - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //maxAngle - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //branchDim - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 14: //leafDim - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //shadowRadius - return CB_SINT32_FIELD; + return SINT32_FIELD; case 16: //rockSpeed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //rustleSpeed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //widthBill - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //heightBill - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * TREERecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/WATRRecordAPI.cpp b/src/Oblivion/Records/API/WATRRecordAPI.cpp index 6e95bfa..8ccfd46 100644 --- a/src/Oblivion/Records/API/WATRRecordAPI.cpp +++ b/src/Oblivion/Records/API/WATRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\WATRRecord.h" +#include "../../../Common.h" +#include "../WATRRecord.h" namespace Ob { @@ -45,141 +45,141 @@ uint32_t WATRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //texturePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //opacity - return CB_UINT8_FIELD; + return UINT8_FIELD; case 7: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 8: //materialPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 9: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //windVelocity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //windDirection - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //waveAmp - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //waveFreq - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 14: //sunPower - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //reflectAmt - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //fresnelAmt - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //xSpeed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //ySpeed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //fogNear - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //fogFar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //shallowRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //shallowGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 23: //shallowBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 24: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 25: //deepRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 26: //deepGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //deepBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 28: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 29: //reflRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //reflGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //reflBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 33: //blend - return CB_UINT8_FIELD; + return UINT8_FIELD; case 34: //unused4 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 3; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 35: //rainForce - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 36: //rainVelocity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 37: //rainFalloff - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 38: //rainDampner - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 39: //rainSize - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 40: //dispForce - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 41: //dispVelocity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 42: //dispFalloff - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 43: //dispDampner - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 44: //dispSize - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 45: //damage - return CB_UINT16_FIELD; + return UINT16_FIELD; case 46: //dayWater - return CB_FORMID_FIELD; + return FORMID_FIELD; case 47: //nightWater - return CB_FORMID_FIELD; + return FORMID_FIELD; case 48: //underWater - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * WATRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/WEAPRecordAPI.cpp b/src/Oblivion/Records/API/WEAPRecordAPI.cpp index 6d27d8a..f416d11 100644 --- a/src/Oblivion/Records/API/WEAPRecordAPI.cpp +++ b/src/Oblivion/Records/API/WEAPRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\WEAPRecord.h" +#include "../../../Common.h" +#include "../WEAPRecord.h" namespace Ob { @@ -45,58 +45,58 @@ uint32_t WEAPRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 8: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //script - return CB_FORMID_FIELD; + return FORMID_FIELD; case 11: //enchantment - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //enchantPoints - return CB_UINT16_FIELD; + return UINT16_FIELD; case 13: //weaponType - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 14: //speed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //reach - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 17: //value - return CB_UINT32_FIELD; + return UINT32_FIELD; case 18: //health - return CB_UINT32_FIELD; + return UINT32_FIELD; case 19: //weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //damage - return CB_UINT16_FIELD; + return UINT16_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * WEAPRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/WRLDRecordAPI.cpp b/src/Oblivion/Records/API/WRLDRecordAPI.cpp index db33f21..9e945a8 100644 --- a/src/Oblivion/Records/API/WRLDRecordAPI.cpp +++ b/src/Oblivion/Records/API/WRLDRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\WRLDRecord.h" +#include "../../../Common.h" +#include "../WRLDRecord.h" namespace Ob { @@ -45,76 +45,76 @@ uint32_t WRLDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 6: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //climate - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //water - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //mapPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 10: //dimX - return CB_SINT32_FIELD; + return SINT32_FIELD; case 11: //dimY - return CB_SINT32_FIELD; + return SINT32_FIELD; case 12: //NWCellX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //NWCellY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 14: //SECellX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 15: //SECellY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 16: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 17: //xMinObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 18: //yMinObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //xMaxObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //yMaxObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //soundType - return CB_UINT32_FIELD; + return UINT32_FIELD; case 22: //ofst_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return OFST.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 23: //ROAD - return CB_SUBRECORD_FIELD; + return SUBRECORD_FIELD; case 24: //CELL - return CB_SUBRECORD_FIELD; + return SUBRECORD_FIELD; case 25: //CELLS switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)CELLS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * WRLDRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/WTHRRecordAPI.cpp b/src/Oblivion/Records/API/WTHRRecordAPI.cpp index bc2ff74..18a11b9 100644 --- a/src/Oblivion/Records/API/WTHRRecordAPI.cpp +++ b/src/Oblivion/Records/API/WTHRRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\WTHRRecord.h" +#include "../../../Common.h" +#include "../WTHRRecord.h" namespace Ob { @@ -45,808 +45,808 @@ uint32_t WTHRRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //flags2 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //lowerLayerPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 6: //upperLayerPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 7: //modPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 8: //modb - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 9: //modt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //upperSky.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 11: //upperSky.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //upperSky.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //upperSky.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //upperSky.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //upperSky.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 16: //upperSky.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //upperSky.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 18: //upperSky.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //upperSky.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 20: //upperSky.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 21: //upperSky.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 22: //upperSky.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 23: //upperSky.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 24: //upperSky.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 25: //upperSky.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 26: //fog.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //fog.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 28: //fog.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 29: //fog.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 30: //fog.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //fog.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //fog.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 33: //fog.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 34: //fog.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 35: //fog.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 36: //fog.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 37: //fog.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 38: //fog.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 39: //fog.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 40: //fog.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 41: //fog.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 42: //lowerClouds.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 43: //lowerClouds.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 44: //lowerClouds.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 45: //lowerClouds.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 46: //lowerClouds.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 47: //lowerClouds.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 48: //lowerClouds.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 49: //lowerClouds.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 50: //lowerClouds.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 51: //lowerClouds.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 52: //lowerClouds.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 53: //lowerClouds.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 54: //lowerClouds.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 55: //lowerClouds.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 56: //lowerClouds.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 57: //lowerClouds.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 58: //ambient.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 59: //ambient.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 60: //ambient.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 61: //ambient.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 62: //ambient.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 63: //ambient.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 64: //ambient.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 65: //ambient.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 66: //ambient.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 67: //ambient.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 68: //ambient.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 69: //ambient.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 70: //ambient.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 71: //ambient.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 72: //ambient.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 73: //ambient.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 74: //sunlight.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 75: //sunlight.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 76: //sunlight.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 77: //sunlight.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 78: //sunlight.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 79: //sunlight.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 80: //sunlight.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 81: //sunlight.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 82: //sunlight.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 83: //sunlight.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 84: //sunlight.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 85: //sunlight.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 86: //sunlight.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 87: //sunlight.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 88: //sunlight.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 89: //sunlight.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 90: //sun.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 91: //sun.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 92: //sun.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 93: //sun.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 94: //sun.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 95: //sun.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 96: //sun.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 97: //sun.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 98: //sun.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 99: //sun.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 100: //sun.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 101: //sun.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 102: //sun.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 103: //sun.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 104: //sun.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 105: //sun.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 106: //stars.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 107: //stars.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 108: //stars.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 109: //stars.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 110: //stars.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 111: //stars.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 112: //stars.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 113: //stars.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 114: //stars.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 115: //stars.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 116: //stars.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 117: //stars.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 118: //stars.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 119: //stars.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 120: //stars.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 121: //stars.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 122: //lowerSky.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 123: //lowerSky.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 124: //lowerSky.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 125: //lowerSky.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 126: //lowerSky.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 127: //lowerSky.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 128: //lowerSky.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 129: //lowerSky.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 130: //lowerSky.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 131: //lowerSky.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 132: //lowerSky.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 133: //lowerSky.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 134: //lowerSky.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 135: //lowerSky.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 136: //lowerSky.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 137: //lowerSky.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 138: //horizon.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 139: //horizon.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 140: //horizon.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 141: //horizon.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 142: //horizon.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 143: //horizon.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 144: //horizon.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 145: //horizon.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 146: //horizon.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 147: //horizon.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 148: //horizon.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 149: //horizon.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 150: //horizon.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 151: //horizon.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 152: //horizon.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 153: //horizon.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 154: //upperClouds.rise.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 155: //upperClouds.rise.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 156: //upperClouds.rise.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 157: //upperClouds.rise.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 158: //upperClouds.day.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 159: //upperClouds.day.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 160: //upperClouds.day.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 161: //upperClouds.day.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 162: //upperClouds.set.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 163: //upperClouds.set.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 164: //upperClouds.set.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 165: //upperClouds.set.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 166: //upperClouds.night.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 167: //upperClouds.night.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 168: //upperClouds.night.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 169: //upperClouds.night.unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 170: //fogDayNear - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 171: //fogDayFar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 172: //fogNightNear - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 173: //fogNightFar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 174: //eyeAdaptSpeed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 175: //blurRadius - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 176: //blurPasses - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 177: //emissiveMult - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 178: //targetLum - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 179: //upperLumClamp - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 180: //brightScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 181: //brightClamp - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 182: //lumRampNoTex - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 183: //lumRampMin - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 184: //lumRampMax - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 185: //sunlightDimmer - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 186: //grassDimmer - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 187: //treeDimmer - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 188: //windSpeed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 189: //lowerCloudSpeed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 190: //upperCloudSpeed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 191: //transDelta - return CB_UINT8_FIELD; + return UINT8_FIELD; case 192: //sunGlare - return CB_UINT8_FIELD; + return UINT8_FIELD; case 193: //sunDamage - return CB_UINT8_FIELD; + return UINT8_FIELD; case 194: //rainFadeIn - return CB_UINT8_FIELD; + return UINT8_FIELD; case 195: //rainFadeOut - return CB_UINT8_FIELD; + return UINT8_FIELD; case 196: //boltFadeIn - return CB_UINT8_FIELD; + return UINT8_FIELD; case 197: //boltFadeOut - return CB_UINT8_FIELD; + return UINT8_FIELD; case 198: //boltFrequency - return CB_UINT8_FIELD; + return UINT8_FIELD; case 199: //weatherType - return CB_UINT8_TYPE_FIELD; + return UINT8_TYPE_FIELD; case 200: //boltRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 201: //boltGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 202: //boltBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 203: //sounds if(ListFieldID == 0) //sounds { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Sounds.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Sounds.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //sound - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //type - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * WTHRRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Oblivion/Records/API/apistrip.py b/src/Oblivion/Records/API/apistrip.py new file mode 100644 index 0000000..a229132 --- /dev/null +++ b/src/Oblivion/Records/API/apistrip.py @@ -0,0 +1,168 @@ +import os, glob + +def maxer(lines): + nums = [-1] + for line in lines: +## if line.lstrip()[:2] == '//': +## continue + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + nums.append(pos-i+2) + return max(nums) + +def spacer(line, maxsize): + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + g = 1 + while line[pos+g] == ' ': + g += 1 + line = line[:pos-i+1] + ' = ' + line[pos+g:] + pos = line.find('=') + return line[:pos] + ' ' * (maxsize - pos) + line[pos:] + return line +for infile in glob.glob('*.cpp~'): + os.remove(infile) +for infile in glob.glob('*.h~'): + os.remove(infile) +for infile in glob.glob('*.bak'): + os.remove(infile) +for infile in glob.glob('*.cpp'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + inTest = False + inSet = False + inDel = False + inGet = False + inAttr = False + enumLines = [] + testLines = [] + num = 0 + for l in contents[:-1]: + num += 1 + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + elif inSet or inDel or inGet or inAttr: + testLines += [l] + if inDel: + if 'break' in l: + print 'Break found in ', infile, 'DeleteField' + print '\t', testLines[-3], + print '\t', testLines[-2], + print '\t', l + if inGet: + if 'UNKNOWN_FIELD' in l: + print 'UNKNOWN_FIELD found in ', infile, 'GetField' + print '\t', testLines[-3], + print '\t', testLines[-2], + print '\t', l + if inAttr: + pass + if inDel or inSet or inGet: + if 'default:' in l: + if 'break' not in testLines[-2] and 'return' not in testLines[-2]: + if '}' in testLines[-2] or 'break' not in testLines[-3] and 'return' not in testLines[-3]: + print 'Missing break found in ', infile, 'line', num + print '\t', testLines[-3], + print '\t', testLines[-2], + print '\t', l + if ' case ' in l and 'switch' not in testLines[-3]: + if 'break' not in testLines[-2] and 'return' not in testLines[-2]: + if '}' in testLines[-2] or 'break' not in testLines[-3] and 'return' not in testLines[-3]: + print 'Missing break or return found in ', infile, 'line', num + print '\t', testLines[-3], + print '\t', testLines[-2], + print '\t', l + if l.startswith(' }'): + inSet = False + inDel = False + inGet = False + inAttr = False + testLines = [] + o.write(l) + else: + o.write(l) + if ' enum ' in l: + inEnum = True + if 'SetField(FIELD_IDENTIFIERS, void *FieldValue, UINT32 ArraySize)' in l: + inSet = True + if 'DeleteField(FIELD_IDENTIFIERS)' in l: + inDel = True + if 'GetField(FIELD_IDENTIFIERS, void **FieldValues)' in l: + inGet = True + if 'GetFieldAttribute(FIELD_IDENTIFIERS, UINT32 WhichAttribute)' in l: + inAttr = True + + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() + +for infile in glob.glob('*.h'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() \ No newline at end of file diff --git a/src/Oblivion/Records/API/linecount.py b/src/Oblivion/Records/API/linecount.py new file mode 100644 index 0000000..831cb49 --- /dev/null +++ b/src/Oblivion/Records/API/linecount.py @@ -0,0 +1,18 @@ +import os, glob +lineCount = 0 +for infile in glob.glob('*.cpp'): + f = open(infile) + contents = f.readlines() + f.close() + lineCount += len(contents) +## o = open(infile,'w') +## [o.write(l.rstrip() + '\n') for l in contents] +## o.close() + +for infile in glob.glob('*.h'): + f = open(infile) + contents = f.readlines() + f.close() + lineCount += len(contents) + +print lineCount \ No newline at end of file diff --git a/src/Oblivion/Records/APPARecord.cpp b/src/Oblivion/Records/APPARecord.cpp index 89b2d71..9fd6188 100644 --- a/src/Oblivion/Records/APPARecord.cpp +++ b/src/Oblivion/Records/APPARecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "APPARecord.h" namespace Ob @@ -225,7 +225,7 @@ int32_t APPARecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" APPA: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/APPARecord.h b/src/Oblivion/Records/APPARecord.h index 9fe6111..74f5899 100644 --- a/src/Oblivion/Records/APPARecord.h +++ b/src/Oblivion/Records/APPARecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/ARMORecord.cpp b/src/Oblivion/Records/ARMORecord.cpp index 6fc9267..c236694 100644 --- a/src/Oblivion/Records/ARMORecord.cpp +++ b/src/Oblivion/Records/ARMORecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ARMORecord.h" namespace Ob @@ -442,7 +442,7 @@ int32_t ARMORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ARMO: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/ARMORecord.h b/src/Oblivion/Records/ARMORecord.h index e5e4660..dea4ee5 100644 --- a/src/Oblivion/Records/ARMORecord.h +++ b/src/Oblivion/Records/ARMORecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/BOOKRecord.cpp b/src/Oblivion/Records/BOOKRecord.cpp index f2c5ee9..b0eba21 100644 --- a/src/Oblivion/Records/BOOKRecord.cpp +++ b/src/Oblivion/Records/BOOKRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "BOOKRecord.h" namespace Ob @@ -229,7 +229,7 @@ int32_t BOOKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" BOOK: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/BOOKRecord.h b/src/Oblivion/Records/BOOKRecord.h index dc435c0..8ecb25b 100644 --- a/src/Oblivion/Records/BOOKRecord.h +++ b/src/Oblivion/Records/BOOKRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/BSGNRecord.cpp b/src/Oblivion/Records/BSGNRecord.cpp index 391a932..b992dfb 100644 --- a/src/Oblivion/Records/BSGNRecord.cpp +++ b/src/Oblivion/Records/BSGNRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "BSGNRecord.h" namespace Ob @@ -136,7 +136,7 @@ int32_t BSGNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" BSGN: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/BSGNRecord.h b/src/Oblivion/Records/BSGNRecord.h index 7ddbf9b..2d01ece 100644 --- a/src/Oblivion/Records/BSGNRecord.h +++ b/src/Oblivion/Records/BSGNRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/CELLRecord.cpp b/src/Oblivion/Records/CELLRecord.cpp index fee9a1c..36f8a1b 100644 --- a/src/Oblivion/Records/CELLRecord.cpp +++ b/src/Oblivion/Records/CELLRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CELLRecord.h" namespace Ob @@ -384,7 +384,7 @@ int32_t CELLRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CELL: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/CELLRecord.h b/src/Oblivion/Records/CELLRecord.h index a8e6064..750dc0c 100644 --- a/src/Oblivion/Records/CELLRecord.h +++ b/src/Oblivion/Records/CELLRecord.h @@ -34,9 +34,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" -#include "..\..\Allocator.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../../Allocator.h" #include "ACHRRecord.h" #include "ACRERecord.h" #include "REFRRecord.h" diff --git a/src/Oblivion/Records/CLASRecord.cpp b/src/Oblivion/Records/CLASRecord.cpp index aee45c0..2fdc91b 100644 --- a/src/Oblivion/Records/CLASRecord.cpp +++ b/src/Oblivion/Records/CLASRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CLASRecord.h" namespace Ob @@ -350,7 +350,7 @@ int32_t CLASRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" CLAS: Unknown subType = %04X\n", subType); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/CLASRecord.h b/src/Oblivion/Records/CLASRecord.h index 633d189..1474e1a 100644 --- a/src/Oblivion/Records/CLASRecord.h +++ b/src/Oblivion/Records/CLASRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/CLMTRecord.cpp b/src/Oblivion/Records/CLMTRecord.cpp index 8091335..1304935 100644 --- a/src/Oblivion/Records/CLMTRecord.cpp +++ b/src/Oblivion/Records/CLMTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CLMTRecord.h" namespace Ob @@ -202,7 +202,7 @@ int32_t CLMTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CLMT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/CLMTRecord.h b/src/Oblivion/Records/CLMTRecord.h index 7000859..87e7cae 100644 --- a/src/Oblivion/Records/CLMTRecord.h +++ b/src/Oblivion/Records/CLMTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/CLOTRecord.cpp b/src/Oblivion/Records/CLOTRecord.cpp index b95ee61..df83605 100644 --- a/src/Oblivion/Records/CLOTRecord.cpp +++ b/src/Oblivion/Records/CLOTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CLOTRecord.h" namespace Ob @@ -405,7 +405,7 @@ int32_t CLOTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CLOT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/CLOTRecord.h b/src/Oblivion/Records/CLOTRecord.h index e541eb9..8129c00 100644 --- a/src/Oblivion/Records/CLOTRecord.h +++ b/src/Oblivion/Records/CLOTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/CONTRecord.cpp b/src/Oblivion/Records/CONTRecord.cpp index 4c65b7b..d81bda9 100644 --- a/src/Oblivion/Records/CONTRecord.cpp +++ b/src/Oblivion/Records/CONTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CONTRecord.h" namespace Ob @@ -205,7 +205,7 @@ int32_t CONTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CONT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/CONTRecord.h b/src/Oblivion/Records/CONTRecord.h index ad630fa..137e725 100644 --- a/src/Oblivion/Records/CONTRecord.h +++ b/src/Oblivion/Records/CONTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/CREARecord.cpp b/src/Oblivion/Records/CREARecord.cpp index f4cfa97..9357f02 100644 --- a/src/Oblivion/Records/CREARecord.cpp +++ b/src/Oblivion/Records/CREARecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CREARecord.h" namespace Ob @@ -1069,7 +1069,7 @@ int32_t CREARecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CREA: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/CREARecord.h b/src/Oblivion/Records/CREARecord.h index e25f499..b69ca80 100644 --- a/src/Oblivion/Records/CREARecord.h +++ b/src/Oblivion/Records/CREARecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/CSTYRecord.cpp b/src/Oblivion/Records/CSTYRecord.cpp index a2e946c..f6bfccd 100644 --- a/src/Oblivion/Records/CSTYRecord.cpp +++ b/src/Oblivion/Records/CSTYRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CSTYRecord.h" namespace Ob @@ -389,7 +389,7 @@ int32_t CSTYRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" CSTY: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/CSTYRecord.h b/src/Oblivion/Records/CSTYRecord.h index 034f6bb..a52cf68 100644 --- a/src/Oblivion/Records/CSTYRecord.h +++ b/src/Oblivion/Records/CSTYRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/DIALRecord.cpp b/src/Oblivion/Records/DIALRecord.cpp index 73f8eee..b3f4afd 100644 --- a/src/Oblivion/Records/DIALRecord.cpp +++ b/src/Oblivion/Records/DIALRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "DIALRecord.h" namespace Ob @@ -239,7 +239,7 @@ int32_t DIALRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" DIAL: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/DIALRecord.h b/src/Oblivion/Records/DIALRecord.h index 0765e2a..9d1bbd8 100644 --- a/src/Oblivion/Records/DIALRecord.h +++ b/src/Oblivion/Records/DIALRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" #include "INFORecord.h" #include diff --git a/src/Oblivion/Records/DOORRecord.cpp b/src/Oblivion/Records/DOORRecord.cpp index f766cbd..06f852f 100644 --- a/src/Oblivion/Records/DOORRecord.cpp +++ b/src/Oblivion/Records/DOORRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "DOORRecord.h" namespace Ob @@ -218,7 +218,7 @@ int32_t DOORRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" DOOR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/DOORRecord.h b/src/Oblivion/Records/DOORRecord.h index 35180ac..402cc9d 100644 --- a/src/Oblivion/Records/DOORRecord.h +++ b/src/Oblivion/Records/DOORRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/EFSHRecord.cpp b/src/Oblivion/Records/EFSHRecord.cpp index 8447d05..82a9b47 100644 --- a/src/Oblivion/Records/EFSHRecord.cpp +++ b/src/Oblivion/Records/EFSHRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "EFSHRecord.h" namespace Ob @@ -328,7 +328,7 @@ int32_t EFSHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" EFSH: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/EFSHRecord.h b/src/Oblivion/Records/EFSHRecord.h index 346ae53..9924504 100644 --- a/src/Oblivion/Records/EFSHRecord.h +++ b/src/Oblivion/Records/EFSHRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/ENCHRecord.cpp b/src/Oblivion/Records/ENCHRecord.cpp index 6bbe066..f2a6604 100644 --- a/src/Oblivion/Records/ENCHRecord.cpp +++ b/src/Oblivion/Records/ENCHRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ENCHRecord.h" namespace Ob @@ -275,7 +275,7 @@ int32_t ENCHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ENCH: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/ENCHRecord.h b/src/Oblivion/Records/ENCHRecord.h index a8bf459..16004c7 100644 --- a/src/Oblivion/Records/ENCHRecord.h +++ b/src/Oblivion/Records/ENCHRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/EYESRecord.cpp b/src/Oblivion/Records/EYESRecord.cpp index 73febbb..fbb9859 100644 --- a/src/Oblivion/Records/EYESRecord.cpp +++ b/src/Oblivion/Records/EYESRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "EYESRecord.h" namespace Ob @@ -138,7 +138,7 @@ int32_t EYESRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" EYES: Unknown subType = %04X\n", subType); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/EYESRecord.h b/src/Oblivion/Records/EYESRecord.h index 22f5d38..393aeae 100644 --- a/src/Oblivion/Records/EYESRecord.h +++ b/src/Oblivion/Records/EYESRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/FACTRecord.cpp b/src/Oblivion/Records/FACTRecord.cpp index 8f033ab..fd0e5c0 100644 --- a/src/Oblivion/Records/FACTRecord.cpp +++ b/src/Oblivion/Records/FACTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "FACTRecord.h" namespace Ob @@ -219,7 +219,7 @@ int32_t FACTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" FACT: Unknown subType = %04X\n", subType); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/FACTRecord.h b/src/Oblivion/Records/FACTRecord.h index 703ab75..2d050a4 100644 --- a/src/Oblivion/Records/FACTRecord.h +++ b/src/Oblivion/Records/FACTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/FLORRecord.cpp b/src/Oblivion/Records/FLORRecord.cpp index 79ecb16..60e1cc8 100644 --- a/src/Oblivion/Records/FLORRecord.cpp +++ b/src/Oblivion/Records/FLORRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "FLORRecord.h" namespace Ob @@ -177,7 +177,7 @@ int32_t FLORRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" FLOR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/FLORRecord.h b/src/Oblivion/Records/FLORRecord.h index ba45f8d..79ab721 100644 --- a/src/Oblivion/Records/FLORRecord.h +++ b/src/Oblivion/Records/FLORRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/FURNRecord.cpp b/src/Oblivion/Records/FURNRecord.cpp index 7095f01..451fc4b 100644 --- a/src/Oblivion/Records/FURNRecord.cpp +++ b/src/Oblivion/Records/FURNRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "FURNRecord.h" namespace Ob @@ -492,7 +492,7 @@ int32_t FURNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" FURN: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/FURNRecord.h b/src/Oblivion/Records/FURNRecord.h index 4373362..3cab15b 100644 --- a/src/Oblivion/Records/FURNRecord.h +++ b/src/Oblivion/Records/FURNRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/GLOBRecord.cpp b/src/Oblivion/Records/GLOBRecord.cpp index b182d2b..b914075 100644 --- a/src/Oblivion/Records/GLOBRecord.cpp +++ b/src/Oblivion/Records/GLOBRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "GLOBRecord.h" namespace Ob @@ -114,7 +114,7 @@ int32_t GLOBRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" GLOB: Unknown subType = %04X\n", subType); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/GLOBRecord.h b/src/Oblivion/Records/GLOBRecord.h index b43313b..973a1fb 100644 --- a/src/Oblivion/Records/GLOBRecord.h +++ b/src/Oblivion/Records/GLOBRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/GMSTRecord.cpp b/src/Oblivion/Records/GMSTRecord.cpp index c19db47..35faac1 100644 --- a/src/Oblivion/Records/GMSTRecord.cpp +++ b/src/Oblivion/Records/GMSTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "GMSTRecord.h" namespace Ob @@ -131,7 +131,7 @@ GMSTRecord::GMSTRecord(GMSTRecord *srcRecord): { vSize = (uint32_t)strlen(srcRecord->DATA.s) + 1; DATA.s = new char [vSize]; - strcpy_s(DATA.s, vSize, srcRecord->DATA.s); + strncpy(DATA.s, srcRecord->DATA.s, vSize); } break; default: @@ -207,7 +207,7 @@ int32_t GMSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" GMST: %08X - Unknown type = %c\n", formID, DATA.format); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -216,7 +216,7 @@ int32_t GMSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" GMST: Unknown subType = %04X\n", subType); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/GMSTRecord.h b/src/Oblivion/Records/GMSTRecord.h index 60a66a1..6b871e8 100644 --- a/src/Oblivion/Records/GMSTRecord.h +++ b/src/Oblivion/Records/GMSTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/GRASRecord.cpp b/src/Oblivion/Records/GRASRecord.cpp index c6b8073..93b4725 100644 --- a/src/Oblivion/Records/GRASRecord.cpp +++ b/src/Oblivion/Records/GRASRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "GRASRecord.h" namespace Ob @@ -206,7 +206,7 @@ int32_t GRASRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" GRAS: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/GRASRecord.h b/src/Oblivion/Records/GRASRecord.h index 77b3994..7a51a1c 100644 --- a/src/Oblivion/Records/GRASRecord.h +++ b/src/Oblivion/Records/GRASRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/HAIRRecord.cpp b/src/Oblivion/Records/HAIRRecord.cpp index 5936cca..ba2c75a 100644 --- a/src/Oblivion/Records/HAIRRecord.cpp +++ b/src/Oblivion/Records/HAIRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "HAIRRecord.h" namespace Ob @@ -201,7 +201,7 @@ int32_t HAIRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" HAIR: Unknown subType = %04X\n", subType); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/HAIRRecord.h b/src/Oblivion/Records/HAIRRecord.h index 6f150df..b1d784c 100644 --- a/src/Oblivion/Records/HAIRRecord.h +++ b/src/Oblivion/Records/HAIRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/IDLERecord.cpp b/src/Oblivion/Records/IDLERecord.cpp index 6cfb2e2..0255cb7 100644 --- a/src/Oblivion/Records/IDLERecord.cpp +++ b/src/Oblivion/Records/IDLERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "IDLERecord.h" namespace Ob @@ -301,7 +301,7 @@ int32_t IDLERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" IDLE: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/IDLERecord.h b/src/Oblivion/Records/IDLERecord.h index 23d72b0..ff596b7 100644 --- a/src/Oblivion/Records/IDLERecord.h +++ b/src/Oblivion/Records/IDLERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/INFORecord.cpp b/src/Oblivion/Records/INFORecord.cpp index 4b3ce88..8432acf 100644 --- a/src/Oblivion/Records/INFORecord.cpp +++ b/src/Oblivion/Records/INFORecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "INFORecord.h" namespace Ob @@ -593,7 +593,7 @@ int32_t INFORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INFO: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/INFORecord.h b/src/Oblivion/Records/INFORecord.h index 9b8df21..b9e002b 100644 --- a/src/Oblivion/Records/INFORecord.h +++ b/src/Oblivion/Records/INFORecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { @@ -70,45 +70,6 @@ class INFORecord : public Record bool operator !=(const INFOTRDT &other) const; }; - struct INFOResponse - { - ReqSubRecord TRDT; //Response Data - StringRecord NAM1; //Response Text - StringRecord NAM2; //Script Notes - - enum eEmotionType - { - eNeutral = 0, - eAnger = 1, - eDisgust = 2, - eFear = 3, - eSad = 4, - eHappy = 5, - eSurprise = 6 - }; - - bool IsNeutral(); - void IsNeutral(bool value); - bool IsAnger(); - void IsAnger(bool value); - bool IsDisgust(); - void IsDisgust(bool value); - bool IsFear(); - void IsFear(bool value); - bool IsSad(); - void IsSad(bool value); - bool IsHappy(); - void IsHappy(bool value); - bool IsSurprise(); - void IsSurprise(bool value); - bool IsType(uint32_t Type); - void SetType(uint32_t Type); - - void Write(FileWriter &writer); - - bool operator ==(const INFOResponse &other) const; - bool operator !=(const INFOResponse &other) const; - }; enum eDialogType { @@ -140,6 +101,48 @@ class INFORecord : public Record }; public: + + + struct INFOResponse + { + ReqSubRecord TRDT; //Response Data + StringRecord NAM1; //Response Text + StringRecord NAM2; //Script Notes + + enum eEmotionType + { + eNeutral = 0, + eAnger = 1, + eDisgust = 2, + eFear = 3, + eSad = 4, + eHappy = 5, + eSurprise = 6 + }; + + bool IsNeutral(); + void IsNeutral(bool value); + bool IsAnger(); + void IsAnger(bool value); + bool IsDisgust(); + void IsDisgust(bool value); + bool IsFear(); + void IsFear(bool value); + bool IsSad(); + void IsSad(bool value); + bool IsHappy(); + void IsHappy(bool value); + bool IsSurprise(); + void IsSurprise(bool value); + bool IsType(uint32_t Type); + void SetType(uint32_t Type); + + void Write(FileWriter &writer); + + bool operator ==(const INFOResponse &other) const; + bool operator !=(const INFOResponse &other) const; + }; + StringRecord EDID; //Editor ID ReqSubRecord DATA; //INFO Data ReqSimpleSubRecord QSTI; //Quest diff --git a/src/Oblivion/Records/INGRRecord.cpp b/src/Oblivion/Records/INGRRecord.cpp index 2417880..9726d2f 100644 --- a/src/Oblivion/Records/INGRRecord.cpp +++ b/src/Oblivion/Records/INGRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "INGRRecord.h" namespace Ob @@ -236,7 +236,7 @@ int32_t INGRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" INGR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/INGRRecord.h b/src/Oblivion/Records/INGRRecord.h index 99ad057..b558a8b 100644 --- a/src/Oblivion/Records/INGRRecord.h +++ b/src/Oblivion/Records/INGRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/KEYMRecord.cpp b/src/Oblivion/Records/KEYMRecord.cpp index 4bd413e..f7c96ec 100644 --- a/src/Oblivion/Records/KEYMRecord.cpp +++ b/src/Oblivion/Records/KEYMRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "KEYMRecord.h" namespace Ob @@ -148,7 +148,7 @@ int32_t KEYMRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" KEYM: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/KEYMRecord.h b/src/Oblivion/Records/KEYMRecord.h index e363e95..86ab676 100644 --- a/src/Oblivion/Records/KEYMRecord.h +++ b/src/Oblivion/Records/KEYMRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/LANDRecord.cpp b/src/Oblivion/Records/LANDRecord.cpp index 58fb595..5e34ac9 100644 --- a/src/Oblivion/Records/LANDRecord.cpp +++ b/src/Oblivion/Records/LANDRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LANDRecord.h" #include "CELLRecord.h" @@ -412,7 +412,7 @@ int32_t LANDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LAND: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/LANDRecord.h b/src/Oblivion/Records/LANDRecord.h index 9ad6f69..8bc61b2 100644 --- a/src/Oblivion/Records/LANDRecord.h +++ b/src/Oblivion/Records/LANDRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/LIGHRecord.cpp b/src/Oblivion/Records/LIGHRecord.cpp index acf7056..4d448d6 100644 --- a/src/Oblivion/Records/LIGHRecord.cpp +++ b/src/Oblivion/Records/LIGHRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LIGHRecord.h" namespace Ob @@ -312,7 +312,7 @@ int32_t LIGHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LIGH: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/LIGHRecord.h b/src/Oblivion/Records/LIGHRecord.h index 8afca01..1e2bf86 100644 --- a/src/Oblivion/Records/LIGHRecord.h +++ b/src/Oblivion/Records/LIGHRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/LSCRRecord.cpp b/src/Oblivion/Records/LSCRRecord.cpp index e87c8a1..3f68f2b 100644 --- a/src/Oblivion/Records/LSCRRecord.cpp +++ b/src/Oblivion/Records/LSCRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LSCRRecord.h" namespace Ob @@ -161,7 +161,7 @@ int32_t LSCRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LSCR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/LSCRRecord.h b/src/Oblivion/Records/LSCRRecord.h index 65b1294..6037316 100644 --- a/src/Oblivion/Records/LSCRRecord.h +++ b/src/Oblivion/Records/LSCRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/LTEXRecord.cpp b/src/Oblivion/Records/LTEXRecord.cpp index 64865df..0e5062c 100644 --- a/src/Oblivion/Records/LTEXRecord.cpp +++ b/src/Oblivion/Records/LTEXRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LTEXRecord.h" namespace Ob @@ -542,7 +542,7 @@ int32_t LTEXRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LTEX: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/LTEXRecord.h b/src/Oblivion/Records/LTEXRecord.h index 1ed67d3..442ad55 100644 --- a/src/Oblivion/Records/LTEXRecord.h +++ b/src/Oblivion/Records/LTEXRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/LVLCRecord.cpp b/src/Oblivion/Records/LVLCRecord.cpp index 26b0833..a3ef2dd 100644 --- a/src/Oblivion/Records/LVLCRecord.cpp +++ b/src/Oblivion/Records/LVLCRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LVLCRecord.h" namespace Ob @@ -193,7 +193,7 @@ int32_t LVLCRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LVLC: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/LVLCRecord.h b/src/Oblivion/Records/LVLCRecord.h index fd92282..79cfdf5 100644 --- a/src/Oblivion/Records/LVLCRecord.h +++ b/src/Oblivion/Records/LVLCRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/LVLIRecord.cpp b/src/Oblivion/Records/LVLIRecord.cpp index 9190db2..2e7d76d 100644 --- a/src/Oblivion/Records/LVLIRecord.cpp +++ b/src/Oblivion/Records/LVLIRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LVLIRecord.h" namespace Ob @@ -193,7 +193,7 @@ int32_t LVLIRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LVLI: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/LVLIRecord.h b/src/Oblivion/Records/LVLIRecord.h index c2c09ef..644b11b 100644 --- a/src/Oblivion/Records/LVLIRecord.h +++ b/src/Oblivion/Records/LVLIRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/LVSPRecord.cpp b/src/Oblivion/Records/LVSPRecord.cpp index a0fa037..46bec8e 100644 --- a/src/Oblivion/Records/LVSPRecord.cpp +++ b/src/Oblivion/Records/LVSPRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LVSPRecord.h" namespace Ob @@ -181,7 +181,7 @@ int32_t LVSPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" LVSP: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/LVSPRecord.h b/src/Oblivion/Records/LVSPRecord.h index b5dd018..66ea34f 100644 --- a/src/Oblivion/Records/LVSPRecord.h +++ b/src/Oblivion/Records/LVSPRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/MGEFRecord.cpp b/src/Oblivion/Records/MGEFRecord.cpp index d0247e6..a918dfc 100644 --- a/src/Oblivion/Records/MGEFRecord.cpp +++ b/src/Oblivion/Records/MGEFRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "MGEFRecord.h" namespace Ob @@ -966,7 +966,7 @@ int32_t MGEFRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" MGEF: Unknown subType = %04X\n", subType); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/MGEFRecord.h b/src/Oblivion/Records/MGEFRecord.h index 2ec8f24..ba870dd 100644 --- a/src/Oblivion/Records/MGEFRecord.h +++ b/src/Oblivion/Records/MGEFRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/MISCRecord.cpp b/src/Oblivion/Records/MISCRecord.cpp index c50a45f..0049a3d 100644 --- a/src/Oblivion/Records/MISCRecord.cpp +++ b/src/Oblivion/Records/MISCRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "MISCRecord.h" namespace Ob @@ -148,7 +148,7 @@ int32_t MISCRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" MISC: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/MISCRecord.h b/src/Oblivion/Records/MISCRecord.h index 8d07350..5c6c2cb 100644 --- a/src/Oblivion/Records/MISCRecord.h +++ b/src/Oblivion/Records/MISCRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/NPC_Record.cpp b/src/Oblivion/Records/NPC_Record.cpp index e2aaa9c..6c8971d 100644 --- a/src/Oblivion/Records/NPC_Record.cpp +++ b/src/Oblivion/Records/NPC_Record.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "NPC_Record.h" namespace Ob @@ -633,7 +633,7 @@ int32_t NPC_Record::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" NPC_: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; diff --git a/src/Oblivion/Records/NPC_Record.h b/src/Oblivion/Records/NPC_Record.h index c0f17b2..cb9d40b 100644 --- a/src/Oblivion/Records/NPC_Record.h +++ b/src/Oblivion/Records/NPC_Record.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/PACKRecord.cpp b/src/Oblivion/Records/PACKRecord.cpp index 3a51dce..8dde0ea 100644 --- a/src/Oblivion/Records/PACKRecord.cpp +++ b/src/Oblivion/Records/PACKRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "PACKRecord.h" namespace Ob @@ -795,7 +795,7 @@ int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" PACK: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/PACKRecord.h b/src/Oblivion/Records/PACKRecord.h index 0fcfd54..9e5f88f 100644 --- a/src/Oblivion/Records/PACKRecord.h +++ b/src/Oblivion/Records/PACKRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/PGRDRecord.cpp b/src/Oblivion/Records/PGRDRecord.cpp index d5e8ccb..549861f 100644 --- a/src/Oblivion/Records/PGRDRecord.cpp +++ b/src/Oblivion/Records/PGRDRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "PGRDRecord.h" #include "CELLRecord.h" @@ -191,7 +191,7 @@ int32_t PGRDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" PGRD: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/PGRDRecord.h b/src/Oblivion/Records/PGRDRecord.h index b63b1d0..18972ab 100644 --- a/src/Oblivion/Records/PGRDRecord.h +++ b/src/Oblivion/Records/PGRDRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/QUSTRecord.cpp b/src/Oblivion/Records/QUSTRecord.cpp index c703da5..9155e91 100644 --- a/src/Oblivion/Records/QUSTRecord.cpp +++ b/src/Oblivion/Records/QUSTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "QUSTRecord.h" namespace Ob @@ -409,7 +409,7 @@ int32_t QUSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" QUST: %08X - Unexpected CTDA chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -479,7 +479,7 @@ int32_t QUSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" QUST: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/QUSTRecord.h b/src/Oblivion/Records/QUSTRecord.h index 3da5156..cbd85ef 100644 --- a/src/Oblivion/Records/QUSTRecord.h +++ b/src/Oblivion/Records/QUSTRecord.h @@ -34,14 +34,14 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { class QUSTRecord : public Record //Quest { - private: + public: struct QUSTDATA { uint8_t flags, priority; diff --git a/src/Oblivion/Records/RACERecord.cpp b/src/Oblivion/Records/RACERecord.cpp index 09f1e47..dabe359 100644 --- a/src/Oblivion/Records/RACERecord.cpp +++ b/src/Oblivion/Records/RACERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "RACERecord.h" namespace Ob @@ -395,7 +395,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected MODL\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -475,7 +475,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected ICON\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -533,7 +533,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected MODB\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -591,7 +591,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" RACE: %08X - Unexpected MODT\n", formID); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -618,7 +618,7 @@ int32_t RACERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" RACE: Unknown subType = %04X\n", subType); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/RACERecord.h b/src/Oblivion/Records/RACERecord.h index c9786b0..2a54a00 100644 --- a/src/Oblivion/Records/RACERecord.h +++ b/src/Oblivion/Records/RACERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/REFRRecord.cpp b/src/Oblivion/Records/REFRRecord.cpp index d2d9448..4bf552e 100644 --- a/src/Oblivion/Records/REFRRecord.cpp +++ b/src/Oblivion/Records/REFRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "REFRRecord.h" #include "CELLRecord.h" @@ -884,7 +884,7 @@ int32_t REFRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer break; default: printer(" REFR: %08X - Unknown XSED size = %u\n", formID, subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -916,7 +916,7 @@ int32_t REFRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer default: printer(" REFR: %08X - Unexpected FULL chunk\n", formID); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer += subSize; break; } @@ -964,7 +964,7 @@ int32_t REFRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" REFR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/REFRRecord.h b/src/Oblivion/Records/REFRRecord.h index 086029d..3b0830f 100644 --- a/src/Oblivion/Records/REFRRecord.h +++ b/src/Oblivion/Records/REFRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/REGNRecord.cpp b/src/Oblivion/Records/REGNRecord.cpp index c4e8936..ce9420a 100644 --- a/src/Oblivion/Records/REGNRecord.cpp +++ b/src/Oblivion/Records/REGNRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "REGNRecord.h" namespace Ob @@ -726,7 +726,7 @@ int32_t REGNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" REGN: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/REGNRecord.h b/src/Oblivion/Records/REGNRecord.h index 016bec6..2a81864 100644 --- a/src/Oblivion/Records/REGNRecord.h +++ b/src/Oblivion/Records/REGNRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/ROADRecord.cpp b/src/Oblivion/Records/ROADRecord.cpp index 95f9cd5..d639a49 100644 --- a/src/Oblivion/Records/ROADRecord.cpp +++ b/src/Oblivion/Records/ROADRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ROADRecord.h" namespace Ob @@ -137,7 +137,7 @@ int32_t ROADRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" ROADPGRR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/ROADRecord.h b/src/Oblivion/Records/ROADRecord.h index 8143a73..58954a0 100644 --- a/src/Oblivion/Records/ROADRecord.h +++ b/src/Oblivion/Records/ROADRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/SBSPRecord.cpp b/src/Oblivion/Records/SBSPRecord.cpp index 0fdb3e4..931a0e0 100644 --- a/src/Oblivion/Records/SBSPRecord.cpp +++ b/src/Oblivion/Records/SBSPRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SBSPRecord.h" namespace Ob @@ -136,7 +136,7 @@ int32_t SBSPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" SBSP: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/SBSPRecord.h b/src/Oblivion/Records/SBSPRecord.h index 91ffa92..b5066a9 100644 --- a/src/Oblivion/Records/SBSPRecord.h +++ b/src/Oblivion/Records/SBSPRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/SCPTRecord.cpp b/src/Oblivion/Records/SCPTRecord.cpp index 3c86326..a4715db 100644 --- a/src/Oblivion/Records/SCPTRecord.cpp +++ b/src/Oblivion/Records/SCPTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SCPTRecord.h" namespace Ob @@ -191,7 +191,7 @@ int32_t SCPTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" SCPT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/SCPTRecord.h b/src/Oblivion/Records/SCPTRecord.h index 552c34a..38065a9 100644 --- a/src/Oblivion/Records/SCPTRecord.h +++ b/src/Oblivion/Records/SCPTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/SGSTRecord.cpp b/src/Oblivion/Records/SGSTRecord.cpp index ef8d56b..caa8773 100644 --- a/src/Oblivion/Records/SGSTRecord.cpp +++ b/src/Oblivion/Records/SGSTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SGSTRecord.h" namespace Ob @@ -226,7 +226,7 @@ int32_t SGSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" SGST: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/SGSTRecord.h b/src/Oblivion/Records/SGSTRecord.h index 9fd0103..8965e7a 100644 --- a/src/Oblivion/Records/SGSTRecord.h +++ b/src/Oblivion/Records/SGSTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/SKILRecord.cpp b/src/Oblivion/Records/SKILRecord.cpp index 3295629..4db0d31 100644 --- a/src/Oblivion/Records/SKILRecord.cpp +++ b/src/Oblivion/Records/SKILRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SKILRecord.h" namespace Ob @@ -168,7 +168,7 @@ int32_t SKILRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" SKIL: Unknown subType = %04X\n", subType); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/SKILRecord.h b/src/Oblivion/Records/SKILRecord.h index 10867bf..e5a3f86 100644 --- a/src/Oblivion/Records/SKILRecord.h +++ b/src/Oblivion/Records/SKILRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/SLGMRecord.cpp b/src/Oblivion/Records/SLGMRecord.cpp index 057b53d..317f690 100644 --- a/src/Oblivion/Records/SLGMRecord.cpp +++ b/src/Oblivion/Records/SLGMRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SLGMRecord.h" namespace Ob @@ -331,7 +331,7 @@ int32_t SLGMRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" SLGM: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/SLGMRecord.h b/src/Oblivion/Records/SLGMRecord.h index 5863b6d..8e2c5a2 100644 --- a/src/Oblivion/Records/SLGMRecord.h +++ b/src/Oblivion/Records/SLGMRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/SOUNRecord.cpp b/src/Oblivion/Records/SOUNRecord.cpp index e29d545..96b057f 100644 --- a/src/Oblivion/Records/SOUNRecord.cpp +++ b/src/Oblivion/Records/SOUNRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SOUNRecord.h" namespace Ob @@ -240,7 +240,7 @@ int32_t SOUNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" SOUN: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/SOUNRecord.h b/src/Oblivion/Records/SOUNRecord.h index 8c6aa4d..6fc4ae0 100644 --- a/src/Oblivion/Records/SOUNRecord.h +++ b/src/Oblivion/Records/SOUNRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/SPELRecord.cpp b/src/Oblivion/Records/SPELRecord.cpp index 151b59b..2e62ae0 100644 --- a/src/Oblivion/Records/SPELRecord.cpp +++ b/src/Oblivion/Records/SPELRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "SPELRecord.h" namespace Ob @@ -489,7 +489,7 @@ int32_t SPELRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" SPEL: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/SPELRecord.h b/src/Oblivion/Records/SPELRecord.h index 4874a44..eedbd0e 100644 --- a/src/Oblivion/Records/SPELRecord.h +++ b/src/Oblivion/Records/SPELRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/STATRecord.cpp b/src/Oblivion/Records/STATRecord.cpp index 09c0f2d..61f45b4 100644 --- a/src/Oblivion/Records/STATRecord.cpp +++ b/src/Oblivion/Records/STATRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "STATRecord.h" namespace Ob @@ -120,7 +120,7 @@ int32_t STATRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" STAT: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/STATRecord.h b/src/Oblivion/Records/STATRecord.h index da43e70..07a8161 100644 --- a/src/Oblivion/Records/STATRecord.h +++ b/src/Oblivion/Records/STATRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/TREERecord.cpp b/src/Oblivion/Records/TREERecord.cpp index ae88139..003a7e0 100644 --- a/src/Oblivion/Records/TREERecord.cpp +++ b/src/Oblivion/Records/TREERecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "TREERecord.h" namespace Ob @@ -194,7 +194,7 @@ int32_t TREERecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" TREE: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/TREERecord.h b/src/Oblivion/Records/TREERecord.h index 50cb2b5..c96d48a 100644 --- a/src/Oblivion/Records/TREERecord.h +++ b/src/Oblivion/Records/TREERecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/WATRRecord.cpp b/src/Oblivion/Records/WATRRecord.cpp index b98c0ce..3fe6304 100644 --- a/src/Oblivion/Records/WATRRecord.cpp +++ b/src/Oblivion/Records/WATRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "WATRRecord.h" namespace Ob @@ -288,7 +288,7 @@ int32_t WATRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" WATR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/WATRRecord.h b/src/Oblivion/Records/WATRRecord.h index 0658d4c..906c1b4 100644 --- a/src/Oblivion/Records/WATRRecord.h +++ b/src/Oblivion/Records/WATRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/WEAPRecord.cpp b/src/Oblivion/Records/WEAPRecord.cpp index ef95893..af7b836 100644 --- a/src/Oblivion/Records/WEAPRecord.cpp +++ b/src/Oblivion/Records/WEAPRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "WEAPRecord.h" namespace Ob @@ -329,7 +329,7 @@ int32_t WEAPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" WEAP: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/WEAPRecord.h b/src/Oblivion/Records/WEAPRecord.h index 8a87ead..98ec4f0 100644 --- a/src/Oblivion/Records/WEAPRecord.h +++ b/src/Oblivion/Records/WEAPRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/WRLDRecord.cpp b/src/Oblivion/Records/WRLDRecord.cpp index d300a7d..35469de 100644 --- a/src/Oblivion/Records/WRLDRecord.cpp +++ b/src/Oblivion/Records/WRLDRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "WRLDRecord.h" namespace Ob @@ -291,7 +291,7 @@ int32_t WRLDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" WRLD: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/WRLDRecord.h b/src/Oblivion/Records/WRLDRecord.h index 5fc78d5..373c5cd 100644 --- a/src/Oblivion/Records/WRLDRecord.h +++ b/src/Oblivion/Records/WRLDRecord.h @@ -34,9 +34,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" -#include "..\..\Allocator.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../../Allocator.h" #include "CELLRecord.h" //#include "ROADRecord.h" #include @@ -68,7 +68,6 @@ class WRLDRecord : public Record OptSimpleSubRecord CNAM; //Climate OptSimpleSubRecord NAM2; //Water SemiOptSimpleFloatSubRecord NAM4; //LOD Water Height - OptZeroSubRecord DNAM; //Land Data StringRecord ICON; //Large Icon Filename SemiOptSubRecord MNAM; //Map Data ReqSimpleSubRecord DATA; //Flags diff --git a/src/Oblivion/Records/WTHRRecord.cpp b/src/Oblivion/Records/WTHRRecord.cpp index d4e11f2..3c368b9 100644 --- a/src/Oblivion/Records/WTHRRecord.cpp +++ b/src/Oblivion/Records/WTHRRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "WTHRRecord.h" namespace Ob @@ -566,7 +566,7 @@ int32_t WTHRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer printer(" WTHR: %08X - Unknown subType = %04x\n", formID, subType); CBASH_CHUNK_DEBUG printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Oblivion/Records/WTHRRecord.h b/src/Oblivion/Records/WTHRRecord.h index 227cea1..22992b3 100644 --- a/src/Oblivion/Records/WTHRRecord.h +++ b/src/Oblivion/Records/WTHRRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Ob { diff --git a/src/Oblivion/Records/linecount.py b/src/Oblivion/Records/linecount.py new file mode 100644 index 0000000..831cb49 --- /dev/null +++ b/src/Oblivion/Records/linecount.py @@ -0,0 +1,18 @@ +import os, glob +lineCount = 0 +for infile in glob.glob('*.cpp'): + f = open(infile) + contents = f.readlines() + f.close() + lineCount += len(contents) +## o = open(infile,'w') +## [o.write(l.rstrip() + '\n') for l in contents] +## o.close() + +for infile in glob.glob('*.h'): + f = open(infile) + contents = f.readlines() + f.close() + lineCount += len(contents) + +print lineCount \ No newline at end of file diff --git a/src/Oblivion/Records/strip.py b/src/Oblivion/Records/strip.py new file mode 100644 index 0000000..821eac3 --- /dev/null +++ b/src/Oblivion/Records/strip.py @@ -0,0 +1,114 @@ +import os, glob + +def maxer(lines): + nums = [-1] + for line in lines: +## if line.lstrip()[:2] == '//': +## continue + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + nums.append(pos-i+2) + return max(nums) + +def spacer(line, maxsize): + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + g = 1 + while line[pos+g] == ' ': + g += 1 + line = line[:pos-i+1] + ' = ' + line[pos+g:] + pos = line.find('=') + return line[:pos] + ' ' * (maxsize - pos) + line[pos:] + return line +for infile in glob.glob('*.cpp~'): + os.remove(infile) +for infile in glob.glob('*.h~'): + os.remove(infile) +for infile in glob.glob('*.bak'): + os.remove(infile) +for infile in glob.glob('*.cpp'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() + +for infile in glob.glob('*.h'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() \ No newline at end of file diff --git a/src/Oblivion/TES4File.cpp b/src/Oblivion/TES4File.cpp index ef4d854..15c7e59 100644 --- a/src/Oblivion/TES4File.cpp +++ b/src/Oblivion/TES4File.cpp @@ -431,145 +431,145 @@ int32_t TES4File::Load(RecordOp &read_parser, RecordOp &indexer, std::vector &Ex FileWriter writer(SaveName, BUFFERSIZE); if(writer.open() == -1) - throw std::exception("TES4File::Save: Error - Unable to open temporary file for writing\n"); + throw std::runtime_error("TES4File::Save: Error - Unable to open temporary file for writing\n"); uint32_t formCount = 0; FormIDResolver expander(FormIDHandler.ExpandTable, FormIDHandler.FileStart, FormIDHandler.FileEnd); diff --git a/src/Oblivion/TES4File.h b/src/Oblivion/TES4File.h index 89a0f9a..3755bd3 100644 --- a/src/Oblivion/TES4File.h +++ b/src/Oblivion/TES4File.h @@ -162,7 +162,7 @@ class TES4File : public ModFile int32_t LoadTES4(); int32_t Load(RecordOp &read_parser, RecordOp &indexer, std::vector &Expanders, std::vector &DeletedRecords); - uint32_t GetNumRecords(const uint32_t &RecordType); + size_t GetNumRecords(const uint32_t &RecordType); Record * CreateRecord(const uint32_t &RecordType, char * const &RecordEditorID, Record *&SourceRecord, Record *&ParentRecord, CreationFlags &options); int32_t DeleteRecord(Record *&curRecord, RecordOp &deindexer); int32_t Save(char * const &SaveName, std::vector &Expanders, bool CloseMod, RecordOp &indexer); diff --git a/src/Oblivion/strip.py b/src/Oblivion/strip.py new file mode 100644 index 0000000..821eac3 --- /dev/null +++ b/src/Oblivion/strip.py @@ -0,0 +1,114 @@ +import os, glob + +def maxer(lines): + nums = [-1] + for line in lines: +## if line.lstrip()[:2] == '//': +## continue + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + nums.append(pos-i+2) + return max(nums) + +def spacer(line, maxsize): + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + g = 1 + while line[pos+g] == ' ': + g += 1 + line = line[:pos-i+1] + ' = ' + line[pos+g:] + pos = line.find('=') + return line[:pos] + ' ' * (maxsize - pos) + line[pos:] + return line +for infile in glob.glob('*.cpp~'): + os.remove(infile) +for infile in glob.glob('*.h~'): + os.remove(infile) +for infile in glob.glob('*.bak'): + os.remove(infile) +for infile in glob.glob('*.cpp'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() + +for infile in glob.glob('*.h'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() \ No newline at end of file diff --git a/src/Skyblivion/Skyblivion.cpp b/src/Skyblivion/Skyblivion.cpp new file mode 100644 index 0000000..7b916cd --- /dev/null +++ b/src/Skyblivion/Skyblivion.cpp @@ -0,0 +1,2810 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +// BaseRecord.h +#include +#include +#include +#include +#include +#include +#include "../Common.h" +#include "Skyblivion.h" +#include "../Oblivion/Records/DIALRecord.h" +#include "../Oblivion/Records/PACKRecord.h" +#include "../Skyrim/Records/PACKRecord.h" +#include "../Skyrim/VMAD/Script.h" +#include "../Skyrim/VMAD/Property/PropertyInt.h" +#include "../Skyrim/VMAD/Property/PropertyFloat.h" +#include "../Skyrim/VMAD/Property/PropertyObject.h" +#include "../Skyrim/VMAD/Fragment/FragmentQUST.h" +#include "../Skyrim/VMAD/Fragment/FragmentINFO.h" + +#define RUMORS_FORMID 0xD7 +#define GOODBYE_FORMID 0xD4 +#define STANDALONE_SCRIPT_PREFIX "TES4" + +namespace Skyblivion { + + SkyblivionConverter::SkyblivionConverter(Collection &oblivionCollection, Collection &skyrimCollection, const std::string rootPath): + rootBuildPath(rootPath), + oblivionCollection(oblivionCollection), + skyrimCollection(skyrimCollection) + { + this->edidMap = this->prepareSkyblivionEdidMap(); + this->targetsMapping = this->getTargetsMappingTable(); + this->getOblivionFile()->SCPT.pool.MakeRecordsVector(this->scripts); + } + + + void SkyblivionConverter::insertToEdidMap(std::string edid, FORMID formid) + { + this->edidMap->insert(std::pair(edid,formid)); + } + + FORMID SkyblivionConverter::findRecordFormidByEDID(std::string edid) { + if (this->edidMap->find(edid) != this->edidMap->end()) + return (*this->edidMap)[edid]; + + return NULL; + } + + Record * SkyblivionConverter::findRecordByFormidGeneric(FORMID_OR_UINT32 formid) + { + uint32_t count = this->oblivionCollection.FormID_ModFile_Record.count(formid); + + //Not found + if (count == 0) + { + return NULL; + } + + //Conflicting + if (count > 1) + { + throw new std::runtime_error("Formid conflict when resolving formid via findRecordByFormidGeneric."); + } + + auto it = this->oblivionCollection.FormID_ModFile_Record.equal_range(formid); + + Record *rec = it.first->second; + + return rec; + + } + + Record *SkyblivionConverter::findRecordByFormid(FORMID_OR_UINT32 formid, uint32_t type) + { + + Record *rec = findRecordByFormidGeneric(formid); + + if (rec == NULL) + { + return NULL; + } + + //Found but not this type - not found + if (rec->GetType() != type) + { + return NULL; + } + + return rec; + + } + + std::map*>* SkyblivionConverter::getTargetsMappingTable() { + std::string mappingPath = this->getTargetsMappingPath(); + std::map*>* result = new std::map*>(); + + std::map *currentMap = NULL; + + std::ifstream myFile = std::ifstream(mappingPath); + std::string line; + + while (std::getline(myFile, line)) { + if (line.substr(0, 2) == "qf") { //A bit hacky :/ + currentMap = new std::map(); + + std::stringstream ss(line); + std::string segment; + std::vector seglist; + + while (std::getline(ss, segment, '_')) + { + seglist.push_back(segment); + } + + + if (seglist.size() < 2) { + continue; + } + + result->insert(std::pair*>(seglist[1], currentMap)); + } + else { + if (currentMap != NULL) { //Indicates a bug if null + std::stringstream ss(line); + std::string segment; + std::vector seglist; + uint32_t originalObjectiveIndex; + std::istringstream duplicatedObjectiveIndexes; + //TODO - Refactor to consistent space , not space and tabs -_- + bool first = true; + bool isOk = false; + while (std::getline(ss, segment, ' ')) + { + if (first) { + originalObjectiveIndex = std::stoi(segment); + first = false; + } + else { + duplicatedObjectiveIndexes = std::istringstream(segment); + isOk = true; + } + } + + if (!isOk) { + continue; + } + + while (std::getline(duplicatedObjectiveIndexes, segment, ' ')) { + currentMap->insert(std::pair(std::stoi(segment), originalObjectiveIndex)); //Reverse index the data, i.e. new objective index => index to use data from + } + + } + } + } + + return result; + + } + + Script* SkyblivionConverter::createVirtualMachineScriptFor(Ob::SCPTRecord* scpt) { + std::string edid = std::string(scpt->EDID.value); + SkyblivionScript skScript = SkyblivionScript(this->BUILD_TARGET_STANDALONE(), STANDALONE_SCRIPT_PREFIX, edid, this->ROOT_BUILD_PATH()); + + std::string scriptName = skScript.getScriptName(); + Script* theScript = new Script(); + + theScript->name.Copy(const_cast(scriptName.c_str())); + + try { + bindProperties(theScript, skScript); + } + catch (std::exception ex) { + log_warning << ex.what() << "\n"; + } + + return theScript; + + } + + std::map *SkyblivionConverter::prepareSkyblivionEdidMap() { + std::map *edidMap = new std::map (); + edidMap->insert(std::pair(std::string("tes4lockpick"), 0xA)); + edidMap->insert(std::pair(std::string("tes4daskeletonkey"), 0x3A070)); + edidMap->insert(std::pair(std::string("tes4repairhammer"), 0xC)); + edidMap->insert(std::pair(std::string("tes4gold001"), 0xF)); + edidMap->insert(std::pair(std::string("tes4stolengoods"), 0x01000881)); + edidMap->insert(std::pair(std::string("tes4jailpants"), 0x010008A2)); + edidMap->insert(std::pair(std::string("tes4jailshoes"), 0x010008A3)); + edidMap->insert(std::pair(std::string("tes4jailshirt"), 0x010008A4)); + edidMap->insert(std::pair(std::string("tes4tamriel"), 0x01000819)); + edidMap->insert(std::pair(std::string("tes4defaultplayerspell"), 0x12FCC)); + edidMap->insert(std::pair(std::string("tes4welkyndstone"), 0x0100081E)); + edidMap->insert(std::pair(std::string("tes4blacksoulgem"), 0x2E500)); + edidMap->insert(std::pair(std::string("tes4azurasstar"), 0x63B27)); + edidMap->insert(std::pair(std::string("tes4gamedayspassed"), 0x39)); + edidMap->insert(std::pair(std::string("tes4gamehour"), 0x38)); + edidMap->insert(std::pair(std::string("tes4gameday"), 0x37)); + edidMap->insert(std::pair(std::string("tes4gamemonth"), 0x36)); + edidMap->insert(std::pair(std::string("tes4gameyear"), 0x35)); + + //Hardcoded effects from Skyrim + edidMap->insert(std::pair(std::string("tes4effectseff"), 0x14A)); + edidMap->insert(std::pair(std::string("tes4effectchml"), 0x1EA6A)); //Chameleon is replaced with invisibility + //edidMap->insert(std::pair(std::string("effectzwra"), 0x35)); //TODO - Replace with another summon? Probably needs manual script rewriting so that we dont need this stupid "effect" + edidMap->insert(std::pair(std::string("tes4effectrefa"), 0x2F3B9)); + edidMap->insert(std::pair(std::string("tes4effectinvi"), 0x1EA6A)); + //edidMap->insert(std::pair(std::string("effectslnc"), 0x35)); //Illusion removed and so was silencing. + + TES5File *mod = this->getGeckFile(); + FormIDResolver collapser(mod->FormIDHandler.CollapseTable, mod->FormIDHandler.FileStart, mod->FormIDHandler.FileEnd); + + /** + * Edid map in SkyblivionConverter is collapsed automatically into Geck context + * As all references in fields ought to be collapsed. + */ + for (auto it = this->skyrimCollection.EDIDIndex.begin(); it != this->skyrimCollection.EDIDIndex.end(); ++it) { + std::string edid = std::string(it->first); + std::transform(edid.begin(), edid.end(), edid.begin(), ::tolower); + FORMID theFormid = it->second->formID; + collapser.Accept(theFormid); + edidMap->insert(std::pair(edid, theFormid)); + } + + return edidMap; + } + + + bool evaluateGetStageCondition(Sk::SKCTDA* skCTDA, uint32_t stage) + { + bool internalTargetConditionResult; + + //uint32_t ctdaStage = (int)a; + /** + * Cast it to real float, and then use a static cast to uint + * Doh, fucked up FORMID_OR_FLOAT32 .. + */ + uint32_t ctdaStage = (uint32_t)(reinterpret_cast(skCTDA->compValue)); + + switch ((skCTDA->operType >> 5)) { + + case 0: { + internalTargetConditionResult = (ctdaStage == stage); + break; + } + + case 1: { + internalTargetConditionResult = (ctdaStage != stage); + break; + + } + + case 2: { + internalTargetConditionResult = (stage > ctdaStage); + break; + + } + + case 3: { + internalTargetConditionResult = (stage >= ctdaStage); + break; + + } + + case 4: { + internalTargetConditionResult = (stage < ctdaStage); + break; + + } + + case 5: { + internalTargetConditionResult = (stage <= ctdaStage); + break; + + } + + default: { + throw new std::runtime_error("Unknown target operator?"); + } + + } + + return internalTargetConditionResult; + } + + /** + * Convert an Oblivion target to Skyrim objective + * Receives a target index ( called newIndex ), because while mapping targets to objectives is one thing, we need to duplicate some of the targets under new indexes + */ + Sk::QUSTOBJECTIVE * SkyblivionConverter::convertObjective(Sk::QUSTRecord *skq, Ob::QUSTRecord::QUSTTarget *obTarget, uint32_t newIndex, std::map& formIdToAliasId) { + Sk::QUSTOBJECTIVE* objective = new Sk::QUSTOBJECTIVE(); + objective->QOBJ.value = newIndex; + objective->FNAM.value = 0; + std::string nnamValue = "Complete objective "; + + char* castedInteger = new char[10]; + sprintf(castedInteger, "%i", newIndex); + nnamValue.append(castedInteger); + delete castedInteger; + + char* datacopy = new char[nnamValue.size() + 1]; + strcpy(datacopy, nnamValue.c_str()); + objective->NNAM.value = datacopy; + + Sk::QUSTCONDITIONALTARGET *target = new Sk::QUSTCONDITIONALTARGET(); + target->QSTA.value.flags = obTarget->QSTA.value.flags; + + int aliasId; + //Alias construction + if (formIdToAliasId.find(obTarget->QSTA.value.targetId) == formIdToAliasId.end()) { + int ANAM = formIdToAliasId.size() + 1; // Next ANAM + formIdToAliasId[obTarget->QSTA.value.targetId] = ANAM; + Sk::QUSTALIAS *alias = new Sk::QUSTALIAS(); + alias->aliasID.value = ANAM; + alias->isLocation = false; + + std::string alidValue = "Alias_"; + + char* castedAlidValue = new char[9]; + sprintf(castedAlidValue, "%08x", obTarget->QSTA.value.targetId); + alidValue.append(castedAlidValue); + alidValue.append("_p"); //Todo - maybe we'll remove it from here and from ScriptsConverter too + delete castedAlidValue; + + char* alidCopy = new char[alidValue.size() + 1]; + strcpy(alidCopy, alidValue.c_str()); + alias->ALID.value = alidCopy; + + Sk::ALFRAliasFillType* aliasType = new Sk::ALFRAliasFillType(); + aliasType->ALFR.value = convertFormid(obTarget->QSTA.value.targetId); + alias->aliasType = aliasType; + skq->questAliases.value.push_back(alias); + aliasId = ANAM; + } + else { + aliasId = (*formIdToAliasId.find(obTarget->QSTA.value.targetId)).second; + } + + target->QSTA.value.targetAlias = aliasId; + + /** + * Convert the target conditions + * GetStage conditions will be moved to skyrimTargetConditions, otherwise they will be pushed directly to the converted Skyrim target + * We also do a bit of validation, as we're not able to use this magic we do here to convert a GetStage that ORs with non GetStage conditions ( lets say, GetStage(70) OR InCell ...) + */ + for (uint8_t u = 0; u < obTarget->CTDA.value.size(); ++u) { + + try { + std::vector skCTDAs = convertCTDAFromOblivion(obTarget->CTDA.value[u]); + Sk::SKCondition* skCTDA = skCTDAs.back(); //GetStage should be the last one in case we pushed the condition.. + + if (skCTDA != NULL) { + if (skCTDA->CTDA.value.ifunc == 58 && skCTDA->CTDA.value.param1 == skq->formID) { //is GetStage, skip. + + /** + * If this condition is ORed and next condition is not a getstage aswell, we raise it as it means we cannot convert it properly :( + */ + if (skCTDA->CTDA.value.IsOr()) { + if ((size_t)((u + 1)) < obTarget->CTDA.value.size()) { + if (obTarget->CTDA.value[u + 1]->ifunc != 58) { + char buffix[16]; + sprintf(buffix, "%x", obTarget->CTDA.value[u + 1]->ifunc); + log_warning << "GetStage ORed with non GetStage on quest " << std::string(skq->EDID.value) << " ifunc is 0x" << std::string(buffix) << std::endl; + } + } + } + + } + else { + for (int ctdaIt = 0; ctdaIt < skCTDAs.size(); ++ctdaIt) { + target->CTDA.value.push_back(skCTDAs[ctdaIt]); + } + } + } + + + } + catch (std::exception) { + continue; + } + + } + + objective->TGTS.value.push_back(target); + return objective; + } + + std::vector * SkyblivionConverter::convertQUSTFromOblivion() { + std::vector> scripts; + std::vector> quests; + TES4File* d = (TES4File *)this->oblivionCollection.ModFiles[0]; + d->SCPT.pool.MakeRecordsVector(scripts); + d->QUST.pool.MakeRecordsVector(quests); + + TES5File* skyrimMod = (TES5File*)this->skyrimCollection.ModFiles[2]; + + std::vector * questsVector = new std::vector; + + for(uint32_t questsIt = 0; questsIt < quests.size(); ++questsIt) { + Ob::QUSTRecord *q = (Ob::QUSTRecord *)quests[questsIt]; + Sk::QUSTRecord* skq = new Sk::QUSTRecord(); + skq->formID = convertFormid(q->formID); + skq->formVersion = 43; //Idk why but without this scripts do not show up + std::string skqEDID = "TES4"; + + + skqEDID.append(q->EDID.value); + char* cpy = new char[skqEDID.size() + 1]; + strcpy(cpy, skqEDID.c_str()); + skq->EDID.value = cpy; + + skq->VMAD.value = new VMADRecord(); + + if (q->SCRI.IsLoaded()) + qustsToBind[q] = skq; + + + Script* QFScript = new Script(); + skq->VMAD.value->scripts.push_back(QFScript); + skq->FULL.value = q->FULL.value; + + if (q->ICON.value == "Quests\\SE07Decanter.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSEMisc.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE07.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE03.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE11.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE08.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE04.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE09.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE02.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE06.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE01.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE13.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE05.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE12.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quests\\iconSE10.dds") { + skq->DNAM.value.questType = 2; + } + else if (q->ICON.value == "Quest\\icon_thieves_guild.dds") { + skq->DNAM.value.questType = 3; + } + else if (q->ICON.value == "Quest\\icon_tiber_septim's_armor.dds") { + skq->DNAM.value.questType = 8; + } + else if (q->ICON.value == "Quest\\icon_master_trainer.dds") { + skq->DNAM.value.questType = 8; + } + else if (q->ICON.value == "Quest\\icon_settlements_quest_icon.dds") { + skq->DNAM.value.questType = 8; + } + else if (q->ICON.value == "Quest\\icon_arena.dds") { + skq->DNAM.value.questType = 8; + } + else if (q->ICON.value == "Quest\\icon_miscellaneous.dds") { + skq->DNAM.value.questType = 8; + } + else if (q->ICON.value == "Quest\\icon_mages_guild.dds") { + skq->DNAM.value.questType = 3; + } + else if (q->ICON.value == "Quest\\icon_dark_brotherhood.dds") { + skq->DNAM.value.questType = 4; + } + else if (q->ICON.value == "Quest\\icon_fighters_guild.dds") { + skq->DNAM.value.questType = 5; + } + else if (q->ICON.value == "Quest\\icon_daedra.dds") { + skq->DNAM.value.questType = 7; + } + else if (q->ICON.value == "Quest\\icon_oblivion_gate.dds") { + skq->DNAM.value.questType = 7; + } + else if (q->ICON.value == "Quest\\icon_miscarcand.dds") { + skq->DNAM.value.questType = 7; + } + else if (q->ICON.value == "Quest\\icon_bruma.dds") { + skq->DNAM.value.questType = 7; + } + else if (q->ICON.value == "Quest\\icon_mythic_dawn.dds") { + skq->DNAM.value.questType = 7; + } + else if (q->ICON.value == "Quest\\icon_imperial_city.dds") { + skq->DNAM.value.questType = 7; + } + else if (q->ICON.value == "Quest\\icon_weynon_priory.dds") { + skq->DNAM.value.questType = 7; + } + else if (q->ICON.value == "Quest\\icon_kvatch.dds") { + skq->DNAM.value.questType = 7; + } + else if (q->ICON.value == "Quest\\icon_amulet_of_king.dds") { + skq->DNAM.value.questType = 7; + } + else if (q->ICON.value == "Quest\\icon_paradise.dds") { + skq->DNAM.value.questType = 7; + } + else if (q->ICON.value == "Quest\\icon_dragonfires.dds") { + skq->DNAM.value.questType = 7; + } + + skq->DNAM.value.encounterFlags = q->DATA.value.flags & (0x9); + skq->DNAM.value.generalFlags = 0x01; + skq->DNAM.value.priority = q->DATA.value.priority; + + + for (uint8_t i = 0; i < q->CTDA.value.size(); ++i) { + try { + std::vector skCTDAs = convertCTDAFromOblivion(q->CTDA.value[i]); + + for (int ctdaIt = 0; ctdaIt < skCTDAs.size(); ++ctdaIt) { + skq->QDCTDA.value.push_back(skCTDAs[ctdaIt]); + } + } + catch (std::exception) { + continue; + } + + } + + /** + * QUST target index => Skyrim QUST objective + */ + std::map formIdToAliasId = std::map(); + + /** + * Convert targets one by one + */ + for (uint8_t i = 0; i < q->Targets.value.size(); ++i) { + + struct Ob::QUSTRecord::QUSTTarget *obTarget = q->Targets.value[i]; + Sk::QUSTOBJECTIVE *objective = convertObjective(skq, obTarget, i, formIdToAliasId); + skq->questObjectives.value.push_back(objective); + } + + /** + * Duplicate the targets as needed + */ + std::string lowerName = std::string(q->EDID.value); + std::transform(lowerName.begin(), lowerName.end(), lowerName.begin(), ::tolower); + + std::map *duplicationTargetMap = (*this->targetsMapping)[lowerName]; + + if (duplicationTargetMap != NULL) { + uint32_t duplicatedId = q->Targets.value.size(); //Next ID index is the actual size of targets array + while (duplicationTargetMap->count(duplicatedId)) { + uint32_t basedOnId = duplicationTargetMap->find(duplicatedId)->second; + struct Ob::QUSTRecord::QUSTTarget *obTarget = q->Targets.value[basedOnId]; + Sk::QUSTOBJECTIVE *objective = convertObjective(skq, obTarget, duplicatedId, formIdToAliasId); + skq->questObjectives.value.push_back(objective); + ++duplicatedId; + } + } + + FragmentQUST* qustFragment = new FragmentQUST(); + qustFragment->unk1 = 0; + std::string QFScriptName = "QF_"; + QFScriptName.append(q->EDID.value); //Without TES4, perhaps we'll change it at some point. + QFScriptName.append("_"); + char* castedFormid = new char[9]; + sprintf(castedFormid, "%08x", q->formID + 0x01000000); + QFScriptName.append(castedFormid); + delete castedFormid; + + char *QFScriptNameChar = (char *)QFScriptName.c_str(); + + QFScript->name.Copy(QFScriptNameChar); + qustFragment->fileName.Copy(QFScriptNameChar); + + /** + * Convert the quest stages + */ + for (uint8_t i = 0; i < q->Stages.value.size(); ++i) { + Sk::QUSTSTAGE* stage = new Sk::QUSTSTAGE(); + int16_t stageId = q->Stages.value[i]->INDX.value; + stage->INDX.value.journalIndex = stageId; + stage->INDX.value.flags = 0; + stage->INDX.value.unknown = 0; + + /** + * Convert quest stage's entries + */ + for (uint8_t k = 0; k < q->Stages.value[i]->Entries.value.size(); ++k) { + Sk::QUSTLOGENTRY* entry = new Sk::QUSTLOGENTRY(); + entry->QSDT = q->Stages.value[i]->Entries.value[k]->QSDT; + uint32_t stageIndex = k; + + if (q->Stages.value[i]->Entries.value[k]->CNAM.value != NULL) { + char* cnamValue = new char[strlen(q->Stages.value[i]->Entries.value[k]->CNAM.value) + 1]; + strcpy(cnamValue, q->Stages.value[i]->Entries.value[k]->CNAM.value); + entry->CNAM.value = cnamValue; + } + + FragmentQUST::Fragment* fragment = new FragmentQUST::Fragment(); + + + char* castedInt = new char[10]; + sprintf(castedInt, "%i", stageId); + std::string fragmentName = "Fragment_" + std::string(castedInt); + delete castedInt; + + if (stageIndex != 0) { + char* castedInt = new char[10]; + sprintf(castedInt, "%i", stageIndex); + fragmentName = fragmentName + "_" + std::string(castedInt); + delete castedInt; + + } + + char* cpyFragmentName = new char[fragmentName.size() + 1]; + strcpy(cpyFragmentName, fragmentName.c_str()); + fragment->fragmentName.Copy(const_cast(fragmentName.c_str())); + fragment->unk1 = 0; + fragment->unk2 = 1; + fragment->stage = stageId; + fragment->stageIndex = stageIndex; + unsigned char* pointer = reinterpret_cast(QFScript->name.value); + fragment->scriptName.Read(pointer, QFScript->name.GetSize(), false); + qustFragment->fragments.push_back(fragment); + + + for (uint8_t u = 0; u < q->Stages.value[i]->Entries.value[k]->CTDA.value.size(); ++u) { + + try { + std::vector skCTDAs = convertCTDAFromOblivion(q->Stages.value[i]->Entries.value[k]->CTDA.value[u]); + for (int ctdaIt = 0; ctdaIt < skCTDAs.size(); ++ctdaIt) { + entry->CTDA.value.push_back(skCTDAs[ctdaIt]); + } + } + catch (std::exception) { + continue; + } + } + + stage->LOGS.value.push_back(entry); + } + + skq->questStages.value.push_back(stage); + + } + + + skq->ANAM.value = formIdToAliasId.size() + 1; //Calculate ANAM + skq->VMAD->fragment = qustFragment; + + + + + + /** + * Bind the aliases + */ + for (uint8_t it = 0; it < skq->questAliases.value.size(); ++it) { + PropertyObject* vmadProperty = new PropertyObject(); + unsigned char* pointer = reinterpret_cast(skq->questAliases.value[it]->ALID.value); + vmadProperty->name.Read(pointer, skq->questAliases.value[it]->ALID.GetSize(), false); + vmadProperty->type = 1; + vmadProperty->aliasId = skq->questAliases.value[it]->aliasID.value; + vmadProperty->formId = skq->formID; + vmadProperty->status = 0; + QFScript->properties.push_back(vmadProperty); + } + + qfsToBind[QFScriptName] = QFScript; + + questsVector->push_back(skq); + + } + + return questsVector; + + } + + std::vector * SkyblivionConverter::convertDIALFromOblivion() { + + struct dialogueToConvert { + bool isMapped; + Ob::DIALRecord *dial; + std::map *qstiToFormid; + }; + + std::vector> dialogues; + std::vector branchVector; + std::vector * dialogueVector = new std::vector(); + + TES4File* oblivionMod = this->getOblivionFile(); + TES5File* skyrimMod = this->getGeckFile(); + ModFile* skyblivionMod = this->getSkyblivionFile(); + oblivionMod->DIAL.dial_pool.MakeRecordsVector(dialogues); + + std::vector> qustVector; + std::map quests; + std::vector> scripts; + oblivionMod->SCPT.pool.MakeRecordsVector(scripts); + oblivionMod->QUST.pool.MakeRecordsVector(qustVector); + + + /** + * Map to a map to have fast lookup + */ + for (uint32_t qustVectorIt = 0; qustVectorIt < qustVector.size(); ++qustVectorIt) { + Ob::QUSTRecord *qust = (Ob::QUSTRecord*)qustVector[qustVectorIt]; + quests[qust->formID] = qust; + } + + std::vector nonTopLevelDialogs = std::vector(); + int i = 0; + //Because out of one Oblivion DIAL there might be N Skyrim DIALs, we cannot simply use DIAL formids. We need to map them + //This map has all formids within the conversion process, however, if formid is not mapped ( i.e. there's one quest and we dont need to split the record ), then we'll save the same formid as original + std::map formidMapping = std::map(); + for (uint32_t dialoguesIt = 0; dialoguesIt < dialogues.size(); ++dialoguesIt) { + Ob::DIALRecord *d = (Ob::DIALRecord*)dialogues[dialoguesIt]; + try { + + if (d->EDID.value == NULL) { + //empty edid crashing conversion, skip + continue; + } + + if (d->DATA.value == 0x03) { + continue; //We do not convert persuasion tab which is non existing in skyrim + } + else if (d->DATA.value == 0x05 && strcmp(d->EDID.value, "Repair") != 0 && strcmp(d->EDID.value, "Training") != 0 && strcmp(d->EDID.value, "ServiceRefusal") != 0 && strcmp(d->EDID.value, "Recharge") != 0) { + continue; //From service tab,w e convert repair/training/recharge/ServiceRefusal only, barter is skipped + } + else if (strcmp(d->EDID.value, "InfoRefusal") == 0) { //Do not convert those records. @TODO - What to do with HELLOs ( on-approach-to-npc-texts ) since in Skyrim greetings are shared on approach and when actually talking?? + continue; + } + else if (d->INFO.size() == 0) { + //Skip dialogues without responses.. + //NOTE - Not exactly accurate. What we should be checking is whether - after splitting into N Skyrim dialogues, which ones might not have INFO references and discard there, instead of discarding here. + //This will fix only the cases where we lack the INFOs altogether. + continue; + } + + FORMID firstQuestFormid = NULL; + FORMID dialogueToConvert; + struct dialogueToConvert *map = new struct dialogueToConvert(); + map->isMapped = false; + map->dial = d; + map->qstiToFormid = new std::map(); + for (uint16_t i = 0; i < d->INFO.size(); i++) { + //We're searching thru INFO's to find the referenced dials. + Ob::INFORecord* info = (Ob::INFORecord*)d->INFO[i]; + + for (uint16_t k = 0; k < info->TCLT.value.size(); k++) { + if (info->TCLT.value[k] == RUMORS_FORMID) { + //Do not treat linking to Rumours as actually qualifying for non top level branches. + //Reason is that in Skyblivion, we drop this connection and actually force a goodbye. + continue; + } + + if (std::find(nonTopLevelDialogs.begin(), nonTopLevelDialogs.end(), info->TCLT.value[k]) == nonTopLevelDialogs.end()) { + nonTopLevelDialogs.push_back(info->TCLT.value[k]); + } + } + + + if (firstQuestFormid == NULL) { + //First quest found - let's just put it there + firstQuestFormid = info->QSTI.value; + } + else { + //We found another one, so we will need to split + if (info->QSTI.value != firstQuestFormid ) { + //Assign a new formid + if (!map->isMapped) { + //Map the current questFormid aka the first quest + dialogueToConvert = this->skyrimCollection.NextFreeExpandedFormID(skyblivionMod); + map->qstiToFormid->insert(std::pair(firstQuestFormid, dialogueToConvert)); + map->isMapped = true; //To avoid regeneration for 3 and more quests :) + } + + //And the current one if its needed + if (map->qstiToFormid->find(info->QSTI.value) == map->qstiToFormid->end()) { + dialogueToConvert = this->skyrimCollection.NextFreeExpandedFormID(skyblivionMod); + map->qstiToFormid->insert(std::pair(info->QSTI.value, dialogueToConvert)); + } + + } + } + } + + formidMapping.insert(std::pair(d->formID, map)); + + } + catch (std::exception &e) { + log_error << e.what() << "\n"; + continue; + } + + ++i; + } + + for (std::map::iterator it = formidMapping.begin(); it != formidMapping.end(); ++it) { + + struct dialogueToConvert *dialogueToConvertData = it->second; + Ob::DIALRecord *d = dialogueToConvertData->dial; + + std::map formidToPointer = std::map(); + + /** + * Used to track blocking branches, aka GREETINGs with + */ + std::map blockingFormidToPointer = std::map(); + + Sk::DIALRecord* currentDialForInfo; + + for(uint32_t infoIt = 0; infoIt < d->INFO.size(); ++infoIt) { + + Ob::INFORecord* info = (Ob::INFORecord*)d->INFO[infoIt]; + std::map *targetShardingCollection = &formidToPointer; + bool isInfoBlocking = false; + uint32_t presetInfoFlags = 0; + Sk::INFORecord* newInfo = new Sk::INFORecord(); + + /** + * GREETING dialogues with choices are transformed into blocking branches + */ + if (strcmp(d->EDID.value, "GREETING") == 0) { + + if (info->TCLT.value.size() > 0) { + targetShardingCollection = &blockingFormidToPointer; + isInfoBlocking = true; + presetInfoFlags |= 0x2; //We will want a random on this, because HELO has native randomization of greetings, however, custom branches have to be randomized explicitly. + } + + /** + * Push the condition that will make it in-dialogue-only + */ + Sk::SKCTDA* inDialogueOnly = new Sk::SKCTDA(); + inDialogueOnly->operType = (0 << 5) + 0; + inDialogueOnly->compValue = 0x3f800000; //FLOAT 1 + inDialogueOnly->ifunc = 249; //IsInDialogueWithPlayer + inDialogueOnly->param1 = 0; + inDialogueOnly->param2 = 0; + inDialogueOnly->runOnType = 0; //Subject + inDialogueOnly->reference = 0; + + Sk::SKCondition *inDialogueOnlyAggr = new Sk::SKCondition(); + inDialogueOnlyAggr->CTDA.value = *inDialogueOnly; + + newInfo->CTDA.value.push_back(inDialogueOnlyAggr); + } + else if (strcmp(d->EDID.value, "HELLO") == 0) { + + /** + * Push the condition that will make it non-dialogue-only + */ + Sk::SKCTDA* nonDialogueOnly = new Sk::SKCTDA(); + nonDialogueOnly->operType = (0 << 5) + 0; + nonDialogueOnly->compValue = 0; + nonDialogueOnly->ifunc = 249; //IsnonDialogueWithPlayer + nonDialogueOnly->param1 = 0; + nonDialogueOnly->param2 = 0; + nonDialogueOnly->runOnType = 0; //Subject + nonDialogueOnly->reference = 0; + Sk::SKCondition *nonDialogueOnlyAggr = new Sk::SKCondition(); + nonDialogueOnlyAggr->CTDA.value = *nonDialogueOnly; + + newInfo->CTDA.value.push_back(nonDialogueOnlyAggr); + newInfo->CTDA.value.push_back(nonDialogueOnlyAggr); + } + + if (targetShardingCollection->find(info->QSTI.value) == targetShardingCollection->end()) { //there is no formid with that quest, so we create a new branch and topic for it. + + bool formidWasMapped = (dialogueToConvertData->isMapped); + + FORMID dialFormid; + + if (isInfoBlocking) { + /** + * If INFO is blocking, then we assume that we can generate a new FORMID. Those ( blocking ) branches should not be referenced in dialogues anyways, so probably all TCLT choices + * to "GREETING"s ( whatever that might be ), will probably end up to mapped non-blocking branches. + * God, it's complicated. + */ + dialFormid = this->skyrimCollection.NextFreeExpandedFormID(skyblivionMod); + } + else if (formidWasMapped) { + dialFormid = (*dialogueToConvertData->qstiToFormid)[info->QSTI.value]; + } + else { + dialFormid = convertFormid(d->formID); + } + + Sk::DIALRecord* newDialogue = new Sk::DIALRecord(); + newDialogue->formID = dialFormid; + + std::string DEDID = std::string(); + DEDID = "TES4"; + DEDID.append(d->EDID.value); + + if (formidWasMapped) { + DEDID.append("_"); + char buffer[16]; + sprintf(buffer, "%x", info->QSTI.value); + DEDID.append(buffer); + } + + if (isInfoBlocking) { + DEDID.append("_Block"); + } + + char *dstr = new char[DEDID.length() + 1]; + strncpy(dstr, DEDID.c_str(), DEDID.length() + 1); + + Ob::QUSTRecord *questForDialogue = quests[info->QSTI.value]; + + newDialogue->formVersion = 43; + newDialogue->EDID.value = dstr; + newDialogue->FULL = d->FULL; + newDialogue->PNAM.value = questForDialogue->DATA.value.priority; + newDialogue->QNAM.value = convertFormid(info->QSTI.value); + + bool needABranch = false; + + //Conversations mapping to subtypes + if (strcmp(d->EDID.value, "GREETING") == 0) { + + /** + * In Oblivion, if a Greeting has links, that means that we're actually forcing topics from that greeting. + * To implement same behavior in Skyrim, we need to creating a blocking branch. + * GREETING will actually become a CUSTOM topic, and branch will be blocking. + */ + + if (info->TCLT.value.size() > 0) { + newDialogue->SNAM.value = REV32(CUST); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + needABranch = true; + } + else { + newDialogue->SNAM.value = REV32(HELO); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + + } + else if (strcmp(d->EDID.value, "HELLO") == 0) { + //Will be triggered only out of dialogues, as on-approach. + newDialogue->SNAM.value = REV32(HELO); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "GOODBYE") == 0) { + newDialogue->SNAM.value = REV32(GBYE); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "AcceptYield") == 0) { + newDialogue->SNAM.value = REV32(ACYI); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Assault") == 0) { + newDialogue->SNAM.value = REV32(ASSA); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "AssaultNoCrime") == 0) { + newDialogue->SNAM.value = REV32(ASNC); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Attack") == 0) { + newDialogue->SNAM.value = REV32(ATCK); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Flee") == 0) { + newDialogue->SNAM.value = REV32(FLEE); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Hit") == 0) { + newDialogue->SNAM.value = REV32(HIT_); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Murder") == 0) { + newDialogue->SNAM.value = REV32(MURD); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "MurderNoCrime") == 0) { + newDialogue->SNAM.value = REV32(MUNC); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Pickpocket") == 0) { + newDialogue->SNAM.value = REV32(PICC); //Might be PICT + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "PickpocketNoCrime") == 0) { + newDialogue->SNAM.value = REV32(PICN); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "PowerAttack") == 0) { + newDialogue->SNAM.value = REV32(POAT); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Steal") == 0) { + newDialogue->SNAM.value = REV32(STEA); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "StealNoCrime") == 0) { + newDialogue->SNAM.value = REV32(STFN); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Trespass") == 0) { + newDialogue->SNAM.value = REV32(TRES); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "TrespassNoCrime") == 0) { + newDialogue->SNAM.value = REV32(TRAN); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Yield") == 0) { + newDialogue->SNAM.value = REV32(YIEL); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + + //Persuasion tab omitted + + //Detection tab + else if (strcmp(d->EDID.value, "Lost") == 0) { + newDialogue->SNAM.value = REV32(ALTN); //might be LostToNormal, but i think alert is better + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Noticed") == 0) { + newDialogue->SNAM.value = REV32(NOTA); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Seen") == 0) { + newDialogue->SNAM.value = REV32(ALTC); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Unseen") == 0) { + newDialogue->SNAM.value = REV32(COLO); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + + //Service tab + else if (strcmp(d->EDID.value, "Repair") == 0) { + newDialogue->SNAM.value = REV32(REPA); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Training") == 0) { + newDialogue->SNAM.value = REV32(TRAI); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "ServiceRefusal") == 0) { + newDialogue->SNAM.value = REV32(SERU); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Recharge") == 0) { + newDialogue->SNAM.value = REV32(RECH); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + + //Misc tab + else if (strcmp(d->EDID.value, "Corpse") == 0) { + newDialogue->SNAM.value = REV32(NOTI); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "Idle") == 0) { + newDialogue->SNAM.value = REV32(IDLE); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "ObserveCombat") == 0) { + newDialogue->SNAM.value = REV32(OBCO); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else if (strcmp(d->EDID.value, "TimeToGo") == 0) { + newDialogue->SNAM.value = REV32(TITG); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + else { + + needABranch = true; + + if (d->QSTI.value.size() > 1) { + newDialogue->SNAM.value = REV32(RUMO); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 2, 0); //Subtype ID Rumors + } + else { + newDialogue->SNAM.value = REV32(CUST); + newDialogue->DATA.value = Sk::DIALPACKDATA(false, 0, 0, 0); //Subtype ID Custom + } + } + + if (needABranch) { + Sk::DLBRRecord* newBranch = new Sk::DLBRRecord(); + std::string EDID = std::string(); + EDID = "TES4"; + EDID.append(d->EDID.value); + + + if (formidWasMapped) { + EDID.append("_"); + + char buffer[16]; + sprintf(buffer, "%x", info->QSTI.value); + EDID.append(buffer); + //delete buffer; + } + + if (isInfoBlocking) { + EDID.append("_Block"); + } + + EDID.append("_Branch"); + + char *cstr = new char[EDID.length() + 1]; + strncpy(cstr, EDID.c_str(), EDID.length() + 1); + newBranch->EDID.value = cstr; + newBranch->formID = this->skyrimCollection.NextFreeExpandedFormID(skyblivionMod); + newBranch->formVersion = 43; + newBranch->SNAM.value = dialFormid; + newBranch->TNAM.value = 0; + + int branchType; + + if (isInfoBlocking) { + //Blocking branch + branchType = 2; + } else { + + + /** + * Conversations should have normal branches. + * They might be converted to SCENes later, or simply used in scripts.. + * One exception is Rumors + */ + if (d->DATA.value == 0x1 && strcmp(d->EDID.value, "INFOGENERAL") != 0) { + branchType = 0; + } + else { + if (std::find(nonTopLevelDialogs.begin(), nonTopLevelDialogs.end(), d->formID) != nonTopLevelDialogs.end()) { + //It's not a top level, we set it to normal + branchType = 0; + } + else { + branchType = 1; //Top level. + } + } + } + + newBranch->DNAM.value = branchType; + newBranch->QNAM.value = convertFormid(info->QSTI.value); + newDialogue->BNAM.value = newBranch->formID; //PROBABLY WONT WORK. + + branchVector.push_back(newBranch); + } + + newDialogue->TIFC.value = 0; + + currentDialForInfo = newDialogue; + targetShardingCollection->insert(std::pair(info->QSTI.value, currentDialForInfo)); + + dialogueVector->push_back(newDialogue); + + } + else { + currentDialForInfo = (*targetShardingCollection)[info->QSTI.value]; + } + + currentDialForInfo->TIFC.value += 1; + newInfo->formID = convertFormid(info->formID); + newInfo->formVersion = 43; + newInfo->CNAM.value = 0; + newInfo->ENAM.Load(); + newInfo->ENAM.value->flags = presetInfoFlags; + + /** + * Convert bit flags + */ + //Goodbye + if (info->DATA.value.flags & 1) { + newInfo->ENAM.value->flags |= 1; + } + + //Random + if (info->DATA.value.flags & 2) { + newInfo->ENAM.value->flags |= 2; + } + //Say Once + if (info->DATA.value.flags & 4) { + newInfo->ENAM.value->flags |= 4; + } + //Random End + if (info->DATA.value.flags & 0x20) { + newInfo->ENAM.value->flags |= 0x10; + } + + + /** + * Somehow, in Oblivion Rumors have choice responses like it would be a further dialogue, but its not used. We're replicating that behavior with that if. + */ + if (strcmp(d->EDID.value, "INFOGENERAL") != 0) { + for (uint32_t tcltIt = 0; tcltIt < info->TCLT.value.size(); ++tcltIt) { + + FORMID tcltLink = info->TCLT.value[tcltIt]; + if (tcltLink == GOODBYE_FORMID) { + //Force a goodbye in case it was linking to Rumor and drop + newInfo->ENAM.value->flags |= 1; + } + else { + + + if (formidMapping.find(tcltLink) != formidMapping.end()) { + struct dialogueToConvert *mapped = formidMapping[tcltLink]; + FORMID newTcltValue = NULL; + + if (mapped->isMapped) { + if (mapped->qstiToFormid->find(info->QSTI.value) != mapped->qstiToFormid->end()) { + newTcltValue = (*mapped->qstiToFormid)[info->QSTI.value]; + } + } + else { + newTcltValue = convertFormid(tcltLink); + } + + if (newTcltValue != NULL) { + newInfo->TCLT.value.push_back(newTcltValue); + } + } + else { + log_warning << "Cannot map the TCLT..\n"; + } + } + } + } + + for (uint32_t infoResponseIt = 0; infoResponseIt < info->Responses.value.size(); ++infoResponseIt) { + Ob::INFORecord::INFOResponse* r = info->Responses.value[infoResponseIt]; + Sk::INFORecordResponse* responselink = new Sk::INFORecordResponse(); + + Sk::PACKTRDT trdtPack = Sk::PACKTRDT(); + trdtPack.emotionType = r->TRDT.value.emotionType; + trdtPack.emotionValue = r->TRDT.value.emotionValue; + trdtPack.responseNumber = r->TRDT.value.responseNum; + responselink->NAM1 = r->NAM1; + responselink->NAM2 = r->NAM2; + responselink->NAM3.value = ""; + responselink->TRDT.value = trdtPack; + newInfo->responses.push_back(responselink); + + } + + if (currentDialForInfo->SNAM.value == REV32(HIT_)) { + Sk::SKCondition *condition = new Sk::SKCondition(); + condition->CTDA->ifunc = 72; + condition->CTDA->operType = 0; + condition->CTDA->compValue = 0; + condition->CTDA->param1 = 0x7; //NPC player ref + condition->CTDA->param2 = 0; + condition->CTDA->runOnType = 0; + + newInfo->CTDA.value.push_back( + condition + ); + } + + for (uint8_t i = 0; i < info->CTDA.value.size(); ++i) { + + try { + std::vector skCTDAs = convertCTDAFromOblivion(info->CTDA.value[i]); + for (int ctdaIt = 0; ctdaIt < skCTDAs.size(); ++ctdaIt) { + newInfo->CTDA.value.push_back(skCTDAs[ctdaIt]); + } + } + catch (std::exception) { + continue; + } + } + + for (uint32_t ctdaIt = 0; ctdaIt < newInfo->CTDA.value.size(); ++ctdaIt) { + Sk::SKCondition * ctda = newInfo->CTDA.value[ctdaIt]; + if (ctda->CTDA.value.ifunc == 72) { //get is id. + if (ctda->CTDA.value.IsEqual() && ctda->CTDA.value.compValue > 0 || !ctda->CTDA.value.IsEqual() && ctda->CTDA.value.compValue == 0) + newInfo->ANAM.value = ctda->CTDA.value.param1; //Speaker + } + } + + //Creating Papyrus fragments + + if (info->SCTX.IsLoaded()) + infosToBind[info] = newInfo; + + currentDialForInfo->INFO.push_back(newInfo); + + + + } + + + } + + for (uint32_t i = 0; i < branchVector.size(); i++) { + skyrimMod->DLBR.pool.construct(branchVector.at(i), NULL, false); + } + + return dialogueVector; + + } + + void SkyblivionConverter::bindProperties(Script* script, SkyblivionScript &skScript) { + std::string hardcodedFilename = skScript.getScriptPath(); + + std::FILE* scriptHandle = std::fopen(hardcodedFilename.c_str(), "r"); + if (!scriptHandle) { + char exceptionVal[0x180]; + sprintf(exceptionVal, "bindProperties - Cannot find script %s, errno %d.", hardcodedFilename.c_str(), errno); + std::string exceptionValS = exceptionVal; + throw std::runtime_error(exceptionValS.c_str()); + } + + + fseek(scriptHandle, 0, SEEK_END); + size_t size = ftell(scriptHandle); + char* scriptData = new char[size]; + rewind(scriptHandle); + fread(scriptData, sizeof(char), size, scriptHandle); + fclose(scriptHandle); + std::string fullScript(scriptData); + delete[] scriptData; + + boost::regex propRegex("(.*?) Property (.*?) Auto"); + + boost::sregex_iterator properties(fullScript.begin(), fullScript.end(), propRegex, boost::match_not_dot_newline); + boost::sregex_iterator end; + + std::string colPrefix = "col_"; + + for (; properties != end; ++properties) { + std::string propertyType = (*properties)[1]; + + if (propertyType == "ReferenceAlias") { + continue; //Do nod bind aliases, they are bound by the game + } + + std::string propertyName = (*properties)[2]; + + /** + * Strip the _p suffix + */ + std::string realPropertyName = propertyName.substr(0, propertyName.size() - 2); + + /** + * Check for the collision prefix, if it's here, remove it and also remove the script ID from the suffix + */ + if (realPropertyName.substr(0, 4) == colPrefix) { + + //cut the col_prefix + realPropertyName = realPropertyName.substr(4, realPropertyName.size() - 4); + //cut the _xxxx suffix + realPropertyName = realPropertyName.substr(0, realPropertyName.size() - 5); + + } + + if (propertyType == "Int") { + PropertyInt* property = new PropertyInt(); + int32_t val; + /** + * Different default value for messagebox results.. + */ + if (propertyName == "TES4_MESSAGEBOX_RESULT_p") { + val = -1; + } + else { + val = 0; + } + + unsigned char *cstr = new unsigned char[propertyName.size() + 1]; + strcpy((char*)cstr, propertyName.c_str()); + property->name.Read(cstr, (uint32_t)propertyName.size(), false); + property->value = val; + property->status = 1; + script->properties.push_back(property); + } + else if (propertyType == "Float") { + PropertyFloat* property = new PropertyFloat(); + unsigned char *cstr = new unsigned char[propertyName.size() + 1]; + strcpy((char*)cstr, propertyName.c_str()); + property->name.Read(cstr, (uint32_t)propertyName.size(), false); + property->value = 0; + property->status = 1; + script->properties.push_back(property); + } + else if (propertyType == "Sound") { + /** + * Due to how the sounds are generated, we need to target the new sound ( SOUN ) objects instead of SNDRs + */ + std::string realPropertyEdid = "TES4SOUN" + realPropertyName; + std::transform(realPropertyEdid.begin(), realPropertyEdid.end(), realPropertyEdid.begin(), ::tolower); + + if (this->edidMap->find(realPropertyEdid) != this->edidMap->end()) { + PropertyObject* property = new PropertyObject(); + unsigned char *cstr = new unsigned char[propertyName.size() + 1]; + strcpy((char*)cstr, propertyName.c_str()); + property->name.Read(cstr, (uint32_t)propertyName.size(), false); + property->formId = (*this->edidMap)[realPropertyEdid]; + property->aliasId = -1; + property->status = 1; + script->properties.push_back(property); + } + } + else { + + std::string realPropertyEdid = "TES4" + realPropertyName; + std::transform(realPropertyEdid.begin(), realPropertyEdid.end(), realPropertyEdid.begin(), ::tolower); + if (this->edidMap->find(realPropertyEdid) != this->edidMap->end()) { + //EDID was found, now we need to check whether it doesn't lead to a base type + //Somehow, Oblivion was able to bind scripts by base forms sometimes and ( automagically! ) it would find the ( probably only ) reference in the game and use it. + + uint32_t boundFormid = (*this->edidMap)[realPropertyEdid]; + + Record *record = findRecordByFormidGeneric(boundFormid - 0x01000000); //Hacky way to get back oblivion formid. TODO - Perhaps search in skyrim collection. + + if (record != NULL) { //Otherwise should be an error methinks? + if (record->GetType() != REV32(REFR) && record->GetType() != REV32(ACHR) && record->GetType() != REV32(ACRE) && record->GetType() != REV32(QUST)) //If we try to bind a base form ( form which is not running in runtime ).. + { + if (propertyType == "ObjectReference" || propertyType == "Actor" || propertyType.substr(0, 4) == "TES4") { + log_warning << "Found connection to base form for a custom script or object reference / actor, name: " << + std::string(record->GetEditorIDKey()) << " property type requested: " << propertyType << "\n"; + //Naive implementation - just look for XRef EDID. + std::string refName = realPropertyEdid + "ref"; + if (this->edidMap->find(refName) != this->edidMap->end()) { + log_info << "Found ref, binding instead\n"; + boundFormid = (*this->edidMap)[refName]; + } + else { + log_error << "No suitable ref found for " << std::string(record->GetEditorIDKey()) << + ", this will probably prevent script working in game\n"; + } + } + } + } + + //std::cout << "Found EDID " << realPropertyEdid << std::endl; + PropertyObject* property = new PropertyObject(); + unsigned char *cstr = new unsigned char[propertyName.size() + 1]; + strcpy((char*)cstr, propertyName.c_str()); + property->name.Read(cstr, (uint32_t)propertyName.size(), false); + property->formId = boundFormid; + property->aliasId = -1; + property->status = 1; + script->properties.push_back(property); + } + else if (realPropertyName == "tTimer") { //TES4TimerHelper + PropertyObject* property = new PropertyObject(); + unsigned char *cstr = new unsigned char[propertyName.size() + 1]; + strcpy((char*)cstr, propertyName.c_str()); + property->name.Read(cstr, (uint32_t)propertyName.size(), false); + property->formId = 0x010CBF21; + property->aliasId = -1; + property->status = 1; + script->properties.push_back(property); + } + else if (realPropertyName == "tContainer") { //TES4Container + PropertyObject* property = new PropertyObject(); + unsigned char *cstr = new unsigned char[propertyName.size() + 1]; + strcpy((char*)cstr, propertyName.c_str()); + property->name.Read(cstr, (uint32_t)propertyName.size(), false); + property->formId = 0x010CBF22; + property->aliasId = -1; + property->status = 1; + script->properties.push_back(property); + } + else { + if (realPropertyEdid.substr(0, 14) == "tes4tes4scene_") + log_warning << "Scenes are not imported yet - " << realPropertyEdid << "\n"; + else if (realPropertyEdid.substr(0, 18) == "tes4tes4messagebox") + log_warning << "Messageboxes are not imported yet - " << realPropertyEdid << "\n"; + else + log_warning << "Cannot find entry " << realPropertyEdid << "\n"; + } + + } + + + + } + + } + + void SkyblivionConverter::convertPACKFromOblivion(Ob::PACKRecord& srcRecord, Sk::PACKRecord& dstRecord) { + if (srcRecord.EDID.IsLoaded()) { + std::string newEdid = srcRecord.EDID.value; + newEdid = "TES4" + newEdid; + dstRecord.EDID.value = new char[newEdid.length() + 1]; + std::strcpy(dstRecord.EDID.value, newEdid.c_str()); + } + dstRecord.formID = srcRecord.formID + 0x01000000; + dstRecord.formVersion = 0x28; + + for (uint8_t i = 0; i < srcRecord.CTDA.value.size(); ++i) { + std::vector skCTDAs = convertCTDAFromOblivion(srcRecord.CTDA.value[i]); + for (int ctdaIt = 0; ctdaIt < skCTDAs.size(); ++ctdaIt) { + dstRecord.CTDA.value.push_back(skCTDAs[ctdaIt]); + } + + } + + dstRecord.PKCU = ReqSubRecord(); + dstRecord.PKDT = ReqSubRecord(); + dstRecord.PSDT = ReqSubRecord(); + dstRecord.PSDT.value.date = srcRecord.PSDT.value.date; + dstRecord.PSDT.value.day = srcRecord.PSDT.value.day; + dstRecord.PSDT.value.month = srcRecord.PSDT.value.month; + dstRecord.PSDT.value.hour = srcRecord.PSDT.value.time; + dstRecord.PSDT.value.minute = 0; //not supported in oblivion + dstRecord.PSDT.value.duration = srcRecord.PSDT.value.duration * 60; + // srcRecord.PSDT.value. + + if (srcRecord.IsMustComplete()) { + dstRecord.PKDT->flags |= Sk::PACKRecord::flagsFlags::fMustComplete; + } + + if (srcRecord.IsOncePerDay()) { + dstRecord.PKDT->flags |= Sk::PACKRecord::flagsFlags::fOncePerDay; + } + + if (srcRecord.IsAlwaysSneak()) { + dstRecord.PKDT->flags |= Sk::PACKRecord::flagsFlags::fAlwaysSneak; + } + + if (srcRecord.IsAllowSwimming()) { + dstRecord.PKDT->flags |= Sk::PACKRecord::flagsFlags::fAllowSwimming; + } + + + if (srcRecord.IsAIAccompany()) { + //Accompany conversion. + dstRecord.PKCU->packageTemplate = 0x00019B2C; //Follow package + dstRecord.PKCU->dataInputCount = 6; + dstRecord.PKCU->versionCounter = 4; + dstRecord.versionControl2[0] = 0x06; + + float minRadius = 128.00; + float maxRadius = 256; + + try { + Sk::PACKRecord::PACKPTDA ptda = convertTargetType(srcRecord); + dstRecord.addTargetTemplateSetting("SingleRef", ptda, 0); + } + catch (std::exception) { + char reference[150]; + sprintf(reference, "Package %s ( Accompany ) : Cannot convert target type.", srcRecord.EDID.value); + throw std::runtime_error(reference); //Cannot convert this package type. + } + + dstRecord.addFloatTemplateSetting(minRadius, 1); + dstRecord.addFloatTemplateSetting(maxRadius, 2); + dstRecord.addBoolTemplateSetting(true, 4); + dstRecord.addBoolTemplateSetting(false, 6); + dstRecord.addBoolTemplateSetting(false, 8); + } + else if (srcRecord.IsAIAmbush()) { + //Idk how to handle + + dstRecord.PKCU->packageTemplate = 0x010CBE96; + dstRecord.PKCU->dataInputCount = 5; + dstRecord.PKCU->versionCounter = 2; + dstRecord.formVersion = 43; + dstRecord.addLocationTemplateSetting(convertLocationType(srcRecord), 0); + dstRecord.addTargetTemplateSetting("TargetSelector", convertTargetType(srcRecord), 3); + dstRecord.addObjectListTemplateSetting(0, 5); + dstRecord.addBoolTemplateSetting(false, 6); + dstRecord.addIntTemplateSetting(1, 7); + + //0, 3, 5, 6, 7 + //throw std::exception("Not implemented"); + } + else if (srcRecord.IsAICastMagic()) { + + dstRecord.PKCU->packageTemplate = 0x000504F5; //UseMagic package + dstRecord.versionControl2[0] = 0x04; + dstRecord.PKCU->dataInputCount = 11; + dstRecord.PKCU->versionCounter = 1; + Sk::PACKRecord::PACKPLDT location = convertLocationType(srcRecord); + dstRecord.addLocationTemplateSetting(location, 2); + + Sk::PACKRecord::PACKPTDA spell = Sk::PACKRecord::PACKPTDA(); + spell.targetType = 2; //object type is.. + spell.targetId = 0x15; // .. any spell + spell.targetCount = 1; + dstRecord.addTargetTemplateSetting("TargetSelector", spell, 3); + dstRecord.addTargetTemplateSetting("SingleRef", convertTargetType(srcRecord), 4); + dstRecord.addBoolTemplateSetting(false, 5); + dstRecord.addFloatTemplateSetting(2, 6); + dstRecord.addFloatTemplateSetting(3, 7); + dstRecord.addFloatTemplateSetting(1, 8); + dstRecord.addFloatTemplateSetting(3, 9); + dstRecord.addIntTemplateSetting(1, 10); + dstRecord.addIntTemplateSetting(1, 11); + dstRecord.addBoolTemplateSetting(false, 12); + } + else if (srcRecord.IsAIEat()) { + dstRecord.PKCU->packageTemplate = 0x00019714; //Eat package + dstRecord.PKCU->dataInputCount = 21; + dstRecord.PKCU->versionCounter = 8; + dstRecord.versionControl2[0] = 0x0F; + Sk::PACKRecord::PACKPLDT location = convertLocationType(srcRecord); + dstRecord.addLocationTemplateSetting(location, 0); + dstRecord.addBoolTemplateSetting(true, 15); + + try{ + + Sk::PACKRecord::PACKPTDA food; + + if (!srcRecord.PTDT.IsLoaded()) { + //Standard food targetSelector + food = Sk::PACKRecord::PACKPTDA(); + food.targetType = 2; + food.targetId = 0x14; + food.targetCount = 1; + } + else { + food = convertTargetType(srcRecord); + } + + Sk::PACKRecord::PACKPTDA chairsTarget = Sk::PACKRecord::PACKPTDA(); + chairsTarget.targetCount = 1; + chairsTarget.targetType = 2; + chairsTarget.targetId = 0x1b; + + dstRecord.addTargetTemplateSetting("TargetSelector", food, 1); + + dstRecord.addObjectListTemplateSetting(0, 4); //Found food. + dstRecord.addTargetTemplateSetting("TargetSelector", chairsTarget, 5); //Allow sitting + dstRecord.addObjectListTemplateSetting(0, 6); //Found food. + + dstRecord.addIntTemplateSetting(1, 0xa); + dstRecord.addBoolTemplateSetting(true, 0xc); //Allow already held food to be eaten? + dstRecord.addBoolTemplateSetting(false, 0x10); //ride horself? wtf + dstRecord.addBoolTemplateSetting(false, 0xe); //Allow sitting + dstRecord.addBoolTemplateSetting(true, 0x17); //Create fake food? + dstRecord.addBoolTemplateSetting(true, 0x19); //Allow eating + dstRecord.addBoolTemplateSetting(false, 0x1a); //Allow sleeping + dstRecord.addBoolTemplateSetting(true, 0x1b); //Allow conversation + dstRecord.addBoolTemplateSetting(true, 0x1c); //ALlow idle markers + dstRecord.addBoolTemplateSetting(true, 0x21); //Allow special furniture + dstRecord.addBoolTemplateSetting(true, 0x1d); //Allow sitting + dstRecord.addBoolTemplateSetting(true, 0x1e); //Allow wandering + dstRecord.addFloatTemplateSetting(300, 0x23); //Min wander distance + dstRecord.addBoolTemplateSetting(false, 0x8); //Wander pref path only? + dstRecord.addFloatTemplateSetting(0, 0x20); //Energy + + if ((srcRecord.PKDT.value.flags & 0x1F8) != 0) { + // Handle Un/Locking + FORMID formid = findRecordFormidByEDID("TES4EatLockTemplate"); + + if (formid != NULL) { + dstRecord.PKCU->packageTemplate = formid; + dstRecord.PKCU->dataInputCount += 7; + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtStart(), 0x24); //Lock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtLocation(), 0x25); //Lock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtEnd(), 0x26); //Lock at End? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtStart(), 0x27); //Unlock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtLocation(), 0x28); //Unlock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtEnd(), 0x29); //Unlock at End? + Sk::PACKRecord::PACKPLDT pldt; + pldt.locRadius = 1000; + pldt.locType = 12; + dstRecord.addLocationTemplateSetting(pldt, 0x2a); //Near self + } + } + } + catch (std::exception) { + char reference[150]; + sprintf(reference, "Package %s ( Eat ) : Cannot convert target type.", srcRecord.EDID.value); + throw std::runtime_error(reference); //Cannot convert this package type. + } + + } + else if (srcRecord.IsAIEscort()) { + try { + dstRecord.PKCU->packageTemplate = 0x00023B73; //Escort package + dstRecord.PKCU->dataInputCount = 9; + dstRecord.PKCU->versionCounter = 8; + dstRecord.versionControl2[0] = 0x06; + dstRecord.addTargetTemplateSetting("SingleRef", convertTargetType(srcRecord), 0xB); + dstRecord.addIntTemplateSetting(1, 2); + dstRecord.addLocationTemplateSetting(convertLocationType(srcRecord), 3); + dstRecord.addFloatTemplateSetting(512, 4); + dstRecord.addFloatTemplateSetting(256, 5); + dstRecord.addFloatTemplateSetting(512, 6); + dstRecord.addBoolTemplateSetting(false, 0xD); + dstRecord.addBoolTemplateSetting(false, 0xF); + dstRecord.addFloatTemplateSetting(500, 0x11); + } + catch (std::exception) { + char reference[150]; + sprintf(reference, "Package %s ( Escort ) : Cannot convert target type.", srcRecord.EDID.value); + throw std::runtime_error(reference); //Cannot convert this package type. + } + } + else if (srcRecord.IsAIFind()) { + //Dependency on new .esp plugin. + + dstRecord.PKCU->packageTemplate = 0x010CBE95; //Find + dstRecord.PKCU->dataInputCount = 7; + dstRecord.PKCU->versionCounter = 2; + dstRecord.formVersion = 43; + dstRecord.addLocationTemplateSetting(convertLocationType(srcRecord), 0); + dstRecord.addTargetTemplateSetting("TargetSelector", convertTargetType(srcRecord), 1); + dstRecord.addObjectListTemplateSetting(0, 3); + dstRecord.addBoolTemplateSetting(true, 4); + dstRecord.addIntTemplateSetting(1, 5); + dstRecord.addFloatTemplateSetting(3, 6); + dstRecord.addBoolTemplateSetting(false, 8); + + if ((srcRecord.PKDT.value.flags & 0x1F8) != 0) { + // Handle Un/Locking + FORMID formid = findRecordFormidByEDID("TES4FindLockPackageTemplate"); + + if (formid != NULL) { + dstRecord.PKCU->packageTemplate = formid; + dstRecord.PKCU->dataInputCount += 7; + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtStart(), 0x9); //Lock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtLocation(), 0xa); //Lock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtEnd(), 0xb); //Lock at End? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtStart(), 0xc); //Unlock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtLocation(), 0xd); //Unlock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtEnd(), 0xe); //Unlock at End? + Sk::PACKRecord::PACKPLDT pldt; + pldt.locRadius = 1000; + pldt.locType = 12; + dstRecord.addLocationTemplateSetting(pldt, 0xf); //Near self + } + } + //throw std::exception("Not implemented"); + } + else if (srcRecord.IsAIFleeNotCombat()) { + /** + dstRecord.PKCU->packageTemplate = 0x000197F1; //FleeFrom package + try { + + Sk::PACKRecord::PACKPLDT location = convertLocationType(srcRecord); + + dstRecord.addTargetTemplateSetting("TargetSelector", fleeFromTarget, 0x7); + dstRecord.addLocationTemplateSetting(convertLocationType(srcRecord), 6); + dstRecord.addFloatTemplateSetting(512, 3); + dstRecord.addFloatTemplateSetting(256, 4); + dstRecord.addFloatTemplateSetting(512, 5); + dstRecord.addBoolTemplateSetting(false, 6); + dstRecord.addBoolTemplateSetting(false, 0xD); + dstRecord.addFloatTemplateSetting(500, 0x11); + } + catch (int e) { + printer("Package %s ( Flee ) : Cannot convert target type.", srcRecord.EDID.value); + } + */ + //Not implemented, only a few and hard to implement. + throw std::runtime_error("Flee not Combat Not implemented"); + } + else if (srcRecord.IsAIFollow()) { + //Follow conversion. + bool hasTargetLocation = srcRecord.PLDT.IsLoaded(); + if (hasTargetLocation) + { + dstRecord.PKCU->packageTemplate = 0x00025E6D; //FollowTo + + dstRecord.PKCU->dataInputCount = 5; + dstRecord.PKCU->versionCounter = 9; + dstRecord.versionControl2[0] = 0x06; + float minRadius = 128.00; + float maxRadius = 256; + + try { + Sk::PACKRecord::PACKPTDA ptda = convertTargetType(srcRecord); + dstRecord.addTargetTemplateSetting("SingleRef", ptda, 2); + } + catch (std::exception) { + char reference[150]; + sprintf(reference, "Package %s ( Accompany ) : Cannot convert target type.", srcRecord.EDID.value); + throw std::runtime_error(reference); //Cannot convert this package type. + } + + dstRecord.addFloatTemplateSetting(minRadius, 4); + dstRecord.addFloatTemplateSetting(maxRadius, 5); + try { + dstRecord.addLocationTemplateSetting(convertLocationType(srcRecord), 8); + } + catch (std::exception) { + char reference[150]; + sprintf(reference, "Package %s ( FollowTo ) : Cannot convert target type.", srcRecord.EDID.value); + throw std::runtime_error(reference); //Cannot convert this package type. + } + + dstRecord.addBoolTemplateSetting(true, 6); + } + else { + dstRecord.PKCU->packageTemplate = 0x00019B2C; //Follow package + dstRecord.PKCU->dataInputCount = 6; + dstRecord.PKCU->versionCounter = 4; + dstRecord.versionControl2[0] = 0x06; + float minRadius = 128.00; + float maxRadius = 256; + + try { + Sk::PACKRecord::PACKPTDA ptda = convertTargetType(srcRecord); + dstRecord.addTargetTemplateSetting("SingleRef", ptda, 0); + } + catch (std::exception) { + char reference[150]; + sprintf(reference, "Package %s ( Accompany ) : Cannot convert target type.", srcRecord.EDID.value); + throw std::runtime_error(reference); //Cannot convert this package type. + } + + dstRecord.addFloatTemplateSetting(minRadius, 1); + dstRecord.addFloatTemplateSetting(maxRadius, 2); + dstRecord.addBoolTemplateSetting(false, 4); + dstRecord.addBoolTemplateSetting(false, 6); + dstRecord.addBoolTemplateSetting(false, 8); + } + } + else if (srcRecord.IsAISleep()) { + dstRecord.PKCU->packageTemplate = 0x00019717; //Sleep package + dstRecord.PKCU->dataInputCount = 17; + dstRecord.PKCU->versionCounter = 6; + dstRecord.addLocationTemplateSetting(convertLocationType(srcRecord), 0); + dstRecord.versionControl2[0] = 0x0E; + + Sk::PACKRecord::PACKPTDA bedsTarget = Sk::PACKRecord::PACKPTDA(); + bedsTarget.targetCount = 1; + bedsTarget.targetType = 2; + bedsTarget.targetId = 0x1a; + dstRecord.addTargetTemplateSetting("TargetSelector", bedsTarget, 1); + + dstRecord.addBoolTemplateSetting(false, 0xF); //TODO - check flag OnPackageStart/OnPackageEnd lock doors. + dstRecord.addBoolTemplateSetting(false, 0xD); //TODO - check flag OnPackageStart/OnPackageEnd lock doors. + + dstRecord.addBoolTemplateSetting(false, 0xB); + dstRecord.addObjectListTemplateSetting(0, 0x2); + dstRecord.addBoolTemplateSetting(false, 0x8); + + dstRecord.addBoolTemplateSetting(false, 0x11); + dstRecord.addBoolTemplateSetting(true, 0x12); + + dstRecord.addBoolTemplateSetting(true, 0x13); + dstRecord.addBoolTemplateSetting(true, 0x14); + dstRecord.addBoolTemplateSetting(true, 0x15); + dstRecord.addBoolTemplateSetting(true, 0x19); + dstRecord.addBoolTemplateSetting(true, 0x16); + + dstRecord.addFloatTemplateSetting(300, 0x1A); + dstRecord.addBoolTemplateSetting(false, 0x6); + dstRecord.addFloatTemplateSetting(50, 0x18); + + if ((srcRecord.PKDT.value.flags & 0x1F8) != 0) { + // Handle Un/Locking + FORMID formid = findRecordFormidByEDID("TES4SleepLockTemplate"); + + if (formid != NULL) { + dstRecord.PKCU->packageTemplate = formid; + dstRecord.PKCU->dataInputCount += 7; + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtStart(), 0x1b); //Lock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtLocation(), 0x1c); //Lock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtEnd(), 0x1d); //Lock at End? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtStart(), 0x1e); //Unlock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtLocation(), 0x1f); //Unlock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtEnd(), 0x20); //Unlock at End? + Sk::PACKRecord::PACKPLDT pldt; + pldt.locRadius = 1000; + pldt.locType = 12; + dstRecord.addLocationTemplateSetting(pldt, 0x21); //Near self + } + } + } + else if (srcRecord.IsAITravel()) { + dstRecord.PKCU->packageTemplate = 0x00016FAA; //Travel package + dstRecord.PKCU->dataInputCount = 3; + dstRecord.PKCU->versionCounter = 3; + dstRecord.versionControl2[0] = 0x0A; + dstRecord.addLocationTemplateSetting(convertLocationType(srcRecord), 0); + dstRecord.addBoolTemplateSetting(false, 2); + dstRecord.addBoolTemplateSetting(false, 4); + + if ((srcRecord.PKDT.value.flags & 0x1F8) != 0) { + // Handle Un/Locking + FORMID formid = findRecordFormidByEDID("TES4TravelLockTemplate"); + + if (formid != NULL) { + dstRecord.PKCU->packageTemplate = formid; + dstRecord.PKCU->dataInputCount += 7; + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtStart(), 0x5); //Lock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtLocation(), 0x6); //Lock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtEnd(), 0x7); //Lock at End? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtStart(), 0x8); //Unlock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtLocation(), 0x9); //Unlock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtEnd(), 0xa); //Unlock at End? + Sk::PACKRecord::PACKPLDT pldt; + pldt.locRadius = 1000; + pldt.locType = 12; + dstRecord.addLocationTemplateSetting(pldt, 0xb); //Near self + } + } + } + else if (srcRecord.IsAIUseItemAt()) { + //Needs to be converted 2 idles i think + dstRecord.PKCU->packageTemplate = 0x010CBE97; //UseItemAt + dstRecord.PKCU->dataInputCount = 4; + dstRecord.PKCU->versionCounter = 0; + dstRecord.formVersion = 43; + dstRecord.addLocationTemplateSetting(convertLocationType(srcRecord), 0); + dstRecord.addTargetTemplateSetting("SingleRef", convertTargetType(srcRecord), 1); + dstRecord.addIntTemplateSetting(1, 2); + dstRecord.addBoolTemplateSetting(false, 4); + + if ((srcRecord.PKDT.value.flags & 0x1F8) != 0) { + // Handle Un/Locking + FORMID formid = findRecordFormidByEDID("TES4UseItemAtLockPackageTemplate"); + + if (formid != NULL) { + dstRecord.PKCU->packageTemplate = formid; + dstRecord.PKCU->dataInputCount += 7; + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtStart(), 0x5); //Lock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtLocation(), 0x6); //Lock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtEnd(), 0x7); //Lock at End? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtStart(), 0x8); //Unlock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtLocation(), 0x9); //Unlock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtEnd(), 0xa); //Unlock at End? + Sk::PACKRecord::PACKPLDT pldt; + pldt.locRadius = 1000; + pldt.locType = 12; + dstRecord.addLocationTemplateSetting(pldt, 0xb); //Near self + } + } + //throw std::exception("Use item at Not implemented"); + } + else if (srcRecord.IsAIWander()) { + dstRecord.PKCU->packageTemplate = 0x0001C254; //Sandbox package. + dstRecord.PKCU->dataInputCount = 12; + dstRecord.PKCU->versionCounter = 10; + dstRecord.versionControl2[0] = 0x0F; + dstRecord.addLocationTemplateSetting(convertLocationType(srcRecord), 0); + dstRecord.addBoolTemplateSetting(false, 0xE); + dstRecord.addBoolTemplateSetting(false, 1); + dstRecord.addBoolTemplateSetting(false, 3); + dstRecord.addBoolTemplateSetting(false, 4); + dstRecord.addBoolTemplateSetting(true, 5); + dstRecord.addBoolTemplateSetting(true, 6); + dstRecord.addBoolTemplateSetting(true, 0x1f); + dstRecord.addBoolTemplateSetting(true, 7); + dstRecord.addBoolTemplateSetting(false, 0x19); + dstRecord.addBoolTemplateSetting(false, 0x1b); + dstRecord.addFloatTemplateSetting(50, 0x1d); + + if ((srcRecord.PKDT.value.flags & 0x1F8) != 0) { + // Handle Un/Locking + FORMID formid = findRecordFormidByEDID("TES4SandboxLockTemplate"); + + if (formid != NULL) { + dstRecord.PKCU->packageTemplate = formid; + dstRecord.PKCU->dataInputCount += 7; + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtStart(), 0x20); //Lock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtLocation(), 0x21); //Lock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsLockAtEnd(), 0x22); //Lock at End? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtStart(), 0x23); //Unlock at Start? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtLocation(), 0x24); //Unlock at Location? + dstRecord.addBoolTemplateSetting(srcRecord.IsUnlockAtEnd(), 0x25); //Unlock at End? + Sk::PACKRecord::PACKPLDT pldt; + pldt.locRadius = 1000; + pldt.locType = 12; + dstRecord.addLocationTemplateSetting(pldt, 0x26); //Near self + } + } + + } + + } + + Sk::PACKRecord::PACKPTDA SkyblivionConverter::convertTargetType(Ob::PACKRecord& p) { + /* + OBLIVION: + SEObelisk13PriestFakeActivate: 0x0 -> Object Type NONE + SECaldanaFightAfterSE05Fri20x2: 0x18 -> Object Type WEAPONS MEELE + SEUshnarFightAfterSE05Mon20x2: 0xd -> Weapons any + SEHalionReadsInLoft: 0x4 -> Books + SECaldanaMonriusBugPeople: 0xf -> NPCs ( at least one value ) + XPXidittec1AlchemyPCKG: 0x13 -> Alchemy + SEBreakneckPractice: 0x1b -> Spells RANGE TARGET + SEBruscusDannusFindArmor: 0x3 -> Armor + SEBruscusDannusDumpIngredients: 0x8 -> Indegrients + SEBruscusDannusFindClothing: 0x5 -> Clothing + MilcharSubBossCast02: 0x1d -> Range self + SE08c2PriestSit: 0xc -> Furniture + SE32AlthelShootFanatic2: 0x19 -> Weapons RANGED + EdlaDarkHeartCollectArrows: 0xe -> AMMO + AnvilThurindilFightHaulsRopesFaster1x3: 0x17 -> Weapons NONE + CheydinhalMGTrayvondCastAlteration: 0x1e -> Spells School ALTERATION + CheydinhalMGDeetsanMakePotions12x8: 0x2 -> Apparatus + BravilMGDelphineJendCastDestruction: 0x20 -> Spells School DESTRUCTION + BravilMGItaRienusCastMysticism: 0x22 -> Spells School Mysticism + MageCast1: 0x1a -> Spells Any + GasparPracticeIllusionSpellsAfternoon: 0x21 -> Spells School Illusion + TempleMothPriestGather18x10: 0xb -> FLORA + TempleMothPriestGather4x10: 0x14 -> FOOD + TempleMothPriestStorage10x2: 0x6 -> Containers + Dark08NevilleGearPackage: 0x15 -> Combat Wearable + MQ06AcolyteTalkative: 0x23 -> Spells School RESTORATION + CitySwimmerForage10x10: 0x1c -> Spells RANGE TOUCH + BravilSundayHunt: 0x26 INVALID ( xD ) + + Conversion map: + 0x00 -> 0x00 + 0xd -> 0xb + 0x04 -> 0x03 + 0x14 -> 0x19 + 0x13 -> 0x0E + 0x1b -> 0x16 + 0x3 -> 0x02 + 0x8 -> 0x06 + 0x5 -> 0x11 ( clothing, not really sure if conversion to ALL:WEARABLE is ok ) + 0x1d -> 0x18 + 0xc -> 0x1b ( to chairs, again, not sure if this is ok, it seems like furniture hits were aimed at sittable things in oblivion ) + 0x19 -> 0x14 + 0xe -> 0xc + 0x17 -> 0x12 + 0x1e -> impossible ( cannot conditionalize by school ) + 0x2 -> impossible ( no apparatus in skyrim )\ + 0x20 -> impossible ( no apparatus in skyrim )\ + 0x22 -> impossible ( no apparatus in skyrim )\ + 0x1a -> 0x15 + 0x21 -> impossible + 0xb -> 0x09 + 0x14 -> 0xf + 0x06 -> 0x04 + 0x15 -> 0x10 + 0x23 -> impossible + 0x1c -> 0x17 + */ + + Sk::PACKRecord::PACKPTDA ptda = Sk::PACKRecord::PACKPTDA(); + + if (!p.PTDT.IsLoaded()) { + throw std::runtime_error("Trying to convert a target type from an oblivion AIPack that does not have a target type!"); + } + + ptda.targetCount = p.PTDT->targetCount; + ptda.targetType = p.PTDT->targetType; + + if (ptda.targetType == 2) { + //Convert object type. + switch (p.PTDT->targetId) { + case 0x00: { ptda.targetId = 0x00; break; } + case 0xd: { ptda.targetId = 0xb; break; } + case 0x04: { ptda.targetId = 0x03; break; } + case 0x13: { ptda.targetId = 0x0E; break; } + case 0x1b: { ptda.targetId = 0x16; break; } + case 0x3: { ptda.targetId = 0x02; break; } + case 0x8: { ptda.targetId = 0x06; break; } + case 0x5: { ptda.targetId = 0x11; break; } + case 0x1d: { ptda.targetId = 0x18; break; } + case 0xc: { ptda.targetId = 0x1b; break; } + case 0x19: { ptda.targetId = 0x14; break; } + case 0xe: { ptda.targetId = 0xc; break; } + case 0x17: { ptda.targetId = 0x12; break; } + case 0x1e: { + + ptda.targetType = 3; + ptda.targetId = 0x001076F1; //MagicSchoolAlteration KYWD + break; + + } + case 0x2: { + ptda.targetType = 3; + ptda.targetId = 0x010CBE98; //TES4ApparatusKeyword FORMID from Skyblivion + break; + } + case 0x20: { + + ptda.targetType = 3; + ptda.targetId = 0x001076F0; //MagicSchoolDestruction KYWD + break; + + } + case 0x22: { + + ptda.targetType = 3; + ptda.targetId = 0x001076F1; //MagicSchoolAlteration ( no mysticism in skyrim .. ) KYWD + break; + + } + case 0x1a: { ptda.targetId = 0x15; break; } + case 0x21: { + + ptda.targetType = 3; + ptda.targetId = 0x001076F2; //MagicSchoolIllusion KYWD + break; + + } + case 0xb: { ptda.targetId = 0x09; break; } + case 0x14: { ptda.targetId = 0xf; break; } + case 0x06: { ptda.targetId = 0x04; break; } + case 0x15: { ptda.targetId = 0x10; break; } + case 0x23: { + + ptda.targetType = 3; + ptda.targetId = 0x001076F3; //MagicSchoolRestoration KYWD + break; + + } + case 0x1c: { ptda.targetId = 0x17; break; } + } + + } + else if (ptda.targetType == 0 || ptda.targetType == 1 || ptda.targetType == 3) { + ptda.targetId = convertFormid(p.PTDT->targetId); + } + else { + ptda.targetId = p.PTDT->targetId; + } + + + return ptda; + } + + Sk::PACKRecord::PACKPLDT SkyblivionConverter::convertLocationType(Ob::PACKRecord &p) { + + if (!p.PLDT.IsLoaded()) { + long defaultRadius = 500; + //if not loaded, then near self. + Sk::PACKRecord::PACKPLDT pack = Sk::PACKRecord::PACKPLDT(); + pack.locType = 12; + pack.locId = 0; + pack.locRadius = defaultRadius; + return pack; + } + + Sk::PACKRecord::PACKPLDT pack = Sk::PACKRecord::PACKPLDT(); + if (p.PLDT->locType == 2) { + pack.locType = 12; + } + else if (p.PLDT->locType == 4 || p.PLDT->locType == 5) { //object id object type is hard to convert - so we omit. + throw std::runtime_error("Object ID/Object Type is hard to convert as a location in skyrim - we omit it."); + } + else { + pack.locType = p.PLDT->locType; + } + + if (pack.locType == 0 || pack.locType == 1 || pack.locType == 2 || pack.locType == 6 || pack.locType == 9) { + pack.locId = convertFormid(p.PLDT->locId & 0xFFFFFF); + } + else { + pack.locId = p.PLDT->locId; + } + pack.locRadius = p.PLDT->locRadius; + + + return pack; + + } + + + std::vector SkyblivionConverter::convertCTDAFromOblivion(GENCTDA* oCTDA) { + + std::vector result = std::vector(); + //Convert the operator. + unsigned char oOperType = oCTDA->operType >> 4; + unsigned char oOperFlags = oCTDA->operType & 0x0F; + + unsigned char sOperType = oOperType / 2; + unsigned char sOperFlags = (oOperFlags & ~0x02); //Remove run on target oblivion field.; + + //If we want to set CIS1/CIS2 for a given condition.. + char *dstCIS1 = NULL; + char *dstCIS2 = NULL; + + + FORMID_OR_UINT32 parameterOne = oCTDA->param1; + FORMID_OR_UINT32 parameterTwo = oCTDA->param2; + + Function_Arguments_Iterator curCTDAFunction = Function_Arguments.find(oCTDA->ifunc); + if (curCTDAFunction != Function_Arguments.end()) + { + const FunctionArguments &CTDAFunction = curCTDAFunction->second; + if (CTDAFunction.first == eFORMID) { + parameterOne = convertFormid(parameterOne); + } + if (CTDAFunction.second == eFORMID) { + parameterTwo = convertFormid(parameterTwo); + } + } + + FORMID_OR_FLOAT32 comparisionValue; + + if ((sOperFlags & 0x04) == 0x04) { + comparisionValue = convertFormid(oCTDA->compValue); + } + else { + comparisionValue = oCTDA->compValue; + } + + uint32_t runOn; + if ((oOperFlags & 0x02) == 0x02) { //Has run on target flag? + runOn = 0x01; + } + else { + runOn = 0x00; + } + + //Convert the indice. + int skyrimIndice; + + switch (oCTDA->ifunc) { + + case 127: { skyrimIndice = 497; break; } + case 81: { throw std::runtime_error("Not implemented in Skyrim"); } + case 274: { throw std::runtime_error("Not implemented in Skyrim"); } + case 264: { throw std::runtime_error("Not implemented in Skyrim"); } + case 116: { skyrimIndice = 459; parameterOne = 0x010CBF23; break; } //Force the TES4CyrodiilCrimeFaction check + case 180: { throw std::runtime_error("Not implemented in Skyrim"); } + case 76: { skyrimIndice = 14; parameterOne = 0x44; break; } //GetDisposition => GetActorValue(Variable01) + case 215: { throw std::runtime_error("Not implemented in Skyrim"); } + case 128: { throw std::runtime_error("Not implemented in Skyrim"); } + case 305: { throw std::runtime_error("Not implemented in Skyrim"); } + case 224: { throw std::runtime_error("Not implemented in Skyrim"); } + case 197: { throw std::runtime_error("Not implemented in Skyrim"); } + case 201: { throw std::runtime_error("Not implemented in Skyrim"); } + case 249: { skyrimIndice = 74; parameterOne = 0x010223C5; break; } //TES4Fame + case 251: { skyrimIndice = 74; parameterOne = 0x011955E4; break; } //TES4Infamy + case 365: { skyrimIndice = 625; parameterOne = 0x01193002; break; }//TES4SEWorldLocation + case 362: { skyrimIndice = 339; break; } + case 259: { throw std::runtime_error("Not implemented in Skyrim"); } + case 258: { throw std::runtime_error("Not implemented in Skyrim"); } + case 40: { skyrimIndice = 226; break; } + case 109: { throw std::runtime_error("Not implemented in Skyrim"); } + case 227: { skyrimIndice = 226; break; } //Inaccurate? + case 313: { throw std::runtime_error("Not implemented in Skyrim"); } + case 171: { + skyrimIndice = 499; + float constOne = 1.0f; + float floatComparisionValue = reinterpret_cast(comparisionValue); + if (floatComparisionValue == constOne) { + sOperType = 2; + } else { + sOperType = 0; + } + runOn = 0x1; + comparisionValue = 0; + break; + } //IsPlayerInJail == 0 -> GetDaysInJail == 0, IsPlayerInJail == 1 -> GetDaysInJail > 0 + case 58: { + /* + * In TES Games, Stage state is represented by a hashmap , for example: + * 0 => false + * 10 => false + * 20 => true + * 30 => true + * In oblivion, when doing a GetStage comparision, code would look for hashmap entries matching the predicate and check if any of them are true + * In skyrim however, the GetStage result is evaluated permanently, by scanning all hashmap results and taking the MAX key that had true value + * This can screw up two scenarios: + * 1) GetStage < N, in Oblivion it would not fire initially, because on a non-started quests, all states = false, + * however in Skyrim, it would return MAX(keys) = 0, and since 0 < N is true for any N, it would fire in all circumstances. + * 2) GetStage == 0, same drill as above + */ + + skyrimIndice = 58; + + /** + * GetStage(Q) < N, convert to (IsQuestRunning(Q) == 1 && GetStage(Q) < N) + */ + /* + * Might be actually bullshit, turning off for now + if (oOperType == 8 || oOperType == 10 || (oOperType == 0 && comparisionValue == 0)) { + Sk::SKCTDA *isRunning = new Sk::SKCTDA(); + isRunning->operType = 0; + isRunning->compValue = 0x3f800000; //1.0f + isRunning->ifunc = 56; + isRunning->param1 = parameterOne; + isRunning->param2 = 0; + isRunning->runOnType = 0; + isRunning->reference = 0; + result.push_back(isRunning); + } + **/ + + break; + } + case 329: { throw std::runtime_error("Not implemented in Skyrim"); } + case 101: { skyrimIndice = 263; break; } + case 104: { throw std::runtime_error("Not implemented in Skyrim"); } + case 323: { throw std::runtime_error("Not implemented in Skyrim"); } + case 125: { skyrimIndice = 68; parameterOne = 0x01034E6E; break; } //IsGuard -> GetIsClass(TES4Guard) + + case 53: { + + /** + * Convert to GetVMScriptVariable + */ + + if (oCTDA->param1 == NULL) + { + //Damaged oblivion record.. just skip the ctda + return result; + } + + + Record *rec = findRecordByFormid(oCTDA->param1, REV32(ACHR)); + FORMID scriptId = 0; + if (rec != NULL) { + Ob::ACHRRecord *achr = (Ob::ACHRRecord *)rec; + Record *crec = findRecordByFormid(achr->NAME.value, REV32(NPC_)); + + if (crec == NULL) + { + throw new std::runtime_error("Cannot find base NPC_ for GetScriptVariable conversion."); + } + + Ob::NPC_Record *npc = (Ob::NPC_Record*)crec; + scriptId = npc->SCRI.value; + } + else { + rec = findRecordByFormid(oCTDA->param1, REV32(ACRE)); + if (rec != NULL) { + Ob::ACRERecord *acre = (Ob::ACRERecord *)rec; + Record *crec = findRecordByFormid(acre->NAME.value, REV32(CREA)); + + if (crec == NULL) + { + throw new std::runtime_error("Cannot find base CREA for GetScriptVariable conversion."); + } + + Ob::CREARecord *crea = (Ob::CREARecord*)crec; + scriptId = crea->SCRI.value; + } + else { + rec = findRecordByFormid(oCTDA->param1, REV32(REFR)); + + if (rec != NULL) { + Ob::REFRRecord *refr = (Ob::REFRRecord *)rec; + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(ACTI)); + if (crec != NULL) { + Ob::ACTIRecord* ACTIrec = (Ob::ACTIRecord*)crec; + scriptId = ACTIrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(ALCH)); + if (crec != NULL) { + Ob::ALCHRecord* ALCHrec = (Ob::ALCHRecord*)crec; + scriptId = ALCHrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(APPA)); + if (crec != NULL) { + Ob::APPARecord* APPArec = (Ob::APPARecord*)crec; + scriptId = APPArec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(ARMO)); + if (crec != NULL) { + Ob::ARMORecord* ARMOrec = (Ob::ARMORecord*)crec; + scriptId = ARMOrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(BOOK)); + if (crec != NULL) { + Ob::BOOKRecord* BOOKrec = (Ob::BOOKRecord*)crec; + scriptId = BOOKrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(CLOT)); + if (crec != NULL) { + Ob::CLOTRecord* CLOTrec = (Ob::CLOTRecord*)crec; + scriptId = CLOTrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(CONT)); + if (crec != NULL) { + Ob::CONTRecord* CONTrec = (Ob::CONTRecord*)crec; + scriptId = CONTrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(DOOR)); + if (crec != NULL) { + Ob::DOORRecord* DOORrec = (Ob::DOORRecord*)crec; + scriptId = DOORrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(FLOR)); + if (crec != NULL) { + Ob::FLORRecord* FLORrec = (Ob::FLORRecord*)crec; + scriptId = FLORrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(FURN)); + if (crec != NULL) { + Ob::FURNRecord* FURNrec = (Ob::FURNRecord*)crec; + scriptId = FURNrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(INGR)); + if (crec != NULL) { + Ob::INGRRecord* INGRrec = (Ob::INGRRecord*)crec; + scriptId = INGRrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(KEYM)); + if (crec != NULL) { + Ob::KEYMRecord* KEYMrec = (Ob::KEYMRecord*)crec; + scriptId = KEYMrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(LIGH)); + if (crec != NULL) { + Ob::LIGHRecord* LIGHrec = (Ob::LIGHRecord*)crec; + scriptId = LIGHrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(LVLC)); + if (crec != NULL) { + Ob::LVLCRecord* LVLCrec = (Ob::LVLCRecord*)crec; + scriptId = LVLCrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(MISC)); + if (crec != NULL) { + Ob::MISCRecord* MISCrec = (Ob::MISCRecord*)crec; + scriptId = MISCrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(QUST)); + if (crec != NULL) { + Ob::QUSTRecord* QUSTrec = (Ob::QUSTRecord*)crec; + scriptId = QUSTrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(SGST)); + if (crec != NULL) { + Ob::SGSTRecord* SGSTrec = (Ob::SGSTRecord*)crec; + scriptId = SGSTrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(SLGM)); + if (crec != NULL) { + Ob::SLGMRecord* SLGMrec = (Ob::SLGMRecord*)crec; + scriptId = SLGMrec->SCRI.value; + } + else { + Record* crec = findRecordByFormid(refr->Data.value->NAME.value, REV32(WEAP)); + if (crec != NULL) { + Ob::WEAPRecord* WEAPrec = (Ob::WEAPRecord*)crec; + scriptId = WEAPrec->SCRI.value; + } + else { + throw new std::runtime_error("Cannot find refr base obj for GetScriptVariable conversion."); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + else { + throw new std::runtime_error("Cannot find refr/achr/acre for GetScriptVariable conversion."); + + } + + } + } + + Record *srec = findRecordByFormid(scriptId, REV32(SCPT)); + + //Actually this happens in vanilla oblivion too.. + if (srec == NULL) { + char buffer[50]; + sprintf(buffer, "GetVMScriptVariable %04x No script found\n", oCTDA->param1); + log_warning << buffer; + return result; + } + + Ob::SCPTRecord* script = (Ob::SCPTRecord*)srec; + + struct GENVARS *targetVariable = *std::find_if(script->VARS.value.begin(), script->VARS.value.end(), [=](const GENVARS* record) { return record->SLSD.value.index == oCTDA->param2; }); + + if (targetVariable == NULL) { + throw new std::runtime_error("Cannot find script for GetQuestVariable conversion."); + } + + std::string papyrusVariableName = "::" + std::string(targetVariable->SCVR.value) + "_p_var"; + + dstCIS2 = new char[papyrusVariableName.size() + 1]; + memcpy(dstCIS2, papyrusVariableName.c_str(), papyrusVariableName.size() + 1); + + skyrimIndice = 630; + + break; + + } + + case 79: { + /** + * Convert to GetVMQuestVariable + */ + Record *rec = findRecordByFormid(oCTDA->param1, REV32(QUST)); + + if (rec == NULL) { + throw new std::runtime_error("Cannot find quest for GetQuestVariable conversion."); + } + + Ob::QUSTRecord* p = (Ob::QUSTRecord*)rec; + + Record *srec = findRecordByFormid(p->SCRI.value, REV32(SCPT)); + + if (srec == NULL) { + throw new std::runtime_error("Cannot find script for GetQuestVariable conversion."); + } + + Ob::SCPTRecord* script = (Ob::SCPTRecord*)srec; + + struct GENVARS *targetVariable = *std::find_if(script->VARS.value.begin(), script->VARS.value.end(), [=](const GENVARS* record) { return record->SLSD.value.index == oCTDA->param2; }); + + if (targetVariable == NULL) { + throw new std::runtime_error("Cannot find script for GetQuestVariable conversion."); + } + + std::string papyrusVariableName = "::" + std::string(targetVariable->SCVR.value) + "_p_var"; + + dstCIS2 = new char[papyrusVariableName.size() + 1]; + memcpy(dstCIS2, papyrusVariableName.c_str(), papyrusVariableName.size() + 1); + + skyrimIndice = 629; + + break; + + } + + + case 14: + case 277: { + std::vector indexMap(72, 0xA5); + + indexMap[8] = 0x18; //Health + indexMap[9] = 0x19; //Magicka + indexMap[10] = 0x20; //Fatigue -> Stamina + indexMap[11] = 0x1F; //Encumbrance -> InventoryWeight + indexMap[12] = 0xA; //Armorer -> Smithing + indexMap[14] = 0x6; //Blade -> OneHanded + indexMap[15] = 0x9; //Block + indexMap[16] = 0x6; //Blunt -> OneHanded + indexMap[18] = 0xB; //HeavyArmor + indexMap[19] = 0x10; //Alchemy + indexMap[20] = 0x12; //Alteration + indexMap[21] = 0x13; //Conjuration + indexMap[22] = 0x14; //Destruction + indexMap[23] = 0x15; //Illusion + indexMap[24] = 0x15; //Mysticism -> Illusion + indexMap[25] = 0x16; //Restoration + indexMap[26] = 0xF; //Acrobatics -> Sneak + indexMap[27] = 0xC; //LightArmor + indexMap[28] = 0x8; //Marksman + indexMap[29] = 0x11; //Mercantile -> Speechcraft + indexMap[30] = 0xE; //Security -> Lockpicking + indexMap[31] = 0xF; //Sneak + indexMap[32] = 0x11; //Speechcraft + indexMap[35] = 0x2; //Energy + indexMap[45] = 0x54; //Blindness + indexMap[47] = 0x36; //Invisibility + indexMap[48] = 0x35; //Paralysis + indexMap[52] = 0x53; //SpellAbsorbChance -> AbsorbChance + indexMap[55] = 0x39; //WaterBreathing + indexMap[56] = 0x3A; //WaterWalking + indexMap[61] = 0x29; //ResistFire -> FireResist + indexMap[62] = 0x2B; //ResistFrost -> FrostResist + indexMap[63] = 0x2D; //ResistDisease -> DiseaseResist + indexMap[64] = 0x2C; //ResistMagic -> MagicResist + indexMap[67] = 0x28; //ResistPoison -> PoisonResist + indexMap[68] = 0x2A; //ResistShock -> ElectricResist + + /** + * Change GetActorValue(Fame/Infamy) to checking global value. By the way, this behavior is even not recommended by CS.elderscrolls manual yet they were doing it.. + */ + if (parameterOne == 0x26) { + skyrimIndice = 74; + parameterOne = 0x010223C5; + } + else if (parameterOne == 0x27) { + skyrimIndice = 74; + parameterOne = 0x011955E4; + } + else { + skyrimIndice = oCTDA->ifunc; + if (indexMap[parameterOne] == 0xA5) { + throw std::runtime_error("Actor value is not implemented yet"); + } + parameterOne = indexMap[parameterOne]; + } + + break; + } + + case 52480: + case 29281: + case 51232: + case 53168: + case 13568: + case 12615: { + skyrimIndice = oCTDA->ifunc; + break; + } + + default: { skyrimIndice = oCTDA->ifunc; } + } + + Sk::SKCTDA* dstRecord = new Sk::SKCTDA(); + dstRecord->operType = (sOperType << 5) + sOperFlags; + dstRecord->compValue = comparisionValue; + dstRecord->ifunc = skyrimIndice; + dstRecord->param1 = parameterOne; + dstRecord->param2 = parameterTwo; + dstRecord->runOnType = runOn; + dstRecord->reference = 0; + + Sk::SKCondition * dstRecordAggr = new Sk::SKCondition(); + dstRecordAggr->CTDA.value = *dstRecord; + + if (dstCIS1 != NULL) { + dstRecordAggr->CIS1.Copy(dstCIS1); + } + + if (dstCIS2 != NULL) { + dstRecordAggr->CIS2.Copy(dstCIS2); + } + + result.push_back(dstRecordAggr); + return result; + + + } + + void SkyblivionConverter::bindScriptProperties(std::vector* dialogueVector, std::vector* questVector) { + TES5File* skyrimMod = (TES5File*)this->skyrimCollection.ModFiles[2]; + + for (auto it = infosToBind.begin(); it != infosToBind.end(); ++it) { + Ob::INFORecord* info = it->first; + Sk::INFORecord* newInfo = it->second; + + Script* TIFScript = new Script(); + + std::string TIFScriptName = "TIF_"; + + if (info->EDID.IsLoaded()) { + TIFScriptName.append(info->EDID.value); + } + + TIFScriptName.append("_"); + char* castedFormid = new char[9]; + sprintf(castedFormid, "%08x", info->formID + 0x01000000); + TIFScriptName.append(castedFormid); + delete castedFormid; + + char* cpyTwo = new char[TIFScriptName.size() + 1]; + strcpy(cpyTwo, TIFScriptName.c_str()); + + TIFScript->name.Copy(cpyTwo); + + FragmentINFO* infoFragment = new FragmentINFO(); + infoFragment->unk1 = 0; + unsigned char* tifpointer = reinterpret_cast(TIFScript->name.value); + infoFragment->fileName.Read(tifpointer, TIFScript->name.GetSize(), false); + + infoFragment->flags = 0x01; //Has onEnd + + std::string fragmentFragmentName = "Fragment_0"; + + GenFragment* infoFragmentFragment = new GenFragment(); + infoFragmentFragment->fragmentName.Copy(const_cast(fragmentFragmentName.c_str())); + + + unsigned char* tifsubpointer = reinterpret_cast(TIFScript->name.value); + infoFragmentFragment->scriptName.Read(tifsubpointer, TIFScript->name.GetSize(), false); + infoFragmentFragment->unk1 = 1; + + infoFragment->fragments.push_back(infoFragmentFragment); + + + + try { + SkyblivionScript skScript = SkyblivionScript(this->BUILD_TARGET_DIALOGUES(), "", TIFScriptName, this->ROOT_BUILD_PATH()); + bindProperties(TIFScript, skScript); + newInfo->VMAD.value = new VMADRecord(); + newInfo->VMAD.value->scripts.push_back(TIFScript); + newInfo->VMAD.value->fragment = infoFragment; + } + catch (std::exception except) { + log_warning << except.what() << "\n"; + } + /* TODO - Check if needed, probably not + std::string outputPath = scriptOutputPath + "/" + std::string(TIFScript->name.value) + ".psc"; + FILE* handle = fopen(outputPath.c_str(), "w+"); + std::string TIFFragmentScript = std::string(info->SCTX.value); + const char* outputData = TIFFragmentScript.c_str(); + fwrite(outputData, 1, TIFFragmentScript.size(), handle); + fclose(handle); + */ + } + + for (uint32_t i = 0; i < dialogueVector->size(); i++) { + skyrimMod->DIAL.dial_pool.construct(dialogueVector->at(i), NULL, false); + } + + std::vector> scripts; + TES4File* d = (TES4File *)this->oblivionCollection.ModFiles[0]; + d->SCPT.pool.MakeRecordsVector(scripts); + + for (auto it = qustsToBind.begin(); it != qustsToBind.end(); ++it) { + Ob::QUSTRecord* qust = it->first; + Sk::QUSTRecord* newQust = it->second; + + Ob::SCPTRecord* script = reinterpret_cast(*std::find_if(scripts.begin(), scripts.end(), [=](const Record* record) { return record->formID == qust->SCRI.value; })); + try { + Script* convertedScript = createVirtualMachineScriptFor(script); + newQust->VMAD.value->scripts.push_back(convertedScript); + } + catch (std::exception &ex) + { + log_warning << "Cannot bind script to QUST: " << std::string(ex.what()) << std::endl; + //Silent catch - just do not do anything. + } + } + + for (auto it = qfsToBind.begin(); it != qfsToBind.end(); ++it) { + std::string qfName = it->first; + Script* qfScript = it->second; + + try { + SkyblivionScript skScript = SkyblivionScript(this->BUILD_TARGET_QUESTS(), "", qfName, this->ROOT_BUILD_PATH()); + bindProperties(qfScript, skScript); + } + catch (std::exception ex) { + log_warning << ex.what() << "\n"; + } + } + + for (uint32_t i = 0; i < questVector->size(); i++) { + skyrimMod->QUST.pool.construct(questVector->at(i), NULL, false); + } + + // clear maps to prevent re-binding + infosToBind.clear(); + qustsToBind.clear(); + qfsToBind.clear(); + } +} \ No newline at end of file diff --git a/src/Skyblivion/Skyblivion.h b/src/Skyblivion/Skyblivion.h new file mode 100644 index 0000000..a97a475 --- /dev/null +++ b/src/Skyblivion/Skyblivion.h @@ -0,0 +1,244 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +// BaseRecord.h +#include +#include "../Common.h" +#include "../Oblivion/Records/PACKRecord.h" +#include "../Oblivion/Records/DIALRecord.h" +#include "../Skyrim/Records/PACKRecord.h" +#include "../Skyrim/Records/DIALRecord.h" +#include "../Skyrim/Records/DLBRRecord.h" +#include "../Skyrim/SkyrimChunks.h" +#include "../Collection.h" +#include "md5.h" + +namespace Skyblivion { + + class SkyblivionScript { + + private: + std::string scriptPrefix; + std::string scriptName; + std::string buildName; + std::string rootScriptBuildDirectory; + std::string cachedScriptName; + + public: + + SkyblivionScript(std::string buildName, + std::string scriptPrefix, + std::string scriptName, + std::string rootScriptBuildDirectory): + scriptPrefix(scriptPrefix), + scriptName(scriptName), + buildName(buildName), + rootScriptBuildDirectory(rootScriptBuildDirectory) { + //.. + } + + std::string getBuildName() const { return this->buildName; } + std::string getScriptName() { + + if(this->cachedScriptName.empty()) { + std::string nonprefixedName = this->scriptName; + std::transform(nonprefixedName.begin(), nonprefixedName.end(), nonprefixedName.begin(), ::tolower); + std::string scriptName = this->scriptPrefix + nonprefixedName; + + if (scriptName.size() > 38) { + MD5 md5obj; + char *md5 = md5obj.digestString((char *)nonprefixedName.c_str()); + scriptName = this->scriptPrefix + std::string(md5); + } + + this->cachedScriptName = scriptName; + } + + return this->cachedScriptName; + + } + + std::string getScriptPath() { + return rootScriptBuildDirectory + "Transpiled/" + this->buildName + "/" + this->getScriptName() + ".psc"; + } + + std::string getBuiltScriptPath () { + std::string scriptName = this->scriptName; + std::transform(scriptName.begin(), scriptName.end(), scriptName.begin(), ::tolower); + return rootScriptBuildDirectory + "Artifacts/" + this->buildName + "/" + this->getScriptName() + ".pex"; + } + + }; + + class SkyblivionConverter { + + + private: + Sk::PACKRecord::PACKPTDA convertTargetType(Ob::PACKRecord &p); + Sk::PACKRecord::PACKPLDT convertLocationType(Ob::PACKRecord &p); + + /** + * Converts a formid from Oblivion's collection to Skyblivion's ESM + * It assumes that Oblivion.esm is expanded into 00 Load Order, + * and Skyblivion.esm is expanded into 01 Load Order, + */ + FORMID convertFormid(FORMID sourceFormid) { + + // if (sourceFormid == 0x07) { + // sourceFormid = 0x14; //Oblivion old player ref to new player ref + // } + + //greeting topic + if (sourceFormid == 0xC8) { + sourceFormid = 0x010011C8; //Mapping out of masterspace, above 0x120 + } + //rumors topic + if (sourceFormid == 0xD7) { + sourceFormid = 0x010011D7; //Mapping out of masterspace, above 0x120 + } + //Races + else if (sourceFormid == 0x907) { + sourceFormid = 0x13744; //Imperial + } + else if (sourceFormid == 0xD43) { + sourceFormid = 0x13748; //Redguard + } + else if (sourceFormid == 0x191C0) { + sourceFormid = 0x13747; //Orc + } + else if (sourceFormid == 0x191C1) { + sourceFormid = 0x13742; //Dark Elf + } + else if (sourceFormid == 0x19204) { + sourceFormid = 0x13743; //High Elf + } + else if (sourceFormid == 0x223C7) { + sourceFormid = 0x13745; //Khajiit + } + else if (sourceFormid == 0x223C8) { + sourceFormid = 0x13749; //Wood Elf + } + else if (sourceFormid == 0x224FC) { + sourceFormid = 0x13741; //Breton + } + else if (sourceFormid == 0x224FD) { + sourceFormid = 0x13746; //Nord + } + else if (sourceFormid == 0x23FE9) { + sourceFormid = 0x13740; //Argonian + } + else if (sourceFormid == 0x38010) { + sourceFormid = 0x131F0; //Dremora + } + else if (sourceFormid == 0x0B) { + sourceFormid = 0x3A070; //Skeleton key + } + else if (sourceFormid == 0x191) { + sourceFormid = 0x0100081E; //Welkynd stone has different formid.. + } + else if (sourceFormid == 0x193) { + sourceFormid = 0x63B27; //Azura's star + } + else if (sourceFormid == 0x1208E) { + sourceFormid = 0x13747; //DarkSeducer not present in code, mapped to orc.. FIX IT as its not proper! + } + else if (sourceFormid == 0x1208F) { + sourceFormid = 0x13747; //DarkSeducer not present in code, mapped to orc.. FIX IT as its not proper! + } + //Last two formids are SNDS used in DOORs + else if (sourceFormid != 0x07 && sourceFormid != 0x0A && sourceFormid != 0x13 && sourceFormid != 0x14 && sourceFormid != 0x39 && sourceFormid != 0x38 && sourceFormid != 0x37 && sourceFormid != 0x0F && sourceFormid != 0x00 && sourceFormid != 0x03C813 && sourceFormid != 0x03C810) { + sourceFormid = (sourceFormid & 0xFFFFFF) + 0x01000000; //Add a 01000000 to everything but gold, lockpick, creature faction, gameDay, gameHour and null references. + } + + return sourceFormid; + + } + + const std::string rootBuildPath; + std::map *edidMap; + std::map *> *targetsMapping; + Collection &oblivionCollection; + Collection &skyrimCollection; + std::vector> scripts; + std::map infosToBind; + std::map qustsToBind; + std::map qfsToBind; + + Record *findRecordByFormidGeneric(FORMID_OR_UINT32 formid); + Record *findRecordByFormid(FORMID_OR_UINT32 formid, uint32_t type); + + public: + + SkyblivionConverter(Collection &oblivionCollection, Collection &skyrimCollection, const std::string rootPath); + + const std::string ROOT_BUILD_PATH() const { return rootBuildPath; } + std::string BUILD_TARGET_STANDALONE() { return "Standalone"; }; + std::string BUILD_TARGET_DIALOGUES() { return "TIF"; } + std::string BUILD_TARGET_PACKAGES() { return"PF"; } + std::string BUILD_TARGET_QUESTS() { return "QF"; } + + Sk::QUSTOBJECTIVE * convertObjective(Sk::QUSTRecord *skq, Ob::QUSTRecord::QUSTTarget *obTarget, uint32_t newIndex, std::map& formIdToAliasId); + Script* createVirtualMachineScriptFor(Ob::SCPTRecord* scpt); + void convertPACKFromOblivion(Ob::PACKRecord& srcRecord, Sk::PACKRecord& dstRecord); + std::vector convertCTDAFromOblivion(GENCTDA* srcRecord); + std::vector * convertDIALFromOblivion(); + std::vector * convertQUSTFromOblivion(); + void bindProperties(Script* script, SkyblivionScript &skScript); + void bindScriptProperties(std::vector* dialogueVector, std::vector* questVector); + + std::map*>* getTargetsMappingTable(); + + std::map *prepareSkyblivionEdidMap(); + + void insertToEdidMap(std::string edid, FORMID formid); + FORMID findRecordFormidByEDID(std::string edid); + + TES4File *getOblivionFile() { return (TES4File*)this->oblivionCollection.ModFileByName("Oblivion.esm"); } + TES5File *getSkyrimFile() { return (TES5File*)this->skyrimCollection.ModFileByName("Skyrim.esm"); } + TES5File *getSkyblivionFile() { return (TES5File*)this->skyrimCollection.ModFileByName("Skyblivion.esm"); } + TES5File *getGeckFile() { return (TES5File*)this->skyrimCollection.ModFileByName("GECK.esp"); } + + const std::string getTargetsMappingPath() { + return this->rootBuildPath + "TargetsMapping"; + } + + const std::map &getEdidMap() const { return (*this->edidMap); } + const std::vector> &getScripts() const { return this->scripts; } + + + }; + +} \ No newline at end of file diff --git a/src/Skyblivion/md5.h b/src/Skyblivion/md5.h new file mode 100644 index 0000000..8e6dea5 --- /dev/null +++ b/src/Skyblivion/md5.h @@ -0,0 +1,416 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once + +// Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All +// rights reserved. + +// License to copy and use this software is granted provided that it +// is identified as the "RSA Data Security, Inc. MD5 Message-Digest +// Algorithm" in all material mentioning or referencing this software +// or this function. +// +// License is also granted to make and use derivative works provided +// that such works are identified as "derived from the RSA Data +// Security, Inc. MD5 Message-Digest Algorithm" in all material +// mentioning or referencing the derived work. +// +// RSA Data Security, Inc. makes no representations concerning either +// the merchantability of this software or the suitability of this +// software for any particular purpose. It is provided "as is" +// without express or implied warranty of any kind. +// +// These notices must be retained in any copies of any part of this +// documentation and/or software. + + + +// The original md5 implementation avoids external libraries. +// This version has dependency on stdio.h for file input and +// string.h for memcpy. +#include +#include + +#pragma region MD5 defines +// Constants for MD5Transform routine. +#define S11 7 +#define S12 12 +#define S13 17 +#define S14 22 +#define S21 5 +#define S22 9 +#define S23 14 +#define S24 20 +#define S31 4 +#define S32 11 +#define S33 16 +#define S34 23 +#define S41 6 +#define S42 10 +#define S43 15 +#define S44 21 + + + + + + +static unsigned char PADDING[64] = { + 0x80, 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, 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 +}; + +// F, G, H and I are basic MD5 functions. +#define F(x, y, z) (((x) & (y)) | ((~x) & (z))) +#define G(x, y, z) (((x) & (z)) | ((y) & (~z))) +#define H(x, y, z) ((x) ^ (y) ^ (z)) +#define I(x, y, z) ((y) ^ ((x) | (~z))) + +// ROTATE_LEFT rotates x left n bits. +#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n)))) + +// FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. +// Rotation is separate from addition to prevent recomputation. +#define FF(a, b, c, d, x, s, ac) { \ + (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + } +#define GG(a, b, c, d, x, s, ac) { \ + (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + } +#define HH(a, b, c, d, x, s, ac) { \ + (a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + } +#define II(a, b, c, d, x, s, ac) { \ + (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \ + (a) = ROTATE_LEFT ((a), (s)); \ + (a) += (b); \ + } +#pragma endregion + +typedef uint8_t BYTE; + +// POINTER defines a generic pointer type +typedef unsigned char *POINTER; + +// UINT2 defines a two byte word +typedef uint16_t UINT2; + +// UINT4 defines a four byte word +typedef uint32_t UINT4; + + +// convenient object that wraps +// the C-functions for use in C++ only +class MD5 +{ +private: + struct __context_t { + UINT4 state[4]; /* state (ABCD) */ + UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */ + unsigned char buffer[64]; /* input buffer */ + } context; + +#pragma region static helper functions + // The core of the MD5 algorithm is here. + // MD5 basic transformation. Transforms state based on block. + static void MD5Transform(UINT4 state[4], unsigned char block[64]) + { + UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16]; + + Decode(x, block, 64); + + /* Round 1 */ + FF(a, b, c, d, x[0], S11, 0xd76aa478); /* 1 */ + FF(d, a, b, c, x[1], S12, 0xe8c7b756); /* 2 */ + FF(c, d, a, b, x[2], S13, 0x242070db); /* 3 */ + FF(b, c, d, a, x[3], S14, 0xc1bdceee); /* 4 */ + FF(a, b, c, d, x[4], S11, 0xf57c0faf); /* 5 */ + FF(d, a, b, c, x[5], S12, 0x4787c62a); /* 6 */ + FF(c, d, a, b, x[6], S13, 0xa8304613); /* 7 */ + FF(b, c, d, a, x[7], S14, 0xfd469501); /* 8 */ + FF(a, b, c, d, x[8], S11, 0x698098d8); /* 9 */ + FF(d, a, b, c, x[9], S12, 0x8b44f7af); /* 10 */ + FF(c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */ + FF(b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */ + FF(a, b, c, d, x[12], S11, 0x6b901122); /* 13 */ + FF(d, a, b, c, x[13], S12, 0xfd987193); /* 14 */ + FF(c, d, a, b, x[14], S13, 0xa679438e); /* 15 */ + FF(b, c, d, a, x[15], S14, 0x49b40821); /* 16 */ + + /* Round 2 */ + GG(a, b, c, d, x[1], S21, 0xf61e2562); /* 17 */ + GG(d, a, b, c, x[6], S22, 0xc040b340); /* 18 */ + GG(c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */ + GG(b, c, d, a, x[0], S24, 0xe9b6c7aa); /* 20 */ + GG(a, b, c, d, x[5], S21, 0xd62f105d); /* 21 */ + GG(d, a, b, c, x[10], S22, 0x2441453); /* 22 */ + GG(c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */ + GG(b, c, d, a, x[4], S24, 0xe7d3fbc8); /* 24 */ + GG(a, b, c, d, x[9], S21, 0x21e1cde6); /* 25 */ + GG(d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */ + GG(c, d, a, b, x[3], S23, 0xf4d50d87); /* 27 */ + GG(b, c, d, a, x[8], S24, 0x455a14ed); /* 28 */ + GG(a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */ + GG(d, a, b, c, x[2], S22, 0xfcefa3f8); /* 30 */ + GG(c, d, a, b, x[7], S23, 0x676f02d9); /* 31 */ + GG(b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */ + + /* Round 3 */ + HH(a, b, c, d, x[5], S31, 0xfffa3942); /* 33 */ + HH(d, a, b, c, x[8], S32, 0x8771f681); /* 34 */ + HH(c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */ + HH(b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */ + HH(a, b, c, d, x[1], S31, 0xa4beea44); /* 37 */ + HH(d, a, b, c, x[4], S32, 0x4bdecfa9); /* 38 */ + HH(c, d, a, b, x[7], S33, 0xf6bb4b60); /* 39 */ + HH(b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */ + HH(a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */ + HH(d, a, b, c, x[0], S32, 0xeaa127fa); /* 42 */ + HH(c, d, a, b, x[3], S33, 0xd4ef3085); /* 43 */ + HH(b, c, d, a, x[6], S34, 0x4881d05); /* 44 */ + HH(a, b, c, d, x[9], S31, 0xd9d4d039); /* 45 */ + HH(d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */ + HH(c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */ + HH(b, c, d, a, x[2], S34, 0xc4ac5665); /* 48 */ + + /* Round 4 */ + II(a, b, c, d, x[0], S41, 0xf4292244); /* 49 */ + II(d, a, b, c, x[7], S42, 0x432aff97); /* 50 */ + II(c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */ + II(b, c, d, a, x[5], S44, 0xfc93a039); /* 52 */ + II(a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */ + II(d, a, b, c, x[3], S42, 0x8f0ccc92); /* 54 */ + II(c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */ + II(b, c, d, a, x[1], S44, 0x85845dd1); /* 56 */ + II(a, b, c, d, x[8], S41, 0x6fa87e4f); /* 57 */ + II(d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */ + II(c, d, a, b, x[6], S43, 0xa3014314); /* 59 */ + II(b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */ + II(a, b, c, d, x[4], S41, 0xf7537e82); /* 61 */ + II(d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */ + II(c, d, a, b, x[2], S43, 0x2ad7d2bb); /* 63 */ + II(b, c, d, a, x[9], S44, 0xeb86d391); /* 64 */ + + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; + + // Zeroize sensitive information. + memset((POINTER)x, 0, sizeof(x)); + } + + // Encodes input (UINT4) into output (unsigned char). Assumes len is + // a multiple of 4. + static void Encode(unsigned char *output, UINT4 *input, unsigned int len) + { + unsigned int i, j; + + for (i = 0, j = 0; j < len; i++, j += 4) { + output[j] = (unsigned char)(input[i] & 0xff); + output[j + 1] = (unsigned char)((input[i] >> 8) & 0xff); + output[j + 2] = (unsigned char)((input[i] >> 16) & 0xff); + output[j + 3] = (unsigned char)((input[i] >> 24) & 0xff); + } + } + + // Decodes input (unsigned char) into output (UINT4). Assumes len is + // a multiple of 4. + static void Decode(UINT4 *output, unsigned char *input, unsigned int len) + { + unsigned int i, j; + + for (i = 0, j = 0; j < len; i++, j += 4) + output[i] = ((UINT4)input[j]) | (((UINT4)input[j + 1]) << 8) | + (((UINT4)input[j + 2]) << 16) | (((UINT4)input[j + 3]) << 24); + } +#pragma endregion + + +public: + // MAIN FUNCTIONS + MD5() + { + Init(); + } + + // MD5 initialization. Begins an MD5 operation, writing a new context. + void Init() + { + context.count[0] = context.count[1] = 0; + + // Load magic initialization constants. + context.state[0] = 0x67452301; + context.state[1] = 0xefcdab89; + context.state[2] = 0x98badcfe; + context.state[3] = 0x10325476; + } + + // MD5 block update operation. Continues an MD5 message-digest + // operation, processing another message block, and updating the + // context. + void Update( + unsigned char *input, // input block + size_t inputLen) // length of input block + { + unsigned int i, index, partLen; + + // Compute number of bytes mod 64 + index = (unsigned int)((context.count[0] >> 3) & 0x3F); + + // Update number of bits + if ((context.count[0] += ((UINT4)inputLen << 3)) + < ((UINT4)inputLen << 3)) + context.count[1]++; + context.count[1] += ((UINT4)inputLen >> 29); + + partLen = 64 - index; + + // Transform as many times as possible. + if (inputLen >= partLen) { + memcpy((POINTER)&context.buffer[index], (POINTER)input, partLen); + MD5Transform(context.state, context.buffer); + + for (i = partLen; i + 63 < inputLen; i += 64) + MD5Transform(context.state, &input[i]); + + index = 0; + } + else + i = 0; + + /* Buffer remaining input */ + memcpy((POINTER)&context.buffer[index], (POINTER)&input[i], inputLen - i); + } + + // MD5 finalization. Ends an MD5 message-digest operation, writing the + // the message digest and zeroizing the context. + // Writes to digestRaw + void Final() + { + unsigned char bits[8]; + unsigned int index, padLen; + + // Save number of bits + Encode(bits, context.count, 8); + + // Pad out to 56 mod 64. + index = (unsigned int)((context.count[0] >> 3) & 0x3f); + padLen = (index < 56) ? (56 - index) : (120 - index); + Update(PADDING, padLen); + + // Append length (before padding) + Update(bits, 8); + + // Store state in digest + Encode(digestRaw, context.state, 16); + + // Zeroize sensitive information. + memset((POINTER)&context, 0, sizeof(context)); + + writeToString(); + } + + /// Buffer must be 32+1 (nul) = 33 chars long at least + void writeToString() + { + int pos; + + for (pos = 0; pos < 16; pos++) + sprintf(digestChars + (pos * 2), "%02x", digestRaw[pos]); + } + + +public: + // an MD5 digest is a 16-byte number (32 hex digits) + BYTE digestRaw[16]; + + // This version of the digest is actually + // a "printf'd" version of the digest. + char digestChars[33]; + + /// Load a file from disk and digest it + // Digests a file and returns the result. + char* digestFile(char *filename) + { + Init(); + + FILE *file; + + size_t len; + unsigned char buffer[1024]; + + if ((file = fopen(filename, "rb")) == NULL) + printf("%s can't be opened\n", filename); + else + { + while (len = fread(buffer, 1, 1024, file)) + Update(buffer, len); + Final(); + + fclose(file); + } + + return digestChars; + } + + /// Digests a byte-array already in memory + char* digestMemory(BYTE *memchunk, int len) + { + Init(); + Update(memchunk, len); + Final(); + + return digestChars; + } + + // Digests a string and prints the result. + char* digestString(char *string) + { + Init(); + Update((unsigned char*)string, strlen(string)); + Final(); + + return digestChars; + } +}; \ No newline at end of file diff --git a/src/Skyrim/GRUPRecord.h b/src/Skyrim/GRUPRecord.h index 8e5ccb8..1999f3e 100644 --- a/src/Skyrim/GRUPRecord.h +++ b/src/Skyrim/GRUPRecord.h @@ -34,20 +34,22 @@ * * ***** END LICENSE BLOCK ***** */ +#include "Records/ACHRRecord.h" #include "Records/CELLRecord.h" +#include "Records/REFRRecord.h" #include "Records/LANDRecord.h" #include "Records/WRLDRecord.h" +#include "Records/DIALRecord.h" template class TES5GRUPRecords { public: RecordPoolAllocator cell_pool; - /* RecordPoolAllocator achr_pool; - RecordPoolAllocator acre_pool; RecordPoolAllocator refr_pool; - RecordPoolAllocator pgre_pool; + /* + RecordPoolAllocator pgre_pool; RecordPoolAllocator pmis_pool; RecordPoolAllocator pbea_pool; RecordPoolAllocator pfla_pool; @@ -88,23 +90,26 @@ class TES5GRUPRecords RecordHeader header; Sk::CELLRecord *last_record = NULL, *orphaned_records = NULL; - uint32_t numCELL = 0/*, numACHR = 0, numACRE = 0, numREFR = 0, numPGRE = 0, + uint32_t numCELL = 0, numREFR = 0, numACHR = 0/*, numPGRE = 0, numPMIS = 0, numPBEA = 0, numPFLA = 0, numPCBE = 0, numNAVM = 0*/; std::vector records; records.reserve((uint32_t)(group_buffer_end - buffer_position) / sizeof(Sk::CELLRecord)); //gross overestimation, but good enough while(buffer_position < group_buffer_end){ if((processor.IsSkipAllRecords && processor.IsTrackNewTypes) && - processor.NewTypes.count(REV32(CELL)) > 0/* && - processor.NewTypes.count(REV32(ACHR)) > 0 && - processor.NewTypes.count(REV32(ACRE)) > 0 && - processor.NewTypes.count(REV32(REFR)) > 0 && + processor.NewTypes.count(REV32(CELL)) > 0 && + + processor.NewTypes.count(REV32(REFR)) > 0 && + processor.NewTypes.count(REV32(ACHR)) > 0 + /* processor.NewTypes.count(REV32(PGRE)) > 0 && processor.NewTypes.count(REV32(PMIS)) > 0 && processor.NewTypes.count(REV32(PBEA)) > 0 && processor.NewTypes.count(REV32(PFLA)) > 0 && processor.NewTypes.count(REV32(PCBE)) > 0 && - processor.NewTypes.count(REV32(NAVM)) > 0*/) + processor.NewTypes.count(REV32(NAVM)) > 0 + */ + ) { buffer_position = group_buffer_end; break; @@ -148,16 +153,14 @@ class TES5GRUPRecords numCELL++; break; - /* case REV32(ACHR): numACHR++; break; - case REV32(ACRE): - numACRE++; - break; + case REV32(REFR): numREFR++; break; + /* case REV32(PGRE): numPGRE++; break; @@ -179,7 +182,7 @@ class TES5GRUPRecords */ default: - printer("GRUPRecords::Read: Warning - Parsing error. Unexpected record type (%c%c%c%c) in file \"%s\".\n", ((char *)&header.type)[0], ((char *)&header.type)[1], ((char *)&header.type)[2], ((char *)&header.type)[3], FileName); + //printer("GRUPRecords::Read: Warning - Parsing error. Unexpected record type (%c%c%c%c) in file \"%s\".\n", ((char *)&header.type)[0], ((char *)&header.type)[1], ((char *)&header.type)[2], ((char *)&header.type)[3], FileName); #ifdef CBASH_DEBUG_CHUNK peek_around(buffer_position, PEEK_SIZE); #endif @@ -199,40 +202,28 @@ class TES5GRUPRecords unsigned char *cell_buffer = NULL; if(numCELL) { - cell_buffer = (unsigned char *)malloc(sizeof(Sk::CELLRecord) * numCELL); + cell_buffer = (unsigned char *)cell_pool.add_buffer(sizeof(Sk::CELLRecord) * numCELL); if(cell_buffer == 0) throw std::bad_alloc(); - cell_pool.add_buffer(cell_buffer); } - /* unsigned char *achr_buffer = NULL; if(numACHR) { - achr_buffer = (unsigned char *)malloc(sizeof(Sk::ACHRRecord) * numACHR); + achr_buffer = (unsigned char *)achr_pool.add_buffer(sizeof(Sk::ACHRRecord) * numACHR); if(achr_buffer == 0) throw std::bad_alloc(); - achr_pool.add_buffer(achr_buffer); - } - - unsigned char *acre_buffer = NULL; - if(numACRE) - { - acre_buffer = (unsigned char *)malloc(sizeof(Sk::ACRERecord) * numACRE); - if(acre_buffer == 0) - throw std::bad_alloc(); - acre_pool.add_buffer(acre_buffer); } unsigned char *refr_buffer = NULL; if(numREFR) { - refr_buffer = (unsigned char *)malloc(sizeof(Sk::REFRRecord) * numREFR); - if(refr_buffer == 0) - throw std::bad_alloc(); - refr_pool.add_buffer(refr_buffer); - } - + refr_buffer = (unsigned char *)refr_pool.add_buffer(sizeof(Sk::REFRRecord) * numREFR); + if (refr_buffer == 0) { + throw std::bad_alloc(); + } + } + /* unsigned char *pgre_buffer = NULL; if(numPGRE) { @@ -303,25 +294,19 @@ class TES5GRUPRecords curRecord->SetParent(processor.curModFile, true); break; - /* case REV32(ACHR): curRecord = new(achr_buffer) Sk::ACHRRecord(header.data); achr_buffer += sizeof(Sk::ACHRRecord); curRecord->SetParent(last_record, false); last_record->ACHR.push_back(curRecord); break; - case REV32(ACRE): - curRecord = new(acre_buffer) Sk::ACRERecord(header.data); - acre_buffer += sizeof(Sk::ACRERecord); - curRecord->SetParent(last_record, false); - last_record->ACRE.push_back(curRecord); - break; case REV32(REFR): curRecord = new(refr_buffer) Sk::REFRRecord(header.data); refr_buffer += sizeof(Sk::REFRRecord); curRecord->SetParent(last_record, false); last_record->REFR.push_back(curRecord); break; + /* case REV32(PGRE): curRecord = new(pgre_buffer) Sk::PGRERecord(header.data); pgre_buffer += sizeof(Sk::PGRERecord); @@ -361,7 +346,7 @@ class TES5GRUPRecords */ default: - printer("GRUPRecords::Read: Warning - Parsing error. Unexpected record type (%c%c%c%c) in file \"%s\".\n", ((char *)&header.type)[0], ((char *)&header.type)[1], ((char *)&header.type)[2], ((char *)&header.type)[3], FileName); + //printer("GRUPRecords::Read: Warning - Parsing error. Unexpected record type (%c%c%c%c) in file \"%s\".\n", ((char *)&header.type)[0], ((char *)&header.type)[1], ((char *)&header.type)[2], ((char *)&header.type)[3], FileName); #ifdef CBASH_DEBUG_CHUNK peek_around(header.data, PEEK_SIZE); #endif @@ -391,7 +376,6 @@ class TES5GRUPRecords records.clear(); - /* for(uint32_t x = 0; x < orphaned_records->ACHR.size(); ++x) { curRecord = orphaned_records->ACHR[x]; @@ -403,17 +387,6 @@ class TES5GRUPRecords achr_pool.destroy(curRecord); } - for(uint32_t x = 0; x < orphaned_records->ACRE.size(); ++x) - { - curRecord = orphaned_records->ACRE[x]; - processor.OrphanedRecords.push_back(curRecord->formID); - //printer("GRUPRecords::Read: Warning - Parsing error. Skipped orphan ACRE (%08X) at %08X in file \"%s\"\n", curRecord->formID, curRecord->recData - buffer_start, FileName); - #ifdef CBASH_DEBUG_CHUNK - peek_around(curRecord->recData, PEEK_SIZE); - #endif - acre_pool.destroy(curRecord); - } - for(uint32_t x = 0; x < orphaned_records->REFR.size(); ++x) { curRecord = orphaned_records->REFR[x]; @@ -425,7 +398,8 @@ class TES5GRUPRecords refr_pool.destroy(curRecord); } - for(uint32_t x = 0; x < orphaned_records->PGRE.size(); ++x) + /* + for(uint32_t x = 0; x < orphaned_records->PGRE.size(); ++x) { curRecord = orphaned_records->PGRE[x]; processor.OrphanedRecords.push_back(curRecord->formID); @@ -595,7 +569,6 @@ class TES5GRUPRecords subBlockSize += curRecord->Write(writer, bMastersChanged, expander, collapser, Expanders); //Place the ACHR, ACRE, REFR, PGRE, PMIS, PBEA, PFLA, PCBE, NAVM records into their proper GRUP - /* for(uint32_t y = 0; y < curRecord->ACHR.size(); ++y) { if(curRecord->ACHR[y]->IsPersistent()) @@ -606,16 +579,7 @@ class TES5GRUPRecords Temporary.push_back(curRecord->ACHR[y]); } - for(uint32_t y = 0; y < curRecord->ACRE.size(); ++y) - { - if(curRecord->ACRE[y]->IsPersistent()) - Persistent.push_back(curRecord->ACRE[y]); - else if(curRecord->ACRE[y]->IsVWD()) - VWD.push_back(curRecord->ACRE[y]); - else - Temporary.push_back(curRecord->ACRE[y]); - } - + for(uint32_t y = 0; y < curRecord->REFR.size(); ++y) { if(curRecord->REFR[y]->IsPersistent()) @@ -625,7 +589,7 @@ class TES5GRUPRecords else Temporary.push_back(curRecord->REFR[y]); } - + /* for(uint32_t y = 0; y < curRecord->PGRE.size(); ++y) { if(curRecord->PGRE[y]->IsPersistent()) @@ -765,16 +729,12 @@ class TES5GRUPRecords } if(CloseMod) { - /* for(uint32_t x = 0; x < curRecord->ACHR.size(); ++x) achr_pool.destroy(curRecord->ACHR[x]); - for(uint32_t x = 0; x < curRecord->ACRE.size(); ++x) - acre_pool.destroy(curRecord->ACRE[x]); - for(uint32_t x = 0; x < curRecord->REFR.size(); ++x) refr_pool.destroy(curRecord->REFR[x]); - + /* for(uint32_t x = 0; x < curRecord->PGRE.size(); ++x) pgre_pool.destroy(curRecord->PGRE[x]); @@ -814,9 +774,8 @@ class TES5GRUPRecords if(CloseMod) { //Can't release the pools entirely since the WRLD group may have entries still - //achr_pool.purge_no_destructors(); - //acre_pool.purge_no_destructors(); - //refr_pool.purge_no_destructors(); + achr_pool.purge_no_destructors(); + refr_pool.purge_no_destructors(); //pgre_pool.purge_no_destructors(); //pmis_pool.purge_no_destructors(); //pbea_pool.purge_no_destructors(); @@ -872,7 +831,7 @@ class TES5GRUPRecords Sk::WRLDRecord *last_wrld_record = NULL, *orphaned_wrld_records = NULL; Sk::CELLRecord *last_cell_record = NULL, *orphaned_cell_records = NULL; - uint32_t numWRLD = 0, numCELL = 0, numLAND = 0/*, numACHR = 0, numACRE = 0, numREFR = 0, + uint32_t numWRLD = 0, numCELL = 0, numLAND = 0, numREFR = 0, numACHR = 0/*, numREFR = 0, numPGRE = 0, numPMIS = 0, numPBEA = 0, numPFLA = 0, numPCBE = 0, numNAVM = 0*/; std::map > GridXY_LAND; @@ -888,10 +847,9 @@ class TES5GRUPRecords if((processor.IsSkipAllRecords && processor.IsTrackNewTypes) && processor.NewTypes.count(REV32(WRLD)) > 0 && processor.NewTypes.count(REV32(CELL)) > 0 && - processor.NewTypes.count(REV32(LAND)) > 0/* && + processor.NewTypes.count(REV32(LAND)) > 0 && processor.NewTypes.count(REV32(ACHR)) > 0 && - processor.NewTypes.count(REV32(ACRE)) > 0 && - processor.NewTypes.count(REV32(REFR)) > 0 && + processor.NewTypes.count(REV32(REFR)) > 0 /*&& processor.NewTypes.count(REV32(PGRE)) > 0 && processor.NewTypes.count(REV32(PMIS)) > 0 && processor.NewTypes.count(REV32(PBEA)) > 0 && @@ -964,16 +922,13 @@ class TES5GRUPRecords case REV32(LAND): numLAND++; break; - /* case REV32(ACHR): numACHR++; break; - case REV32(ACRE): - numACRE++; - break; case REV32(REFR): numREFR++; break; + /* case REV32(PGRE): numPGRE++; break; @@ -995,7 +950,7 @@ class TES5GRUPRecords */ default: - printer("TES5GRUPRecords::Read: Warning - Parsing error. Unexpected record type (%c%c%c%c) in file \"%s\".\n", ((char *)&header.type)[0], ((char *)&header.type)[1], ((char *)&header.type)[2], ((char *)&header.type)[3], FileName); + //printer("TES5GRUPRecords::Read: Warning - Parsing error. Unexpected record type (%c%c%c%c) in file \"%s\".\n", ((char *)&header.type)[0], ((char *)&header.type)[1], ((char *)&header.type)[2], ((char *)&header.type)[3], FileName); #ifdef CBASH_DEBUG_CHUNK peek_around(buffer_position, PEEK_SIZE); #endif @@ -1014,57 +969,43 @@ class TES5GRUPRecords unsigned char *wrld_buffer = NULL; if(numWRLD) { - wrld_buffer = (unsigned char *)malloc(sizeof(Sk::WRLDRecord) * numWRLD); + wrld_buffer = (unsigned char *)wrld_pool.add_buffer(sizeof(Sk::WRLDRecord) * numWRLD); if(wrld_buffer == 0) throw std::bad_alloc(); - wrld_pool.add_buffer(wrld_buffer); } unsigned char *cell_buffer = NULL; if(numCELL) { - cell_buffer = (unsigned char *)malloc(sizeof(Sk::CELLRecord) * numCELL); + cell_buffer = (unsigned char *)cell_pool.add_buffer(sizeof(Sk::CELLRecord) * numCELL); if(cell_buffer == 0) throw std::bad_alloc(); - cell_pool.add_buffer(cell_buffer); } unsigned char *land_buffer = NULL; if(numLAND) { - land_buffer = (unsigned char *)malloc(sizeof(Sk::LANDRecord) * numLAND); + land_buffer = (unsigned char *)land_pool.add_buffer(sizeof(Sk::LANDRecord) * numLAND); if(land_buffer == 0) throw std::bad_alloc(); - land_pool.add_buffer(land_buffer); } -/* unsigned char *achr_buffer = NULL; if(numACHR) { - achr_buffer = (unsigned char *)malloc(sizeof(Sk::ACHRRecord) * numACHR); + achr_buffer = (unsigned char *)CELL.achr_pool.add_buffer(sizeof(Sk::ACHRRecord) * numACHR); if(achr_buffer == 0) throw std::bad_alloc(); - CELL.achr_pool.add_buffer(achr_buffer); } - - unsigned char *acre_buffer = NULL; - if(numACRE) - { - acre_buffer = (unsigned char *)malloc(sizeof(Sk::ACRERecord) * numACRE); - if(acre_buffer == 0) - throw std::bad_alloc(); - CELL.acre_pool.add_buffer(acre_buffer); - } - - unsigned char *refr_buffer = NULL; + unsigned char *refr_buffer = NULL; if(numREFR) { - refr_buffer = (unsigned char *)malloc(sizeof(Sk::REFRRecord) * numREFR); + uint32_t sizeRefr = sizeof(Sk::REFRRecord); + refr_buffer = (unsigned char *)CELL.refr_pool.add_buffer(sizeRefr * numREFR); + uint32_t err = errno; if(refr_buffer == 0) throw std::bad_alloc(); - CELL.refr_pool.add_buffer(refr_buffer); } - + /* unsigned char *pgre_buffer = NULL; if(numPGRE) { @@ -1206,25 +1147,19 @@ class TES5GRUPRecords GridXY_LAND[last_cell_record->XCLC->posX][last_cell_record->XCLC->posY] = (Sk::LANDRecord *)curRecord; } break; - /* case REV32(ACHR): curRecord = new(achr_buffer) Sk::ACHRRecord(header.data); achr_buffer += sizeof(Sk::ACHRRecord); curRecord->SetParent(last_cell_record, false); last_cell_record->ACHR.push_back(curRecord); break; - case REV32(ACRE): - curRecord = new(acre_buffer) Sk::ACRERecord(header.data); - acre_buffer += sizeof(Sk::ACRERecord); - curRecord->SetParent(last_cell_record, false); - last_cell_record->ACRE.push_back(curRecord); - break; case REV32(REFR): curRecord = new(refr_buffer) Sk::REFRRecord(header.data); refr_buffer += sizeof(Sk::REFRRecord); curRecord->SetParent(last_cell_record, false); last_cell_record->REFR.push_back(curRecord); break; + /* case REV32(PGRE): curRecord = new(pgre_buffer) Sk::PGRERecord(header.data); pgre_buffer += sizeof(Sk::PGRERecord); @@ -1263,7 +1198,7 @@ class TES5GRUPRecords break; */ default: - printer("TES5GRUPRecords::Read: Warning - Parsing error. Unexpected record type (%c%c%c%c) in file \"%s\".\n", ((char *)&header.type)[0], ((char *)&header.type)[1], ((char *)&header.type)[2], ((char *)&header.type)[3], FileName); + //printer("TES5GRUPRecords::Read: Warning - Parsing error. Unexpected record type (%c%c%c%c) in file \"%s\".\n", ((char *)&header.type)[0], ((char *)&header.type)[1], ((char *)&header.type)[2], ((char *)&header.type)[3], FileName); #ifdef CBASH_DEBUG_CHUNK peek_around(header.data, PEEK_SIZE); #endif @@ -1318,15 +1253,14 @@ class TES5GRUPRecords if(processor.Flags.IsFixupPlaceables && last_wcel_record != NULL) { -/* for(uint32_t x = 0; x < last_wcel_record->ACHR.size();) { //Have to test each record to see if it belongs to the cell. This is determined by its positioning. curRecord = last_wcel_record->ACHR[x]; read_parser.Accept(curRecord); - gridX = (int32_t)floor(((Sk::ACHRRecord *)curRecord)->DATA.value.posX / 4096.0); - gridY = (int32_t)floor(((Sk::ACHRRecord *)curRecord)->DATA.value.posY / 4096.0); + gridX = (int32_t)floor(((Sk::ACHRRecord *)curRecord)->DATA.value->posX / 4096.0); + gridY = (int32_t)floor(((Sk::ACHRRecord *)curRecord)->DATA.value->posY / 4096.0); if(processor.Flags.IsMinLoad) curRecord->Unload(); @@ -1341,28 +1275,6 @@ class TES5GRUPRecords else ++x; } - for(uint32_t x = 0; x < last_wcel_record->ACRE.size();) - { - //Have to test each record to see if it belongs to the cell. This is determined by its positioning. - curRecord = last_wcel_record->ACRE[x]; - read_parser.Accept(curRecord); - - gridX = (int32_t)floor(((Sk::ACRERecord *)curRecord)->DATA.value.posX / 4096.0); - gridY = (int32_t)floor(((Sk::ACRERecord *)curRecord)->DATA.value.posY / 4096.0); - - if(processor.Flags.IsMinLoad) - curRecord->Unload(); - - if(gridX == posX && gridY == posY) - { - //For easier use later on, go ahead and move it to the parent cell. - //It will get moved back later during the save process if need be. - last_cell_record->ACRE.push_back(curRecord); - last_wcel_record->ACRE.erase(last_wcel_record->ACRE.begin() + x); - } - else ++x; - } - for(uint32_t x = 0; x < last_wcel_record->REFR.size();) { //Have to test each record to see if it belongs to the cell. This is determined by its positioning. @@ -1370,8 +1282,8 @@ class TES5GRUPRecords read_parser.Accept(curRecord); //((Sk::REFRRecord *)curRecord)->Data.Load(); - gridX = (int32_t)floor(((Sk::REFRRecord *)curRecord)->DATA.value.posX / 4096.0); - gridY = (int32_t)floor(((Sk::REFRRecord *)curRecord)->DATA.value.posY / 4096.0); + gridX = (int32_t)floor(((Sk::REFRRecord *)curRecord)->DATA.value->posX / 4096.0); + gridY = (int32_t)floor(((Sk::REFRRecord *)curRecord)->DATA.value->posY / 4096.0); if(processor.Flags.IsMinLoad) curRecord->Unload(); @@ -1385,6 +1297,7 @@ class TES5GRUPRecords } else ++x; } + /* for(uint32_t x = 0; x < last_wcel_record->PGRE.size();) { curRecord = last_wcel_record->PGRE[x]; @@ -1518,8 +1431,8 @@ class TES5GRUPRecords } } } -/* - for(uint32_t x = 0; x < orphaned_cell_records->ACHR.size(); ++x) + + for(uint32_t x = 0; x < orphaned_cell_records->ACHR.size(); ++x) { curRecord = orphaned_cell_records->ACHR[x]; processor.OrphanedRecords.push_back(curRecord->formID); @@ -1529,18 +1442,6 @@ class TES5GRUPRecords #endif CELL.achr_pool.destroy(curRecord); } - - for(uint32_t x = 0; x < orphaned_cell_records->ACRE.size(); ++x) - { - curRecord = orphaned_cell_records->ACRE[x]; - processor.OrphanedRecords.push_back(curRecord->formID); - //printer("TES5GRUPRecords::Read: Warning - Parsing error. Skipped orphan ACRE (%08X) at %08X in file \"%s\"\n", curRecord->formID, curRecord->recData - buffer_start, FileName); - #ifdef CBASH_DEBUG_CHUNK - peek_around(curRecord->recData, PEEK_SIZE); - #endif - CELL.acre_pool.destroy(curRecord); - } - for(uint32_t x = 0; x < orphaned_cell_records->REFR.size(); ++x) { curRecord = orphaned_cell_records->REFR[x]; @@ -1551,7 +1452,7 @@ class TES5GRUPRecords #endif CELL.refr_pool.destroy(curRecord); } - + /* for(uint32_t x = 0; x < orphaned_cell_records->PGRE.size(); ++x) { curRecord = orphaned_cell_records->PGRE[x]; @@ -1696,11 +1597,6 @@ class TES5GRUPRecords for(uint32_t p = 0; p < numCellRecords; ++p) { curCell = (Sk::CELLRecord *)curWorld->CELLS[p]; -/* - //All persistent references must be moved to the world cell - for(uint32_t y = 0; y < curCell->ACRE.size(); ++y) - if(curCell->ACRE[y]->IsPersistent()) - FixedPersistent.push_back(curCell->ACRE[y]); for(uint32_t y = 0; y < curCell->ACHR.size(); ++y) if(curCell->ACHR[y]->IsPersistent()) @@ -1709,7 +1605,7 @@ class TES5GRUPRecords for(uint32_t y = 0; y < curCell->REFR.size(); ++y) if(curCell->REFR[y]->IsPersistent()) FixedPersistent.push_back(curCell->REFR[y]); - +/* for(uint32_t y = 0; y < curCell->PGRE.size(); ++y) if(curCell->PGRE[y]->IsPersistent()) FixedPersistent.push_back(curCell->PGRE[y]); @@ -1789,7 +1685,6 @@ class TES5GRUPRecords curCell->LAND = NULL; uint32_t ignored_count = 0; -/* for(uint32_t y = 0; y < curCell->ACHR.size(); ++y) { if(curCell->ACHR[y]->IsPersistent()) @@ -1798,14 +1693,6 @@ class TES5GRUPRecords ignored_count++; } - for(uint32_t y = 0; y < curCell->ACRE.size(); ++y) - { - if(curCell->ACRE[y]->IsPersistent()) - Persistent.push_back(curCell->ACRE[y]); - else - ignored_count++; - } - for(uint32_t y = 0; y < curCell->REFR.size(); ++y) { if(curCell->REFR[y]->IsPersistent()) @@ -1814,7 +1701,8 @@ class TES5GRUPRecords ignored_count++; } - for(uint32_t y = 0; y < curCell->PGRE.size(); ++y) + /* + for(uint32_t y = 0; y < curCell->PGRE.size(); ++y) { if(curCell->PGRE[y]->IsPersistent()) Persistent.push_back(curCell->PGRE[y]); @@ -1902,16 +1790,13 @@ class TES5GRUPRecords } if(CloseMod) { - /* for(uint32_t x = 0; x < curCell->ACHR.size(); ++x) CELL.achr_pool.destroy(curCell->ACHR[x]); - for(uint32_t x = 0; x < curCell->ACRE.size(); ++x) - CELL.acre_pool.destroy(curCell->ACRE[x]); - for(uint32_t x = 0; x < curCell->REFR.size(); ++x) CELL.refr_pool.destroy(curCell->REFR[x]); + /* for(uint32_t x = 0; x < curCell->PGRE.size(); ++x) CELL.pgre_pool.destroy(curCell->PGRE[x]); @@ -1973,8 +1858,8 @@ class TES5GRUPRecords if(curCell->LAND != NULL) Temporary.push_back(curCell->LAND); -/* - for(uint32_t y = 0; y < curCell->ACHR.size(); ++y) + + for(uint32_t y = 0; y < curCell->ACHR.size(); ++y) { if(curCell->ACHR[y]->IsVWD()) VWD.push_back(curCell->ACHR[y]); @@ -1982,14 +1867,6 @@ class TES5GRUPRecords Temporary.push_back(curCell->ACHR[y]); } - for(uint32_t y = 0; y < curCell->ACRE.size(); ++y) - { - if(curCell->ACRE[y]->IsVWD()) - VWD.push_back(curCell->ACRE[y]); - else - Temporary.push_back(curCell->ACRE[y]); - } - for(uint32_t y = 0; y < curCell->REFR.size(); ++y) { if(curCell->REFR[y]->IsVWD()) @@ -1998,7 +1875,8 @@ class TES5GRUPRecords Temporary.push_back(curCell->REFR[y]); } - for(uint32_t y = 0; y < curCell->PGRE.size(); ++y) +/* + for(uint32_t y = 0; y < curCell->PGRE.size(); ++y) { if(curCell->PGRE[y]->IsVWD()) VWD.push_back(curCell->PGRE[y]); @@ -2104,17 +1982,14 @@ class TES5GRUPRecords } if(CloseMod) { - /* for(uint32_t x = 0; x < curCell->ACHR.size(); ++x) CELL.achr_pool.destroy(curCell->ACHR[x]); - for(uint32_t x = 0; x < curCell->ACRE.size(); ++x) - CELL.acre_pool.destroy(curCell->ACRE[x]); - - for(uint32_t x = 0; x < curCell->REFR.size(); ++x) + for(uint32_t x = 0; x < curCell->REFR.size(); ++x) CELL.refr_pool.destroy(curCell->REFR[x]); - for(uint32_t x = 0; x < curCell->PGRE.size(); ++x) + /* + for(uint32_t x = 0; x < curCell->PGRE.size(); ++x) CELL.pgre_pool.destroy(curCell->PGRE[x]); for(uint32_t x = 0; x < curCell->PMIS.size(); ++x) @@ -2155,12 +2030,11 @@ class TES5GRUPRecords if(CloseMod) { - /* //All destructors ran earlier, pools are entirely free CELL.achr_pool.purge_no_destructors(); - CELL.acre_pool.purge_no_destructors(); CELL.refr_pool.purge_no_destructors(); - CELL.pgre_pool.purge_no_destructors(); + /* + CELL.pgre_pool.purge_no_destructors(); CELL.pmis_pool.purge_no_destructors(); CELL.pbea_pool.purge_no_destructors(); CELL.pfla_pool.purge_no_destructors(); @@ -2176,3 +2050,267 @@ class TES5GRUPRecords return formCount; } }; + + +template +class TES5GRUPRecords +{ +public: + RecordPoolAllocator dial_pool; + RecordPoolAllocator info_pool; + uint32_t stamp, unknown; + + TES5GRUPRecords() : + stamp(134671), + unknown(0) + { + // + } + + ~TES5GRUPRecords() + { + // + } + + bool Read(unsigned char *&buffer_start, unsigned char *&buffer_position, unsigned char *&group_buffer_end, RecordOp &indexer, RecordOp &parser, std::vector &DeletedRecords, RecordProcessor &processor, char * &FileName) + { + stamp = *(uint32_t *)buffer_position; + buffer_position += 4; + unknown = *(uint32_t *)buffer_position; + buffer_position += 4; + if (group_buffer_end <= buffer_position) + { + printer("TES5GRUPRecords::Read: Error - Unable to load group in file \"%s\". The group has a size of 0.\n", FileName); +#ifdef CBASH_DEBUG_CHUNK + peek_around(buffer_position, PEEK_SIZE); +#endif + return false; + } + + Record * curRecord = NULL; + uint32_t recordSize = 0; + RecordHeader header; + + Sk::DIALRecord *last_record = NULL, *orphaned_records = NULL; + uint32_t numDIAL = 0, numINFO = 0; + + std::vector records; + records.reserve((uint32_t)(group_buffer_end - buffer_position) / sizeof(Sk::DIALRecord)); //gross overestimation, but good enough + while (buffer_position < group_buffer_end){ + if ((processor.IsSkipAllRecords && processor.IsTrackNewTypes) && + processor.NewTypes.count(REV32(DIAL)) > 0 && + processor.NewTypes.count(REV32(INFO)) > 0) + { + buffer_position = group_buffer_end; + break; + } + + //Assumes that all records in a generic group are of the same type + header.type = *(uint32_t *)buffer_position; + buffer_position += 4; + recordSize = *(uint32_t *)buffer_position; + buffer_position += 4; + + if (header.type == REV32(GRUP)) //All GRUPs will be recreated from scratch on write (saves memory) + { + if (recordSize == 20) + processor.EmptyGRUPs++; + buffer_position += 16; + continue; + } + + header.flags = *(uint32_t *)buffer_position; + buffer_position += 4; + header.formID = *(FORMID *)buffer_position; + buffer_position += 4; + header.flagsUnk = *(uint32_t *)buffer_position; //VersionControl1 + buffer_position += 4; + header.formVersion = *(uint16_t *)buffer_position; + buffer_position += 2; + header.versionControl2[0] = *(uint8_t *)buffer_position; + buffer_position++; + header.versionControl2[1] = *(uint8_t *)buffer_position; + buffer_position++; + + if (processor.Accept(header)) + { + header.data = buffer_position; + records.push_back(header); + + switch (header.type) + { + case REV32(DIAL): + numDIAL++; + break; + case REV32(INFO): + numINFO++; + break; + default: + log_warning << "TES5GRUPRecords::Read: Warning - Parsing error. Unexpected record type (" << + ((char *)&header.type)[0] << ((char *)&header.type)[1] << ((char *)&header.type)[2] << ((char *)&header.type)[3] << + ") in file \"" << FileName << "\"." << std::endl; +#ifdef CBASH_DEBUG_CHUNK + peek_around(buffer_position, PEEK_SIZE); +#endif + records.pop_back(); + break; + } + } + + buffer_position += recordSize; + }; + + if (records.size()) + { + //Allocates many records at once in a contiguous space + //Allocate memory + unsigned char *dial_buffer = NULL; + if (numDIAL) + { + dial_buffer = (unsigned char *)dial_pool.add_buffer(sizeof(Sk::DIALRecord) * numDIAL); + if (dial_buffer == 0) + throw std::bad_alloc(); + } + + unsigned char *info_buffer = NULL; + if (numINFO) + { + info_buffer = (unsigned char *)info_pool.add_buffer(sizeof(Sk::INFORecord) * numINFO); + if (info_buffer == 0) + throw std::bad_alloc(); + } + + last_record = orphaned_records = new Sk::DIALRecord(); + + //Construct the records + for (uint32_t x = 0; x < records.size(); ++x) + { + header = records[x]; + + switch (header.type) + { + case REV32(DIAL): + curRecord = last_record = new(dial_buffer)Sk::DIALRecord(header.data); + dial_buffer += sizeof(Sk::DIALRecord); + curRecord->SetParent(processor.curModFile, true); + break; + case REV32(INFO): + curRecord = new(info_buffer)Sk::INFORecord(header.data); + info_buffer += sizeof(Sk::INFORecord); + curRecord->SetParent(last_record, false); + last_record->INFO.push_back(curRecord); + break; + default: + log_warning << "TES5GRUPRecords::Read: Warning - Parsing error. Unexpected record type (" << + ((char *)&header.type)[0] << ((char *)&header.type)[1] << ((char *)&header.type)[2] << ((char *)&header.type)[3] << + ") in file \"" << FileName << "\"." << std::endl; +#ifdef CBASH_DEBUG_CHUNK + peek_around(header.data, PEEK_SIZE); +#endif + continue; + break; + } + + curRecord->flags = header.flags; + curRecord->formID = header.formID; + curRecord->flagsUnk = header.flagsUnk; + //Testing Messages + //if((flags & 0x4000) != 0) + // printer("0x4000 used: %08X!!!!\n", curRecord->formID); + + //Read (if FullLoad), no-op otherwise + parser.Accept(curRecord); + //Save any deleted records for post-processing + if (curRecord->IsDeleted()) + DeletedRecords.push_back(curRecord); + //Index it for fast, random lookup + indexer.Accept(curRecord); + } + + records.clear(); + + for (uint32_t x = 0; x < orphaned_records->INFO.size(); ++x) + { + curRecord = orphaned_records->INFO[x]; + processor.OrphanedRecords.push_back(curRecord->formID); + //printer("TES5GRUPRecords::Read: Warning - Parsing error. Skipped orphan INFO (%08X) at %08X in file \"%s\"\n", curRecord->formID, curRecord->recData - buffer_start, FileName); +#ifdef CBASH_DEBUG_CHUNK + peek_around(curRecord->recData, PEEK_SIZE); +#endif + info_pool.destroy(curRecord); + } + delete orphaned_records; + } + + return true; + } + + uint32_t Write(FileWriter &writer, std::vector &Expanders, FormIDResolver &expander, FormIDResolver &collapser, const bool &bMastersChanged, bool CloseMod) + { + std::vector Records; + dial_pool.MakeRecordsVector(Records); + uint32_t numDIALRecords = (uint32_t)Records.size(); //Parent Records + if (numDIALRecords == 0) + return 0; + + uint32_t type = REV32(GRUP); + uint32_t gType = eTop; + uint32_t TopSize = 0; + uint32_t ChildrenSize = 0; + uint32_t formCount = 0; + uint32_t TopLabel = REV32(DIAL); + uint32_t numINFORecords = 0; + uint32_t parentFormID = 0; + Sk::DIALRecord *curRecord = NULL; + + //Top GRUP Header + writer.file_write(&type, 4); + uint32_t TopSizePos = writer.file_tell(); + writer.file_write(&TopSize, 4); //Placeholder: will be overwritten with correct value later. + writer.file_write(&TopLabel, 4); + writer.file_write(&gType, 4); + writer.file_write(&stamp, 4); + writer.file_write(&unknown, 4); + ++formCount; + TopSize = 24; + + + gType = eTopicChildren; + formCount += numDIALRecords; + for (uint32_t p = 0; p < numDIALRecords; ++p) + { + curRecord = (Sk::DIALRecord *)Records[p]; + parentFormID = curRecord->formID; + collapser.Accept(parentFormID); + TopSize += curRecord->Write(writer, bMastersChanged, expander, collapser, Expanders); + + numINFORecords = (uint32_t)curRecord->INFO.size(); + if (numINFORecords) + { + writer.file_write(&type, 4); + uint32_t ChildrenSizePos = writer.file_tell(); + writer.file_write(&ChildrenSize, 4); //Placeholder: will be overwritten with correct value later. + writer.file_write(&parentFormID, 4); + writer.file_write(&gType, 4); + writer.file_write(&stamp, 4); + writer.file_write(&unknown, 4); + ++formCount; + ChildrenSize = 24; + + formCount += numINFORecords; + for (uint32_t y = 0; y < numINFORecords; ++y) + ChildrenSize += curRecord->INFO[y]->Write(writer, bMastersChanged, expander, collapser, Expanders); + writer.file_write(ChildrenSizePos, &ChildrenSize, 4); + TopSize += ChildrenSize; + } + } + writer.file_write(TopSizePos, &TopSize, 4); + if (CloseMod) + { + info_pool.purge_with_destructors(); + dial_pool.purge_with_destructors(); + } + return formCount; + } + +}; diff --git a/src/Skyrim/Records/AACTRecord.cpp b/src/Skyrim/Records/AACTRecord.cpp index 538b868..c498f2e 100644 --- a/src/Skyrim/Records/AACTRecord.cpp +++ b/src/Skyrim/Records/AACTRecord.cpp @@ -34,7 +34,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "AACTRecord.h" namespace Sk { @@ -101,11 +101,8 @@ int32_t AACTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer CNAM.Read(buffer, subSize); break; default: - //printer("Filename = %s\n", FileName); - printer(" AACT: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/AACTRecord.h b/src/Skyrim/Records/AACTRecord.h index 76ebaaa..38e6f78 100644 --- a/src/Skyrim/Records/AACTRecord.h +++ b/src/Skyrim/Records/AACTRecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" -#include "..\SkyrimChunks.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -62,6 +62,7 @@ class AACTRecord : public TES5Record // Action record int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const AACTRecord &other) const; bool operator !=(const AACTRecord &other) const; diff --git a/src/Skyrim/Records/ACHRRecord.cpp b/src/Skyrim/Records/ACHRRecord.cpp new file mode 100644 index 0000000..e865573 --- /dev/null +++ b/src/Skyrim/Records/ACHRRecord.cpp @@ -0,0 +1,351 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "ACHRRecord.h" + +namespace Sk +{ + ACHRRecord::ACHRRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + ACHRRecord::ACHRRecord(ACHRRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + NAME = srcRecord->NAME; + XEZN = srcRecord->XEZN; + XPRD = srcRecord->XPRD; + XPPA = srcRecord->XPPA; + INAM = srcRecord->INAM; + PDTO = srcRecord->PDTO; + XRGD = srcRecord->XRGD; + XRGB = srcRecord->XRGB; + XLCM = srcRecord->XLCM; + XAPD = srcRecord->XAPD; + XAPR = srcRecord->XAPR; + XLRT = srcRecord->XLRT; + XHOR = srcRecord->XHOR; + XESP = srcRecord->XESP; + XOWN = srcRecord->XOWN; + XLCN = srcRecord->XLCN; + XLKR = srcRecord->XLKR; + XIS2 = srcRecord->XIS2; + XLRL = srcRecord->XLRL; + XSCL = srcRecord->XSCL; + DATA = srcRecord->DATA; + + if (!srcRecord->IsChanged()) + return; + + return; + } + + ACHRRecord::~ACHRRecord() + { + // + } + + uint32_t ACHRRecord::GetType() + { + return REV32(ACHR); + } + + char * ACHRRecord::GetStrType() + { + return "ACHR"; + } + + + bool ACHRRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + if (VMAD.IsLoaded()) { + //TODO - implement VisitFormIDs for struct VMADRecord + } + op.Accept(NAME.value); + if (XEZN.IsLoaded()) { + op.Accept(XEZN.value); + } + if (INAM.IsLoaded()) { + op.Accept(INAM.value); + } + if (PDTO.IsLoaded()) { + //TODO - implement VisitFormIDs for struct PDTO + } + if (XAPR.IsLoaded()) { + //TODO - implement VisitFormIDs for struct GENXAPR + } + if (XLRT.IsLoaded()) { + for (uint32_t i = 0; i < XLRT.value.size(); ++i) { + + op.Accept(XLRT.value[i]); + + }; + } + if (XHOR.IsLoaded()) { + op.Accept(XHOR.value); + } + if (XESP.IsLoaded()) { + //TODO - implement VisitFormIDs for struct GENXESP + } + if (XOWN.IsLoaded()) { + op.Accept(XOWN.value); + } + if (XLCN.IsLoaded()) { + op.Accept(XLCN.value); + } + if (XLKR.IsLoaded()) { + //TODO - implement VisitFormIDs for struct XLKR + } + if (XLRL.IsLoaded()) { + op.Accept(XLRL.value); + } + if (DATA.IsLoaded()) { + //TODO - implement VisitFormIDs for struct GENPOSDATA + } + + return op.Stop(); + } + + + int32_t ACHRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Load(); + VMAD.value->Read(buffer, subSize, REV32(ACHR), CompressedOnDisk); + break; + case REV32(NAME): + NAME.Read(buffer, subSize); + break; + case REV32(XEZN): + XEZN.Read(buffer, subSize); + break; + case REV32(XPRD): + XPRD.Read(buffer, subSize); + break; + case REV32(XPPA): + XPPA.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(INAM): + INAM.Read(buffer, subSize); + break; + case REV32(PDTO): + PDTO.Read(buffer, subSize); + break; + case REV32(XRGD): + XRGD.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(XRGB): + XRGB.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(XLCM): + XLCM.Read(buffer, subSize); + break; + case REV32(XAPD): + XAPD.Read(buffer, subSize); + break; + case REV32(XAPR): + XAPR.Read(buffer, subSize); + break; + case REV32(XLRT): + XLRT.Read(buffer, subSize); + break; + case REV32(XHOR): + XHOR.Read(buffer, subSize); + break; + case REV32(XESP): + XESP.Read(buffer, subSize); + break; + case REV32(XOWN): + XOWN.Read(buffer, subSize); + break; + case REV32(XLCN): + XLCN.Read(buffer, subSize); + break; + case REV32(XLKR): + XLKR.Read(buffer, subSize); + break; + case REV32(XIS2): + XIS2.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(XLRL): + XLRL.Read(buffer, subSize); + break; + case REV32(XSCL): + XSCL.Read(buffer, subSize); + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t ACHRRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + NAME.Unload(); + XEZN.Unload(); + XPRD.Unload(); + XPPA.Unload(); + INAM.Unload(); + PDTO.Unload(); + XRGD.Unload(); + XRGB.Unload(); + XLCM.Unload(); + XAPD.Unload(); + XAPR.Unload(); + XLRT.Unload(); + XHOR.Unload(); + XESP.Unload(); + XOWN.Unload(); + XLCN.Unload(); + XLKR.Unload(); + XIS2.Unload(); + XLRL.Unload(); + XSCL.Unload(); + DATA.Unload(); + + return 1; + } + + int32_t ACHRRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(NAME); + WRITE(XEZN); + WRITE(XPRD); + WRITE(XPPA); + WRITE(INAM); + WRITE(PDTO); + WRITE(XRGD); + WRITE(XRGB); + WRITE(XLCM); + WRITE(XAPD); + WRITE(XAPR); + WRITE(XLRT); + WRITE(XHOR); + WRITE(XESP); + WRITE(XOWN); + WRITE(XLCN); + WRITE(XLKR); + WRITE(XIS2); + WRITE(XLRL); + WRITE(XSCL); + WRITE(DATA); + return -1; + } + + bool ACHRRecord::operator ==(const ACHRRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + NAME == other.NAME && + XEZN == other.XEZN && + XPRD == other.XPRD && + XPPA == other.XPPA && + INAM == other.INAM && + PDTO == other.PDTO && + XRGD == other.XRGD && + XRGB == other.XRGB && + XLCM == other.XLCM && + XAPD == other.XAPD && + XAPR == other.XAPR && + XLRT == other.XLRT && + XHOR == other.XHOR && + XESP == other.XESP && + XOWN == other.XOWN && + XLCN == other.XLCN && + XLKR == other.XLKR && + XIS2 == other.XIS2 && + XLRL == other.XLRL && + XSCL == other.XSCL && + DATA == other.DATA); + } + + bool ACHRRecord::operator !=(const ACHRRecord &other) const + { + return !(*this == other); + } + + bool ACHRRecord::equals(Record *other) + { + return *this == *(ACHRRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/ACHRRecord.h b/src/Skyrim/Records/ACHRRecord.h new file mode 100644 index 0000000..1d4d3c3 --- /dev/null +++ b/src/Skyrim/Records/ACHRRecord.h @@ -0,0 +1,125 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../VMAD/VMAD.h" +#include "../SkyrimChunks.h" + +namespace Sk +{ + + struct GenPDTO { + + uint32_t type; + union { + FORMID subtype; + char str[4]; + } sub; + + bool operator ==(const GenPDTO &other) const { + + if (this->type != other.type) { + return false; + } + + switch (this->type) { + case 1: { + return this->sub.subtype == other.sub.subtype; + } + + case 2: + default: { + return this->sub.str == other.sub.str; + } + + } + + } + + bool operator !=(const GenPDTO &other) const { + return !(*this == other); + } + }; + + class ACHRRecord : public TES5Record //Texture Set + { + + public: + StringRecord EDID; //Editor ID + OptSubRecord VMAD; + ReqSimpleSubRecord NAME; + OptSimpleSubRecord XEZN; + OptSimpleFloatSubRecord XPRD; //Radius + RawRecord XPPA; + OptSimpleSubRecord INAM; //Light Inherit Flags + OptSubRecord PDTO; + RawRecord XRGD; + RawRecord XRGB; + SemiOptSimpleSubRecord XLCM; //Light Inherit Flags + SemiOptSimpleSubRecord XAPD; //Light Inherit Flags + OptSubRecord XAPR; + UnorderedSparseArray XLRT; + OptSimpleSubRecord XHOR; + OptSubRecord XESP; + OptSimpleSubRecord XOWN; + OptSimpleSubRecord XLCN; + OptSubRecord XLKR; + RawRecord XIS2; + OptSimpleSubRecord XLRL; + SemiOptSimpleFloatSubRecord XSCL; //Hair length + OptSubRecord DATA; //Position/Rotation + + ACHRRecord(unsigned char *_recData = NULL); + ACHRRecord(ACHRRecord *srcRecord); + ~ACHRRecord(); + + uint32_t GetType(); + char * GetStrType(); + + bool VisitFormIDs(FormIDOp &op); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + + bool operator ==(const ACHRRecord &other) const; + bool operator !=(const ACHRRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/ACTIRecord.cpp b/src/Skyrim/Records/ACTIRecord.cpp index 84b1ab0..2f84fe0 100644 --- a/src/Skyrim/Records/ACTIRecord.cpp +++ b/src/Skyrim/Records/ACTIRecord.cpp @@ -34,7 +34,7 @@ * * ***** END LICENSE BLOCK ***** */ #include "ACTIRecord.h" -#include "..\..\ModFile.h" +#include "../../ModFile.h" namespace Sk { @@ -76,8 +76,7 @@ bool ACTIRecord::VisitFormIDs(FormIDOp &op) if(!IsLoaded()) return false; - if (MODL.IsLoaded()) - MODL->Textures.VisitFormIDs(op); + MODL.Textures.VisitFormIDs(op); if (Destructable.IsLoaded()) Destructable->VisitFormIDs(op); @@ -145,16 +144,13 @@ int32_t ACTIRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); break; case REV32(MODL): - MODL.Load(); - MODL->MODL.Read(buffer, subSize, CompressedOnDisk); + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); break; case REV32(MODT): - MODL.Load(); - MODL->MODT.Read(buffer, subSize, CompressedOnDisk); + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); break; case REV32(MODS): - MODL.Load(); - MODL->Textures.Read(buffer, subSize); + MODL.Textures.Read(buffer, subSize); break; case REV32(DEST): Destructable.Load(); @@ -216,11 +212,8 @@ int32_t ACTIRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer KNAM.Read(buffer, subSize); break; default: - //printer("FileName = %s\n", FileName); - printer(" ACTI: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -236,7 +229,6 @@ int32_t ACTIRecord::Unload() VMAD.Unload(); OBND.Unload(); FULL.Unload(); - MODL.Unload(); Destructable.Unload(); KWDA.Unload(); PNAM.Unload(); diff --git a/src/Skyrim/Records/ACTIRecord.h b/src/Skyrim/Records/ACTIRecord.h index adb1821..002e42d 100644 --- a/src/Skyrim/Records/ACTIRecord.h +++ b/src/Skyrim/Records/ACTIRecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\GenericRecord.h" -#include "..\SkyrimChunks.h" -#include "..\SkyrimCommon.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" namespace Sk { @@ -48,7 +48,7 @@ class ACTIRecord : public TES5Record // Activator record VMADRecord VMAD; // Virtual Machind Data ReqSubRecord OBND; // Object Bounds LStringRecord FULL; // Full Name - OptSubRecord MODL; // Model + FNVMODEL MODL; // Model OptSubRecord Destructable; // Destruction Data // KSIZ - ignored OptCounted, uint32_t, REV32(KSIZ)> KWDA; // Keywords @@ -57,7 +57,7 @@ class ACTIRecord : public TES5Record // Activator record OptSimpleSubRecord VNAM; // Sound - Acttivation OptSimpleSubRecord WNAM; // Water Type LStringRecord RNAM; // Active Text Override - OptSimpleSubRecord FNAM; // Flags + SemiOptSimpleSubRecord FNAM; // Flags OptSimpleSubRecord KNAM; // Interaction Keyword ACTIRecord(unsigned char *_recData=NULL); @@ -77,6 +77,7 @@ class ACTIRecord : public TES5Record // Activator record int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const ACTIRecord &other) const; bool operator !=(const ACTIRecord &other) const; diff --git a/src/Skyrim/Records/ADDNRecord.cpp b/src/Skyrim/Records/ADDNRecord.cpp index f6ff416..0a96645 100644 --- a/src/Skyrim/Records/ADDNRecord.cpp +++ b/src/Skyrim/Records/ADDNRecord.cpp @@ -168,12 +168,10 @@ int32_t ADDNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer OBND.Read(buffer, subSize); break; case REV32(MODL): - MODL.Load(); - MODL->MODL.Read(buffer, subSize, CompressedOnDisk); + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); break; case REV32(MODT): - MODL.Load(); - MODL->MODT.Read(buffer, subSize, CompressedOnDisk); + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); break; case REV32(DATA): DATA.Read(buffer, subSize); @@ -185,11 +183,8 @@ int32_t ADDNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DNAM.Read(buffer, subSize); break; default: - //printer("FileName = %s\n", FileName); - printer(" LVLN: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -203,7 +198,6 @@ int32_t ADDNRecord::Unload() IsLoaded(false); EDID.Unload(); OBND.Unload(); - MODL.Unload(); DATA.Unload(); SNAM.Unload(); DNAM.Unload(); @@ -214,7 +208,7 @@ int32_t ADDNRecord::WriteRecord(FileWriter &writer) { WRITE(EDID); WRITE(OBND); - WRITE(MODL); + MODL.Write(writer); WRITE(DATA); WRITE(SNAM); WRITE(DNAM); diff --git a/src/Skyrim/Records/ADDNRecord.h b/src/Skyrim/Records/ADDNRecord.h index 29fd73f..dc20719 100644 --- a/src/Skyrim/Records/ADDNRecord.h +++ b/src/Skyrim/Records/ADDNRecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" -#include "..\SkyrimChunks.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -66,7 +66,7 @@ class ADDNRecord : public TES5Record //Leveled Item public: StringRecord EDID; //Editor ID ReqSubRecord OBND; //Object bounds - ReqSubRecord MODL; // Model - MODL/MODT (MODS unused) + FNVMODEL MODL; // Model - MODL/MODT (MODS unused) ReqSimpleSubRecord DATA; // Node Index OptSimpleSubRecord SNAM; // Sound ReqSubRecord DNAM; // Data @@ -95,6 +95,7 @@ class ADDNRecord : public TES5Record //Leveled Item int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const ADDNRecord &other) const; bool operator !=(const ADDNRecord &other) const; diff --git a/src/Skyrim/Records/ALCHRecord.cpp b/src/Skyrim/Records/ALCHRecord.cpp index 5ec415c..9df5879 100644 --- a/src/Skyrim/Records/ALCHRecord.cpp +++ b/src/Skyrim/Records/ALCHRecord.cpp @@ -35,7 +35,7 @@ * * ***** END LICENSE BLOCK ***** */ #include "ALCHRecord.h" -#include "..\..\ModFile.h" +#include "../../ModFile.h" namespace Sk { @@ -107,8 +107,8 @@ bool ALCHRecord::VisitFormIDs(FormIDOp &op) { for (uint32_t i = 0; i < KWDA.value.size(); ++i) op.Accept(KWDA.value[i]); - if (MODL.IsLoaded()) - MODL->Textures.VisitFormIDs(op); + + MODL.Textures.VisitFormIDs(op); if (Destructable.IsLoaded()) Destructable->VisitFormIDs(op); if (YNAM.IsLoaded()) @@ -230,16 +230,14 @@ int32_t ALCHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DESC.Read(buffer, subSize, CompressedOnDisk, LookupStrings); break; case REV32(MODL): - MODL.Load(); - MODL->MODL.Read(buffer, subSize, CompressedOnDisk); + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); break; case REV32(MODT): - MODL.Load(); - MODL->MODT.Read(buffer, subSize, CompressedOnDisk); + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); break; case REV32(MODS): - MODL.Load(); - MODL->Textures.Read(buffer, subSize); + MODL.Textures.Read(buffer, subSize); + break; case REV32(DEST): Destructable.Load(); Destructable->DEST.Read(buffer, subSize); @@ -322,11 +320,8 @@ int32_t ALCHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer Effects.value.back()->CTDA.value.back()->CIS2.Read(buffer, subSize, CompressedOnDisk); break; default: - //printer("Filename = %s\n", FileName); - printer(" AACT: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } @@ -343,7 +338,6 @@ int32_t ALCHRecord::Unload() FULL.Unload(); KWDA.Unload(); DESC.Unload(); - MODL.Unload(); Destructable.Unload(); ICON.Unload(); MICO.Unload(); @@ -363,7 +357,7 @@ int32_t ALCHRecord::WriteRecord(FileWriter &writer) WRITE(FULL); WRITE(KWDA); WRITE(DESC); - WRITE(MODL); + MODL.Write(writer); Destructable.Write(writer); WRITE(ICON); WRITE(MICO); diff --git a/src/Skyrim/Records/ALCHRecord.h b/src/Skyrim/Records/ALCHRecord.h index 3525eb8..b04760d 100644 --- a/src/Skyrim/Records/ALCHRecord.h +++ b/src/Skyrim/Records/ALCHRecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\SkyrimCommon.h" -#include "..\..\GenericRecord.h" -#include "..\SkyrimChunks.h" +#include "../SkyrimCommon.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -73,7 +73,7 @@ class ALCHRecord : public TES5Record // Ingestible LStringRecord FULL; // Name OptCounted, uint32_t, REV32(KSIZ)> KWDA; // Keywords LStringRecord DESC; // Description - OptSubRecord MODL; // Model + FNVMODEL MODL; // Model OptSubRecord Destructable; // Destruction Data StringRecord ICON; // Large Icon StringRecord MICO; // Menu Icon @@ -112,6 +112,7 @@ class ALCHRecord : public TES5Record // Ingestible int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const ALCHRecord &other) const; bool operator !=(const ALCHRecord &other) const; diff --git a/src/Skyrim/Records/AMMORecord.cpp b/src/Skyrim/Records/AMMORecord.cpp new file mode 100644 index 0000000..5bbb039 --- /dev/null +++ b/src/Skyrim/Records/AMMORecord.cpp @@ -0,0 +1,269 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "AMMORecord.h" + +namespace Sk +{ + AMMORecord::AMMORecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + AMMORecord::AMMORecord(AMMORecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + MODL = srcRecord->MODL; + ICON = srcRecord->ICON; + MICO = srcRecord->MICO; + DEST = srcRecord->DEST; + YNAM = srcRecord->YNAM; + ZNAM = srcRecord->ZNAM; + DESC = srcRecord->DESC; + KWDA = srcRecord->KWDA; + DATA = srcRecord->DATA; + + if (!srcRecord->IsChanged()) + return; + + return; + } + + AMMORecord::~AMMORecord() + { + // + } + + uint32_t AMMORecord::GetType() + { + return REV32(AMMO); + } + + char * AMMORecord::GetStrType() + { + return "AMMO"; + } + + + bool AMMORecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //TODO - implement VisitFormIDs for struct GENOBND + + if (DEST.IsLoaded()) { + //TODO - implement VisitFormIDs for struct GENDESTRUCT + } + if (YNAM.IsLoaded()) { + op.Accept(YNAM.value); + } + if (ZNAM.IsLoaded()) { + op.Accept(ZNAM.value); + } + if (KWDA.IsLoaded()) { + for (uint32_t i = 0; i < KWDA.value.size(); ++i) { + + op.Accept(KWDA.value[i]); + + }; + } + if (DATA.IsLoaded()) { + //TODO - implement VisitFormIDs for struct AMMODATA + } + + return op.Stop(); + } + + + int32_t AMMORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(MODL): + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(ICON): + ICON.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MICO): + MICO.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(DEST): + DEST.Read(buffer, subSize); + break; + case REV32(YNAM): + YNAM.Read(buffer, subSize); + break; + case REV32(ZNAM): + ZNAM.Read(buffer, subSize); + break; + case REV32(DESC): + DESC.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(KSIZ): + // Ignore on read + buffer += subSize; + break; + case REV32(KWDA): + KWDA.Read(buffer, subSize); + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t AMMORecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + OBND.Unload(); + FULL.Unload(); + ICON.Unload(); + MICO.Unload(); + DEST.Unload(); + YNAM.Unload(); + ZNAM.Unload(); + DESC.Unload(); + KWDA.Unload(); + DATA.Unload(); + + return 1; + } + + int32_t AMMORecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(OBND); + WRITE(FULL); + MODL.Write(writer); + WRITE(ICON); + WRITE(MICO); + WRITE(DEST); + WRITE(YNAM); + WRITE(ZNAM); + WRITE(DESC); + WRITE(KWDA); + WRITE(DATA); + return -1; + } + + bool AMMORecord::operator ==(const AMMORecord &other) const + { + return (EDID.equalsi(other.EDID) && + OBND == other.OBND && + FULL.equalsi(other.FULL) && + MODL == other.MODL && + ICON.equalsi(other.ICON) && + MICO.equalsi(other.MICO) && + DEST == other.DEST && + YNAM == other.YNAM && + ZNAM == other.ZNAM && + DESC.equalsi(other.DESC) && + KWDA == other.KWDA && + DATA == other.DATA); + } + + bool AMMORecord::operator !=(const AMMORecord &other) const + { + return !(*this == other); + } + + bool AMMORecord::equals(Record *other) + { + return *this == *(AMMORecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/AMMORecord.h b/src/Skyrim/Records/AMMORecord.h new file mode 100644 index 0000000..b882a67 --- /dev/null +++ b/src/Skyrim/Records/AMMORecord.h @@ -0,0 +1,100 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + struct AMMODATA { + FORMID proj; + uint32_t flags; + float damage; + uint32_t goldValue; + + bool operator ==(const AMMODATA &other) const { + + return (this->proj == other.proj && + this->flags == other.flags && + this->damage == other.damage && + this->goldValue == other.goldValue); + + } + + bool operator !=(const AMMODATA &other) const { + return !(*this == other); + } + }; + + class AMMORecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // ambient + MODEL MODL; //Model + StringRecord ICON; + StringRecord MICO; + OptSubRecord DEST; // Destruction data + OptSimpleSubRecord YNAM; // Sound - pick up + OptSimpleSubRecord ZNAM; // Sound - drop + LStringRecord DESC; // Description + OptCounted, uint32_t, REV32(KSIZ)> KWDA; + OptSubRecord DATA; + //ONAM; + + AMMORecord(unsigned char *_recData = NULL); + AMMORecord(AMMORecord *srcRecord); + ~AMMORecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const AMMORecord &other) const; + bool operator !=(const AMMORecord &other) const; + bool equals(Record *other); + }; + +} // namespace Sk \ No newline at end of file diff --git a/src/Skyrim/Records/ANIORecord.cpp b/src/Skyrim/Records/ANIORecord.cpp index 89dc745..68be926 100644 --- a/src/Skyrim/Records/ANIORecord.cpp +++ b/src/Skyrim/Records/ANIORecord.cpp @@ -98,22 +98,17 @@ int32_t ANIORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer EDID.Read(buffer, subSize, CompressedOnDisk); break; case REV32(MODL): - MODL.Load(); - MODL->MODL.Read(buffer, subSize, CompressedOnDisk); + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); break; case REV32(MODT): - MODL.Load(); - MODL->MODT.Read(buffer, subSize, CompressedOnDisk); + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); break; case REV32(BNAM): BNAM.Read(buffer, subSize, CompressedOnDisk); break; default: - //printer("FileName = %s\n", FileName); - printer(" LVLN: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -126,7 +121,6 @@ int32_t ANIORecord::Unload() IsChanged(false); IsLoaded(false); EDID.Unload(); - MODL.Unload(); BNAM.Unload(); return 1; } @@ -134,7 +128,7 @@ int32_t ANIORecord::Unload() int32_t ANIORecord::WriteRecord(FileWriter &writer) { WRITE(EDID); - WRITE(MODL); + MODL.Write(writer); WRITE(BNAM); return -1; } diff --git a/src/Skyrim/Records/ANIORecord.h b/src/Skyrim/Records/ANIORecord.h index d9996b3..bbb6b0e 100644 --- a/src/Skyrim/Records/ANIORecord.h +++ b/src/Skyrim/Records/ANIORecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" -#include "..\SkyrimChunks.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -45,7 +45,7 @@ class ANIORecord : public TES5Record //Leveled Item { public: StringRecord EDID; //Editor ID - OptSubRecord MODL; // Model + MODEL MODL; // Model StringRecord BNAM; //Unload Event ANIORecord(unsigned char *_recData=NULL); @@ -63,6 +63,7 @@ class ANIORecord : public TES5Record //Leveled Item int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const ANIORecord &other) const; bool operator !=(const ANIORecord &other) const; diff --git a/src/Skyrim/Records/API/AACTRecordAPI.cpp b/src/Skyrim/Records/API/AACTRecordAPI.cpp index 97e816b..97c2127 100644 --- a/src/Skyrim/Records/API/AACTRecordAPI.cpp +++ b/src/Skyrim/Records/API/AACTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\AACTRecord.h" +#include "../../../Common.h" +#include "../AACTRecord.h" namespace Sk { @@ -45,47 +45,47 @@ uint32_t AACTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: // CNAM.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: // CNAM.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: // CNAM.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 10: // CNAM.unk1 - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * AACTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) @@ -167,7 +167,6 @@ bool AACTRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySiz void AACTRecord::DeleteField(FIELD_IDENTIFIERS) { - GENCNAM defaultCNAM; switch(FieldID) { case 1: //flags1 @@ -187,14 +186,8 @@ void AACTRecord::DeleteField(FIELD_IDENTIFIERS) versionControl2[1] = 0; return; case 7: // CNAM.red - CNAM->red = defaultCNAM.red; - return; case 8: // CNAM.green - CNAM->green = defaultCNAM.green; - return; case 9: // CNAM.blue - CNAM->blue = defaultCNAM.blue; - return; case 10: // CNAM.unk1 CNAM.Unload(); return; diff --git a/src/Skyrim/Records/API/ACTIRecordAPI.cpp b/src/Skyrim/Records/API/ACTIRecordAPI.cpp index f6b7813..802a1a9 100644 --- a/src/Skyrim/Records/API/ACTIRecordAPI.cpp +++ b/src/Skyrim/Records/API/ACTIRecordAPI.cpp @@ -1,859 +1,853 @@ /* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is CBash code. - * - * The Initial Developer of the Original Code is - * Waruddar. - * Portions created by the Initial Developer are Copyright (C) 2010 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -#include "..\ACTIRecord.h" +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../ACTIRecord.h" namespace Sk { -// VMAD not accessible via API + // VMAD not accessible via API -uint32_t ACTIRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) -{ - switch (FieldID) - { - case 0: //recType - return GetType(); - case 1: //flags1 - return CB_UINT32_FLAG_FIELD; - case 2: //fid - return CB_FORMID_FIELD; - case 3: //versionControl1 - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 4; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 4: //eid - return CB_ISTRING_FIELD; - case 5: //formVersion - return CB_UINT16_FIELD; - case 6: //versionControl2 - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 7: //boundX1 - return CB_SINT16_FIELD; - case 8: //boundY1 - return CB_SINT16_FIELD; - case 9: //boundZ1 - return CB_SINT16_FIELD; - case 10: //boundX2 - return CB_SINT16_FIELD; - case 11: //boundY2 - return CB_SINT16_FIELD; - case 12: //boundZ2 - return CB_SINT16_FIELD; - case 13: //full - return CB_STRING_FIELD; - case 14: //modPath - return CB_ISTRING_FIELD; - case 15: //modt_p - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 16: //altTextures - if (!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if (ListFieldID == 0) //altTextures - { - switch (WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if (ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; - - switch (ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 17: //destructableHealth - return CB_SINT32_FIELD; - case 18: //destructableCount - return CB_UINT8_FIELD; - case 19: //destructableFlags - return CB_UINT8_FLAG_FIELD; - case 20: //destructableUnused1 - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return Destructable.IsLoaded() ? 2 : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 21: //destructableStages - if (!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; - - if (ListFieldID == 0) //destructableStages - { - switch (WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)Destructable->Stages.value.size(); - default: - return CB_UNKNOWN_FIELD; - } - } - - if (ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; - - switch (ListFieldID) - { - case 1: //health - return CB_UINT8_FIELD; - case 2: //index - return CB_UINT8_FIELD; - case 3: //stage - return CB_UINT8_FIELD; - case 4: //flags - return CB_UINT8_FLAG_FIELD; - case 5: //dps - return CB_SINT32_FIELD; - case 6: //explosion - return CB_FORMID_FIELD; - case 7: //debris - return CB_FORMID_FIELD; - case 8: //debrisCount - return CB_SINT32_FIELD; - case 9: //modPath - return CB_ISTRING_FIELD; - case 10: //modt_p - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 11: //altTextures - if (ListX2FieldID == 0) //altTextures - { - switch (WhichAttribute) - { - case 1: //fieldType - return CB_LIST_FIELD; - case 2: //fieldSize - return Destructable->Stages.value[ListIndex]->DMDS.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - } - if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) - return CB_UNKNOWN_FIELD; - switch (ListX2FieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 22: //keywords - switch (WhichAttribute) - { - case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; - case 1: //fieldSize - return KWDA.value.size(); - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 23: //colorRed - return CB_UINT8_FIELD; - case 24: //colorGreen - return CB_UINT8_FIELD; - case 25: //colorBlue - return CB_UINT8_FIELD; - case 26: //colorUnk1 - return CB_UINT8_FIELD; - case 27: //loopSound - return CB_FORMID_FIELD; - case 28: //actSound - return CB_FORMID_FIELD; - case 29: //water - return CB_FORMID_FIELD; - case 30: //textOverride - return CB_STRING_FIELD; - case 31: //flags - return CB_UINT16_FLAG_FIELD; - case 32: //interactKywd - return CB_FORMID_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; -} - -void * ACTIRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) -{ - switch (FieldID) - { - case 1: //flags1 - return &flags; - case 2: //fid - return &formID; - case 3: //versionControl1 - *FieldValues = &flagsUnk; - return NULL; - case 4: //eid - return EDID.value; - case 5: //formVersion - return &formVersion; - case 6: //versionControl2 - *FieldValues = &versionControl2[0]; - return NULL; - case 7: //boundX1 - return &OBND.value.x1; - case 8: //boundY1 - return &OBND.value.y1; - case 9: //boundZ1 - return &OBND.value.z1; - case 10: //boundX2 - return &OBND.value.x2; - case 11: //boundY2 - return &OBND.value.y2; - case 12: //boundZ2 - return &OBND.value.z2; - case 13: //full - return FULL.value; - case 14: //modPath - return MODL.IsLoaded() ? MODL->MODL.value : NULL; - case 15: //modt_p - *FieldValues = MODL.IsLoaded() ? MODL->MODT.value : NULL; - return NULL; - case 16: //altTextures - if (!MODL.IsLoaded()) - return NULL; - - if (ListIndex >= MODL->Textures.MODS.size()) - return NULL; - - switch (ListFieldID) - { - case 1: //name - return MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 17: //destructableHealth - return Destructable.IsLoaded() ? &Destructable->DEST.value.health : NULL; - case 18: //destructableCount - return Destructable.IsLoaded() ? &Destructable->DEST.value.count : NULL; - case 19: //destructableFlags - return Destructable.IsLoaded() ? &Destructable->DEST.value.flags : NULL; - case 20: //destructableUnused1 - *FieldValues = Destructable.IsLoaded() ? &Destructable->DEST.value.unused1[0] : NULL; - return NULL; - case 21: //destructableStages - if (!Destructable.IsLoaded()) - return NULL; - - if (ListIndex >= Destructable->Stages.value.size()) - return NULL; - - switch (ListFieldID) - { - case 1: //health - return &Destructable->Stages.value[ListIndex]->DSTD.value.health; - case 2: //index - return &Destructable->Stages.value[ListIndex]->DSTD.value.index; - case 3: //stage - return &Destructable->Stages.value[ListIndex]->DSTD.value.stage; - case 4: //flags - return &Destructable->Stages.value[ListIndex]->DSTD.value.flags; - case 5: //dps - return &Destructable->Stages.value[ListIndex]->DSTD.value.dps; - case 6: //explosion - return &Destructable->Stages.value[ListIndex]->DSTD.value.explosion; - case 7: //debris - return &Destructable->Stages.value[ListIndex]->DSTD.value.debris; - case 8: //debrisCount - return &Destructable->Stages.value[ListIndex]->DSTD.value.debrisCount; - case 9: //modPath - return Destructable->Stages.value[ListIndex]->DMDL.value; - case 10: //modt_p - *FieldValues = Destructable->Stages.value[ListIndex]->DMDT.value; - return NULL; - case 11: //altTextures - if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) - return NULL; - - switch (ListX2FieldID) - { - case 1: //name - return Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; - case 2: //texture - return &Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture; - case 3: //index - return &Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index; - default: - return NULL; - } - return NULL; - default: - return NULL; - } - return NULL; - case 22: //keywords - *FieldValues = KWDA.IsLoaded() ? &KWDA.value[0] : NULL; - return NULL; - case 23: //colorRed - return &PNAM->red; - case 24: //colorGreen - return &PNAM->green; - case 25: //colorBlue - return &PNAM->blue; - case 26: //colorUnk - return &PNAM->unk1; - case 27: //loopSound - return SNAM.IsLoaded() ? &SNAM.value : NULL; - case 28: //actSound - return VNAM.IsLoaded() ? &VNAM.value : NULL; - case 29: //water - return WNAM.IsLoaded() ? &WNAM.value : NULL; - case 30: //textOverride - return RNAM.value; - case 31: //flags - return &FNAM.value; - case 32: //interactionKywd - return KNAM.IsLoaded() ? &KNAM.value : NULL; - default: - return NULL; - } - return NULL; -} - -bool ACTIRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) -{ - switch (FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(*(uint32_t *)FieldValue); - break; - case 3: //versionControl1 - if (ArraySize != 4) - break; - ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; - ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; - ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; - ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; - break; - case 4: //eid - EDID.Copy((char *)FieldValue); - break; - case 5: //formVersion - formVersion = *(uint16_t *)FieldValue; - break; - case 6: //versionControl2 - if (ArraySize != 2) - break; - versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; - versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 7: //boundX1 - OBND.value.x1 = *(int16_t *)FieldValue; - break; - case 8: //boundY1 - OBND.value.y1 = *(int16_t *)FieldValue; - break; - case 9: //boundZ1 - OBND.value.z1 = *(int16_t *)FieldValue; - break; - case 10: //boundX2 - OBND.value.x2 = *(int16_t *)FieldValue; - break; - case 11: //boundY2 - OBND.value.y2 = *(int16_t *)FieldValue; - break; - case 12: //boundZ2 - OBND.value.z2 = *(int16_t *)FieldValue; - break; - case 13: //full - FULL.Copy((char *)FieldValue); - break; - case 14: //modPath - MODL.Load(); - MODL->MODL.Copy((char *)FieldValue); - break; - case 15: //modt_p - MODL.Load(); - MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 16: //altTextures - MODL.Load(); - if (ListFieldID == 0) //altTexturesSize - { - MODL->Textures.resize(ArraySize); - return false; - } - - if (ListIndex >= MODL->Textures.MODS.size()) - break; - - switch (ListFieldID) - { - case 1: //name - delete[]MODL->Textures.MODS[ListIndex]->name; - MODL->Textures.MODS[ListIndex]->name = NULL; - if (FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 17: //destructableHealth - Destructable.Load(); - Destructable->DEST.value.health = *(int32_t *)FieldValue; - break; - case 18: //destructableCount - Destructable.Load(); - Destructable->DEST.value.count = *(uint8_t *)FieldValue; - break; - case 19: //destructableFlags - Destructable.Load(); - Destructable->DEST->flags = *(uint8_t *)FieldValue; - break; - case 20: //destructableUnused1 - if (ArraySize != 2) - break; - Destructable.Load(); - Destructable->DEST.value.unused1[0] = ((UINT8ARRAY)FieldValue)[0]; - Destructable->DEST.value.unused1[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 21: //destructableStages - Destructable.Load(); - if (ListFieldID == 0) //destructableStagesSize - { - Destructable->Stages.resize(ArraySize); - return false; - } - - if (ListIndex >= Destructable->Stages.value.size()) - break; - - switch (ListFieldID) - { - case 1: //health - Destructable->Stages.value[ListIndex]->DSTD.value.health = *(uint8_t *)FieldValue; - break; - case 2: //index - Destructable->Stages.value[ListIndex]->DSTD.value.index = *(uint8_t *)FieldValue; - break; - case 3: //stage - Destructable->Stages.value[ListIndex]->DSTD.value.stage = *(uint8_t *)FieldValue; - break; - case 4: //flags - Destructable->Stages.value[ListIndex]->DSTD.value.flags = *(uint8_t *)FieldValue; - break; - case 5: //dps - Destructable->Stages.value[ListIndex]->DSTD.value.dps = *(int32_t *)FieldValue; - break; - case 6: //explosion - Destructable->Stages.value[ListIndex]->DSTD.value.explosion = *(FORMID *)FieldValue; - return true; - case 7: //debris - Destructable->Stages.value[ListIndex]->DSTD.value.debris = *(FORMID *)FieldValue; - return true; - case 8: //debrisCount - Destructable->Stages.value[ListIndex]->DSTD.value.debrisCount = *(int32_t *)FieldValue; - break; - case 9: //modPath - Destructable->Stages.value[ListIndex]->DMDL.Copy((char *)FieldValue); - break; - case 10: //modt_p - Destructable->Stages.value[ListIndex]->DMDT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 11: //altTextures - if (ListX2FieldID == 0) //altTexturesSize - { - Destructable->Stages.value[ListIndex]->DMDS.resize(ArraySize); - return false; - } - - switch (ListX2FieldID) - { - case 1: //name - delete[] Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = NULL; - if (FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = new char[ArraySize]; - strcpy_s(Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - default: - break; - } - break; - case 22: //keywords - KWDA.resize(ArraySize); - for (uint32_t x = 0; x < ArraySize; ++x) - KWDA.value[x] = ((FORMIDARRAY)FieldValue)[x]; - return true; - case 23: //colorRed - PNAM->red = *(uint8_t *)FieldValue; - break; - case 24: //colorGreen - PNAM->green = *(uint8_t *)FieldValue; - break; - case 25: //colorBlue - PNAM->blue = *(uint8_t *)FieldValue; - break; - case 26: //colorUnk - PNAM->unk1 = *(uint8_t *)FieldValue; - break; - case 27: //loopSound - SNAM.value = *(FORMID *)FieldValue; - return true; - case 28: //actSound - VNAM.value = *(FORMID *)FieldValue; - return true; - case 29: //water - WNAM.value = *(FORMID *)FieldValue; - return true; - case 30: //textOverride - RNAM.Copy((char *)FieldValue); - break; - case 31: //flags - FNAM.value = *(uint16_t *)FieldValue; - break; - case 32: //interactionKywd - KNAM.value = *(FORMID *)FieldValue; - return true; - default: - break; - } - - return false; -} - -void ACTIRecord::DeleteField(FIELD_IDENTIFIERS) -{ - GENOBND defaultOBND; - FNVMODS defaultMODS; - GENDEST defaultDEST; - DESTDSTD defaultDSTD; - GENCNAM defaultCNAM; - switch (FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(0); - return; - case 3: //versionControl1 - flagsUnk = 0; - return; - case 4: //eid - EDID.Unload(); - return; - case 5: //formVersion - formVersion = 0; - return; - case 6: //versionControl2 - versionControl2[0] = 0; - versionControl2[1] = 0; - return; - case 7: //boundX1 - OBND.value.x1 = defaultOBND.x1; - return; - case 8: //boundY1 - OBND.value.y1 = defaultOBND.y1; - return; - case 9: //boundZ1 - OBND.value.z1 = defaultOBND.z1; - return; - case 10: //boundX2 - OBND.value.x2 = defaultOBND.x2; - return; - case 11: //boundY2 - OBND.value.y2 = defaultOBND.y2; - return; - case 12: //boundZ2 - OBND.value.z2 = defaultOBND.z2; - return; - case 13: //full - FULL.Unload(); - return; - case 14: //modPath - if (MODL.IsLoaded()) - MODL->MODL.Unload(); - return; - case 15: //modt_p - if (MODL.IsLoaded()) - MODL->MODT.Unload(); - return; - case 16: //altTextures - if (MODL.IsLoaded()) - { - if (ListFieldID == 0) //altTextures - { - MODL->Textures.Unload(); - return; - } - - if (ListIndex >= MODL->Textures.MODS.size()) - return; - - switch (ListFieldID) - { - case 1: //name - delete[]MODL->Textures.MODS[ListIndex]->name; - MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 17: //destructableHealth - if (Destructable.IsLoaded()) - Destructable->DEST.value.health = defaultDEST.health; - return; - case 18: //destructableCount - if (Destructable.IsLoaded()) - Destructable->DEST.value.count = defaultDEST.count; - return; - case 19: //destructableFlags - if (Destructable.IsLoaded()) - Destructable->DEST->flags = defaultDEST.flags; - return; - case 20: //destructableUnused1 - if (Destructable.IsLoaded()) - { - Destructable->DEST.value.unused1[0] = defaultDSTD.health; - } - return; - case 21: //destructableStages - if (Destructable.IsLoaded()) - { - if (ListFieldID == 0) //destructableStages - { - Destructable->Stages.Unload(); - return; - } - - if (ListIndex >= Destructable->Stages.value.size()) - return; - - switch (ListFieldID) - { - case 1: //health - Destructable->Stages.value[ListIndex]->DSTD.value.health = defaultDSTD.health; - return; - case 2: //index - Destructable->Stages.value[ListIndex]->DSTD.value.index = defaultDSTD.index; - return; - case 3: //stage - Destructable->Stages.value[ListIndex]->DSTD.value.stage = defaultDSTD.stage; - return; - case 4: //flags - Destructable->Stages.value[ListIndex]->DSTD.value.flags = defaultDSTD.flags; - return; - case 5: //dps - Destructable->Stages.value[ListIndex]->DSTD.value.dps = defaultDSTD.dps; - return; - case 6: //explosion - Destructable->Stages.value[ListIndex]->DSTD.value.explosion = defaultDSTD.explosion; - return; - case 7: //debris - Destructable->Stages.value[ListIndex]->DSTD.value.debris = defaultDSTD.debris; - return; - case 8: //debrisCount - Destructable->Stages.value[ListIndex]->DSTD.value.debrisCount = defaultDSTD.debrisCount; - return; - case 9: //modPath - Destructable->Stages.value[ListIndex]->DMDL.Unload(); - return; - case 10: //modt_p - Destructable->Stages.value[ListIndex]->DMDT.Unload(); - return; - case 11: //altTextures - if (ListX2FieldID == 0) //altTextures - { - Destructable->Stages.value[ListIndex]->DMDS.Unload(); - return; - } - - if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) - return; - - switch (ListX2FieldID) - { - case 1: //name - delete[] Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = NULL; - return; - case 2: //texture - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture = defaultMODS.texture; - return; - case 3: //index - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index = defaultMODS.index; - return; - default: - return; - } - return; - default: - return; - } - } - return; - case 22: //keywords - KWDA.Unload(); - return; - case 23: //colorRed - PNAM->red = defaultCNAM.red; - return; - case 24: //colorGreen - PNAM->green = defaultCNAM.green; - return; - case 25: //colorBlue - PNAM->blue = defaultCNAM.blue; - return; - case 26: //colorUnk - PNAM->unk1 = defaultCNAM.unk1; - return; - case 27: //loopSound - SNAM.Unload(); - return; - case 28: //actSound - VNAM.Unload(); - return; - case 29: //water - WNAM.Unload(); - return; - case 30: //textOverride - RNAM.Unload(); - return; - case 31: //flags - FNAM.Unload(); - return; - case 32: //interactionKywd - KNAM.Unload(); - return; - default: - return; - } -} + uint32_t ACTIRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) + { + switch (FieldID) + { + case 0: //recType + return GetType(); + case 1: //flags1 + return UINT32_FLAG_FIELD; + case 2: //fid + return FORMID_FIELD; + case 3: //versionControl1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 4; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 4: //eid + return ISTRING_FIELD; + case 5: //formVersion + return UINT16_FIELD; + case 6: //versionControl2 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 7: //boundX1 + return SINT16_FIELD; + case 8: //boundY1 + return SINT16_FIELD; + case 9: //boundZ1 + return SINT16_FIELD; + case 10: //boundX2 + return SINT16_FIELD; + case 11: //boundY2 + return SINT16_FIELD; + case 12: //boundZ2 + return SINT16_FIELD; + case 13: //full + return STRING_FIELD; + case 14: //modPath + return ISTRING_FIELD; + case 15: //modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MODL.MODT.IsLoaded() ? MODL.MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 16: //altTextures + if (!MODL.Textures.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MODL.Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= MODL.Textures.MODS.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 17: //destructableHealth + return SINT32_FIELD; + case 18: //destructableCount + return UINT8_FIELD; + case 19: //destructableFlags + return UINT8_FLAG_FIELD; + case 20: //destructableUnused1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return Destructable.IsLoaded() ? 2 : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 21: //destructableStages + if (!Destructable.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //destructableStages + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)Destructable->Stages.value.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= Destructable->Stages.value.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //health + return UINT8_FIELD; + case 2: //index + return UINT8_FIELD; + case 3: //stage + return UINT8_FIELD; + case 4: //flags + return UINT8_FLAG_FIELD; + case 5: //dps + return SINT32_FIELD; + case 6: //explosion + return FORMID_FIELD; + case 7: //debris + return FORMID_FIELD; + case 8: //debrisCount + return SINT32_FIELD; + case 9: //modPath + return ISTRING_FIELD; + case 10: //modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 11: //altTextures + if (ListX2FieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 1: //fieldType + return LIST_FIELD; + case 2: //fieldSize + return (uint32_t)Destructable->Stages.value[ListIndex]->DMDS.MODS.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } + if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) + return UNKNOWN_FIELD; + switch (ListX2FieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 22: //keywords + switch (WhichAttribute) + { + case 0: //fieldType + return FORMID_ARRAY_FIELD; + case 1: //fieldSize + return (uint32_t)KWDA.value.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 23: //colorRed + return UINT8_FIELD; + case 24: //colorGreen + return UINT8_FIELD; + case 25: //colorBlue + return UINT8_FIELD; + case 26: //colorUnk1 + return UINT8_FIELD; + case 27: //loopSound + return FORMID_FIELD; + case 28: //actSound + return FORMID_FIELD; + case 29: //water + return FORMID_FIELD; + case 30: //textOverride + return STRING_FIELD; + case 31: //flags + return UINT16_FLAG_FIELD; + case 32: //interactKywd + return FORMID_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } + + void * ACTIRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) + { + switch (FieldID) + { + case 1: //flags1 + return &flags; + case 2: //fid + return &formID; + case 3: //versionControl1 + *FieldValues = &flagsUnk; + return NULL; + case 4: //eid + return EDID.value; + case 5: //formVersion + return &formVersion; + case 6: //versionControl2 + *FieldValues = &versionControl2[0]; + return NULL; + case 7: //boundX1 + return &OBND.value.x1; + case 8: //boundY1 + return &OBND.value.y1; + case 9: //boundZ1 + return &OBND.value.z1; + case 10: //boundX2 + return &OBND.value.x2; + case 11: //boundY2 + return &OBND.value.y2; + case 12: //boundZ2 + return &OBND.value.z2; + case 13: //full + return FULL.value; + case 14: //modPath + return MODL.MODL.IsLoaded() ? MODL.MODL.value : NULL; + case 15: //modt_p + *FieldValues = MODL.MODT.IsLoaded() ? MODL.MODT.value : NULL; + return NULL; + case 16: //altTextures + if (!MODL.Textures.IsLoaded()) + return NULL; + + if (ListIndex >= MODL.Textures.MODS.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //name + return MODL.Textures.MODS[ListIndex]->name; + case 2: //texture + return &MODL.Textures.MODS[ListIndex]->texture; + case 3: //index + return &MODL.Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 17: //destructableHealth + return Destructable.IsLoaded() ? &Destructable->DEST.value.health : NULL; + case 18: //destructableCount + return Destructable.IsLoaded() ? &Destructable->DEST.value.count : NULL; + case 19: //destructableFlags + return Destructable.IsLoaded() ? &Destructable->DEST.value.flags : NULL; + case 20: //destructableUnused1 + *FieldValues = Destructable.IsLoaded() ? &Destructable->DEST.value.unused1[0] : NULL; + return NULL; + case 21: //destructableStages + if (!Destructable.IsLoaded()) + return NULL; + + if (ListIndex >= Destructable->Stages.value.size()) + return NULL; + + switch (ListFieldID) + { + case 1: //health + return &Destructable->Stages.value[ListIndex]->DSTD.value.health; + case 2: //index + return &Destructable->Stages.value[ListIndex]->DSTD.value.index; + case 3: //stage + return &Destructable->Stages.value[ListIndex]->DSTD.value.stage; + case 4: //flags + return &Destructable->Stages.value[ListIndex]->DSTD.value.flags; + case 5: //dps + return &Destructable->Stages.value[ListIndex]->DSTD.value.dps; + case 6: //explosion + return &Destructable->Stages.value[ListIndex]->DSTD.value.explosion; + case 7: //debris + return &Destructable->Stages.value[ListIndex]->DSTD.value.debris; + case 8: //debrisCount + return &Destructable->Stages.value[ListIndex]->DSTD.value.debrisCount; + case 9: //modPath + return Destructable->Stages.value[ListIndex]->DMDL.value; + case 10: //modt_p + *FieldValues = Destructable->Stages.value[ListIndex]->DMDT.value; + return NULL; + case 11: //altTextures + if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) + return NULL; + + switch (ListX2FieldID) + { + case 1: //name + return Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; + case 2: //texture + return &Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture; + case 3: //index + return &Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index; + default: + return NULL; + } + return NULL; + default: + return NULL; + } + return NULL; + case 22: //keywords + *FieldValues = KWDA.IsLoaded() ? &KWDA.value[0] : NULL; + return NULL; + case 23: //colorRed + return &PNAM->red; + case 24: //colorGreen + return &PNAM->green; + case 25: //colorBlue + return &PNAM->blue; + case 26: //colorUnk + return &PNAM->unk1; + case 27: //loopSound + return SNAM.IsLoaded() ? &SNAM.value : NULL; + case 28: //actSound + return VNAM.IsLoaded() ? &VNAM.value : NULL; + case 29: //water + return WNAM.IsLoaded() ? &WNAM.value : NULL; + case 30: //textOverride + return RNAM.value; + case 31: //flags + return &FNAM.value; + case 32: //interactionKywd + return KNAM.IsLoaded() ? &KNAM.value : NULL; + default: + return NULL; + } + return NULL; + } + + bool ACTIRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) + { + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(*(uint32_t *)FieldValue); + break; + case 3: //versionControl1 + if (ArraySize != 4) + break; + ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; + ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; + ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; + ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; + break; + case 4: //eid + EDID.Copy((char *)FieldValue); + break; + case 5: //formVersion + formVersion = *(uint16_t *)FieldValue; + break; + case 6: //versionControl2 + if (ArraySize != 2) + break; + versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; + versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 7: //boundX1 + OBND.value.x1 = *(int16_t *)FieldValue; + break; + case 8: //boundY1 + OBND.value.y1 = *(int16_t *)FieldValue; + break; + case 9: //boundZ1 + OBND.value.z1 = *(int16_t *)FieldValue; + break; + case 10: //boundX2 + OBND.value.x2 = *(int16_t *)FieldValue; + break; + case 11: //boundY2 + OBND.value.y2 = *(int16_t *)FieldValue; + break; + case 12: //boundZ2 + OBND.value.z2 = *(int16_t *)FieldValue; + break; + case 13: //full + FULL.Copy((char *)FieldValue); + break; + case 14: //modPath + MODL.MODL.Copy((char *)FieldValue); + break; + case 15: //modt_p + MODL.MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 16: //altTextures + if (ListFieldID == 0) //altTexturesSize + { + MODL.Textures.resize(ArraySize); + return false; + } + + if (ListIndex >= MODL.Textures.MODS.size()) + break; + + switch (ListFieldID) + { + case 1: //name + delete[]MODL.Textures.MODS[ListIndex]->name; + MODL.Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MODL.Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MODL.Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MODL.Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MODL.Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 17: //destructableHealth + Destructable.Load(); + Destructable->DEST.value.health = *(int32_t *)FieldValue; + break; + case 18: //destructableCount + Destructable.Load(); + Destructable->DEST.value.count = *(uint8_t *)FieldValue; + break; + case 19: //destructableFlags + Destructable.Load(); + Destructable->DEST->flags = *(uint8_t *)FieldValue; + break; + case 20: //destructableUnused1 + if (ArraySize != 2) + break; + Destructable.Load(); + Destructable->DEST.value.unused1[0] = ((UINT8ARRAY)FieldValue)[0]; + Destructable->DEST.value.unused1[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 21: //destructableStages + Destructable.Load(); + if (ListFieldID == 0) //destructableStagesSize + { + Destructable->Stages.resize(ArraySize); + return false; + } + + if (ListIndex >= Destructable->Stages.value.size()) + break; + + switch (ListFieldID) + { + case 1: //health + Destructable->Stages.value[ListIndex]->DSTD.value.health = *(uint8_t *)FieldValue; + break; + case 2: //index + Destructable->Stages.value[ListIndex]->DSTD.value.index = *(uint8_t *)FieldValue; + break; + case 3: //stage + Destructable->Stages.value[ListIndex]->DSTD.value.stage = *(uint8_t *)FieldValue; + break; + case 4: //flags + Destructable->Stages.value[ListIndex]->DSTD.value.flags = *(uint8_t *)FieldValue; + break; + case 5: //dps + Destructable->Stages.value[ListIndex]->DSTD.value.dps = *(int32_t *)FieldValue; + break; + case 6: //explosion + Destructable->Stages.value[ListIndex]->DSTD.value.explosion = *(FORMID *)FieldValue; + return true; + case 7: //debris + Destructable->Stages.value[ListIndex]->DSTD.value.debris = *(FORMID *)FieldValue; + return true; + case 8: //debrisCount + Destructable->Stages.value[ListIndex]->DSTD.value.debrisCount = *(int32_t *)FieldValue; + break; + case 9: //modPath + Destructable->Stages.value[ListIndex]->DMDL.Copy((char *)FieldValue); + break; + case 10: //modt_p + Destructable->Stages.value[ListIndex]->DMDT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 11: //altTextures + if (ListX2FieldID == 0) //altTexturesSize + { + Destructable->Stages.value[ListIndex]->DMDS.resize(ArraySize); + return false; + } + + switch (ListX2FieldID) + { + case 1: //name + delete[] Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = new char[ArraySize]; + strncpy(Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + default: + break; + } + break; + case 22: //keywords + KWDA.resize(ArraySize); + for (uint32_t x = 0; x < ArraySize; ++x) + KWDA.value[x] = ((FORMIDARRAY)FieldValue)[x]; + return true; + case 23: //colorRed + PNAM->red = *(uint8_t *)FieldValue; + break; + case 24: //colorGreen + PNAM->green = *(uint8_t *)FieldValue; + break; + case 25: //colorBlue + PNAM->blue = *(uint8_t *)FieldValue; + break; + case 26: //colorUnk + PNAM->unk1 = *(uint8_t *)FieldValue; + break; + case 27: //loopSound + SNAM.value = *(FORMID *)FieldValue; + return true; + case 28: //actSound + VNAM.value = *(FORMID *)FieldValue; + return true; + case 29: //water + WNAM.value = *(FORMID *)FieldValue; + return true; + case 30: //textOverride + RNAM.Copy((char *)FieldValue); + break; + case 31: //flags + FNAM.value = (uint16_t *)FieldValue; + break; + case 32: //interactionKywd + KNAM.value = *(FORMID *)FieldValue; + return true; + default: + break; + } + + return false; + } + + void ACTIRecord::DeleteField(FIELD_IDENTIFIERS) + { + GENOBND defaultOBND; + FNVMODS defaultMODS; + GENDEST defaultDEST; + DESTDSTD defaultDSTD; + GENCNAM defaultCNAM; + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(0); + return; + case 3: //versionControl1 + flagsUnk = 0; + return; + case 4: //eid + EDID.Unload(); + return; + case 5: //formVersion + formVersion = 0; + return; + case 6: //versionControl2 + versionControl2[0] = 0; + versionControl2[1] = 0; + return; + case 7: //boundX1 + OBND.value.x1 = defaultOBND.x1; + return; + case 8: //boundY1 + OBND.value.y1 = defaultOBND.y1; + return; + case 9: //boundZ1 + OBND.value.z1 = defaultOBND.z1; + return; + case 10: //boundX2 + OBND.value.x2 = defaultOBND.x2; + return; + case 11: //boundY2 + OBND.value.y2 = defaultOBND.y2; + return; + case 12: //boundZ2 + OBND.value.z2 = defaultOBND.z2; + return; + case 13: //full + FULL.Unload(); + return; + case 14: //modPath + MODL.MODL.Unload(); + return; + case 15: //modt_p + MODL.MODT.Unload(); + return; + case 16: //altTextures + + if (ListFieldID == 0) //altTextures + { + MODL.Textures.Unload(); + return; + } + + if (ListIndex >= MODL.Textures.MODS.size()) + return; + + switch (ListFieldID) + { + case 1: //name + delete[]MODL.Textures.MODS[ListIndex]->name; + MODL.Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MODL.Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MODL.Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + + return; + case 17: //destructableHealth + if (Destructable.IsLoaded()) + Destructable->DEST.value.health = defaultDEST.health; + return; + case 18: //destructableCount + if (Destructable.IsLoaded()) + Destructable->DEST.value.count = defaultDEST.count; + return; + case 19: //destructableFlags + if (Destructable.IsLoaded()) + Destructable->DEST->flags = defaultDEST.flags; + return; + case 20: //destructableUnused1 + if (Destructable.IsLoaded()) + { + Destructable->DEST.value.unused1[0] = defaultDSTD.health; + } + return; + case 21: //destructableStages + if (Destructable.IsLoaded()) + { + if (ListFieldID == 0) //destructableStages + { + Destructable->Stages.Unload(); + return; + } + + if (ListIndex >= Destructable->Stages.value.size()) + return; + + switch (ListFieldID) + { + case 1: //health + Destructable->Stages.value[ListIndex]->DSTD.value.health = defaultDSTD.health; + return; + case 2: //index + Destructable->Stages.value[ListIndex]->DSTD.value.index = defaultDSTD.index; + return; + case 3: //stage + Destructable->Stages.value[ListIndex]->DSTD.value.stage = defaultDSTD.stage; + return; + case 4: //flags + Destructable->Stages.value[ListIndex]->DSTD.value.flags = defaultDSTD.flags; + return; + case 5: //dps + Destructable->Stages.value[ListIndex]->DSTD.value.dps = defaultDSTD.dps; + return; + case 6: //explosion + Destructable->Stages.value[ListIndex]->DSTD.value.explosion = defaultDSTD.explosion; + return; + case 7: //debris + Destructable->Stages.value[ListIndex]->DSTD.value.debris = defaultDSTD.debris; + return; + case 8: //debrisCount + Destructable->Stages.value[ListIndex]->DSTD.value.debrisCount = defaultDSTD.debrisCount; + return; + case 9: //modPath + Destructable->Stages.value[ListIndex]->DMDL.Unload(); + return; + case 10: //modt_p + Destructable->Stages.value[ListIndex]->DMDT.Unload(); + return; + case 11: //altTextures + if (ListX2FieldID == 0) //altTextures + { + Destructable->Stages.value[ListIndex]->DMDS.Unload(); + return; + } + + if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) + return; + + switch (ListX2FieldID) + { + case 1: //name + delete[] Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = NULL; + return; + case 2: //texture + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture = defaultMODS.texture; + return; + case 3: //index + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index = defaultMODS.index; + return; + default: + return; + } + return; + default: + return; + } + } + return; + case 22: //keywords + KWDA.Unload(); + return; + case 23: //colorRed + PNAM->red = defaultCNAM.red; + return; + case 24: //colorGreen + PNAM->green = defaultCNAM.green; + break; + case 25: //colorBlue + PNAM->blue = defaultCNAM.blue; + break; + case 26: //colorUnk + PNAM->unk1 = defaultCNAM.unk1; + return; + case 27: //loopSound + SNAM.Unload(); + return; + case 28: //actSound + VNAM.Unload(); + return; + case 29: //water + WNAM.Unload(); + return; + case 30: //textOverride + RNAM.Unload(); + return; + case 31: //flags + FNAM.Unload(); + return; + case 32: //interactionKywd + KNAM.Unload(); + return; + default: + return; + } + } } // namespace Sk diff --git a/src/Skyrim/Records/API/ADDNRecordAPI.cpp b/src/Skyrim/Records/API/ADDNRecordAPI.cpp index bd22d53..0ff898b 100644 --- a/src/Skyrim/Records/API/ADDNRecordAPI.cpp +++ b/src/Skyrim/Records/API/ADDNRecordAPI.cpp @@ -1,297 +1,297 @@ /* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is CBash code. - * - * The Initial Developer of the Original Code is - * Waruddar. - * Portions created by the Initial Developer are Copyright (C) 2010 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -#include "..\ADDNRecord.h" +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../ADDNRecord.h" namespace Sk { -uint32_t ADDNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) - { - switch(FieldID) - { - case 0: //recType - return GetType(); - case 1: //flags1 - return CB_UINT32_FLAG_FIELD; - case 2: //fid - return CB_FORMID_FIELD; - case 3: //versionControl1 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 4; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 4: //eid - return CB_ISTRING_FIELD; - case 5: //formVersion - return CB_UINT16_FIELD; - case 6: //versionControl2 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 7: //boundX1 - return CB_SINT16_FIELD; - case 8: //boundY1 - return CB_SINT16_FIELD; - case 9: //boundZ1 - return CB_SINT16_FIELD; - case 10: //boundX2 - return CB_SINT16_FIELD; - case 11: //boundY2 - return CB_SINT16_FIELD; - case 12: //boundZ2 - return CB_SINT16_FIELD; - case 13: //modPath - return CB_ISTRING_FIELD; - case 14: //modt_p - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 15: //nodeIndex - return CB_SINT16_FIELD; - case 16: //sound - return CB_FORMID_FIELD; - case 17: //masterParticleSystemCap - return CB_SINT16_FIELD; - case 18: //flags - return CB_UINT16_FLAG_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - } + uint32_t ADDNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) + { + switch (FieldID) + { + case 0: //recType + return GetType(); + case 1: //flags1 + return UINT32_FLAG_FIELD; + case 2: //fid + return FORMID_FIELD; + case 3: //versionControl1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 4; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 4: //eid + return ISTRING_FIELD; + case 5: //formVersion + return UINT16_FIELD; + case 6: //versionControl2 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 7: //boundX1 + return SINT16_FIELD; + case 8: //boundY1 + return SINT16_FIELD; + case 9: //boundZ1 + return SINT16_FIELD; + case 10: //boundX2 + return SINT16_FIELD; + case 11: //boundY2 + return SINT16_FIELD; + case 12: //boundZ2 + return SINT16_FIELD; + case 13: //modPath + return ISTRING_FIELD; + case 14: //modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MODL.MODT.IsLoaded() ? MODL.MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 15: //nodeIndex + return SINT16_FIELD; + case 16: //sound + return FORMID_FIELD; + case 17: //masterParticleSystemCap + return SINT16_FIELD; + case 18: //flags + return UINT16_FLAG_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } -void * ADDNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) - { - switch(FieldID) - { - case 1: //flags1 - return &flags; - case 2: //fid - return &formID; - case 3: //versionControl1 - *FieldValues = &flagsUnk; - return NULL; - case 4: //eid - return EDID.value; - case 5: //formVersion - return &formVersion; - case 6: //versionControl2 - *FieldValues = &versionControl2[0]; - return NULL; - case 7: //boundX1 - return &OBND.value.x1; - case 8: //boundY1 - return &OBND.value.y1; - case 9: //boundZ1 - return &OBND.value.z1; - case 10: //boundX2 - return &OBND.value.x2; - case 11: //boundY2 - return &OBND.value.y2; - case 12: //boundZ2 - return &OBND.value.z2; - case 13: //modPath - return MODL.IsLoaded() ? MODL->MODL.value : NULL; - case 14: //modt_p - return MODL.IsLoaded() ? MODL->MODT.value : NULL; - case 15: //nodeIndex - return &DATA.value; - case 16: //sound - return SNAM.IsLoaded() ? &SNAM.value : NULL; - case 17: //masterParticleSystemCap - return &DNAM->masterParticleSystemCap; - case 18: //flags - return &DNAM->flags; - default: - return NULL; - } - return NULL; -} + void * ADDNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) + { + switch (FieldID) + { + case 1: //flags1 + return &flags; + case 2: //fid + return &formID; + case 3: //versionControl1 + *FieldValues = &flagsUnk; + return NULL; + case 4: //eid + return EDID.value; + case 5: //formVersion + return &formVersion; + case 6: //versionControl2 + *FieldValues = &versionControl2[0]; + return NULL; + case 7: //boundX1 + return &OBND.value.x1; + case 8: //boundY1 + return &OBND.value.y1; + case 9: //boundZ1 + return &OBND.value.z1; + case 10: //boundX2 + return &OBND.value.x2; + case 11: //boundY2 + return &OBND.value.y2; + case 12: //boundZ2 + return &OBND.value.z2; + case 13: //modPath + return MODL.MODL.IsLoaded() ? MODL.MODL.value : NULL; + case 14: //modt_p + return MODL.MODT.IsLoaded() ? MODL.MODT.value : NULL; + case 15: //nodeIndex + return &DATA.value; + case 16: //sound + return SNAM.IsLoaded() ? &SNAM.value : NULL; + case 17: //masterParticleSystemCap + return &DNAM->masterParticleSystemCap; + case 18: //flags + return &DNAM->flags; + default: + return NULL; + } + return NULL; + } -bool ADDNRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) - { - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(*(uint32_t *)FieldValue); - break; - case 3: //versionControl1 - if(ArraySize != 4) - break; - ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; - ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; - ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; - ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; - break; - case 4: //eid - EDID.Copy((char *)FieldValue); - break; - case 5: //formVersion - formVersion = *(uint16_t *)FieldValue; - break; - case 6: //versionControl2 - if(ArraySize != 2) - break; - versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; - versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 7: //boundX1 - OBND.value.x1 = *(int16_t *)FieldValue; - break; - case 8: //boundY1 - OBND.value.y1 = *(int16_t *)FieldValue; - break; - case 9: //boundZ1 - OBND.value.z1 = *(int16_t *)FieldValue; - break; - case 10: //boundX2 - OBND.value.x2 = *(int16_t *)FieldValue; - break; - case 11: //boundY2 - OBND.value.y2 = *(int16_t *)FieldValue; - break; - case 12: //boundZ2 - OBND.value.z2 = *(int16_t *)FieldValue; - break; - case 13: //modPath - MODL.Load(); - MODL->MODL.Copy((char *)FieldValue); - break; - case 14: //modt_p - MODL.Load(); - MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 15: //nodeIndex - DATA.value = *(int16_t *)FieldValue; - case 16: //sound - SNAM.value = *(FORMID *)FieldValue; - return true; - case 17: //masterParticleSystemCap - DNAM->masterParticleSystemCap = *(int16_t *)FieldValue; - case 18: //flags - DNAM->flags = *(uint16_t *)FieldValue; - default: - break; - } - return false; -} + bool ADDNRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) + { + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(*(uint32_t *)FieldValue); + break; + case 3: //versionControl1 + if (ArraySize != 4) + break; + ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; + ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; + ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; + ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; + break; + case 4: //eid + EDID.Copy((char *)FieldValue); + break; + case 5: //formVersion + formVersion = *(uint16_t *)FieldValue; + break; + case 6: //versionControl2 + if (ArraySize != 2) + break; + versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; + versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 7: //boundX1 + OBND.value.x1 = *(int16_t *)FieldValue; + break; + case 8: //boundY1 + OBND.value.y1 = *(int16_t *)FieldValue; + break; + case 9: //boundZ1 + OBND.value.z1 = *(int16_t *)FieldValue; + break; + case 10: //boundX2 + OBND.value.x2 = *(int16_t *)FieldValue; + break; + case 11: //boundY2 + OBND.value.y2 = *(int16_t *)FieldValue; + break; + case 12: //boundZ2 + OBND.value.z2 = *(int16_t *)FieldValue; + break; + case 13: //modPath + MODL.MODL.Load(); + MODL.MODL.Copy((char *)FieldValue); + break; + case 14: //modt_p + MODL.MODT.Load(); + MODL.MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 15: //nodeIndex + DATA.value = *(int16_t *)FieldValue; + case 16: //sound + SNAM.value = *(FORMID *)FieldValue; + return true; + case 17: //masterParticleSystemCap + DNAM->masterParticleSystemCap = *(int16_t *)FieldValue; + case 18: //flags + DNAM->flags = *(uint16_t *)FieldValue; + default: + break; + } + return false; + } -void ADDNRecord::DeleteField(FIELD_IDENTIFIERS) - { - GENOBND defaultOBND; - ADDNDNAM defaultDNAM; + void ADDNRecord::DeleteField(FIELD_IDENTIFIERS) + { + GENOBND defaultOBND; + ADDNDNAM defaultDNAM; - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(0); - return; - case 3: //versionControl1 - flagsUnk = 0; - return; - case 4: //eid - EDID.Unload(); - return; - case 5: //formVersion - formVersion = 0; - return; - case 6: //versionControl2 - versionControl2[0] = 0; - versionControl2[1] = 0; - return; - case 7: //boundX1 - OBND.value.x1 = defaultOBND.x1; - return; - case 8: //boundY1 - OBND.value.y1 = defaultOBND.y1; - return; - case 9: //boundZ1 - OBND.value.z1 = defaultOBND.z1; - return; - case 10: //boundX2 - OBND.value.x2 = defaultOBND.x2; - return; - case 11: //boundY2 - OBND.value.y2 = defaultOBND.y2; - return; - case 12: //boundZ2 - OBND.value.z2 = defaultOBND.z2; - return; - case 13: //modPath - if (MODL.IsLoaded()) - MODL->MODL.Unload(); - return; - case 14: //modt_p - if (MODL.IsLoaded()) - MODL->MODT.Unload(); - return; - case 15: //nodeIndex - DATA.Unload(); - return; - case 16: //sound - SNAM.Unload(); - return; - case 17: //masterParticleSystemCap - DNAM->masterParticleSystemCap = defaultDNAM.masterParticleSystemCap; - return; - case 18: //flags - DNAM->flags = defaultDNAM.flags; - return; - default: - return; - } -} + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(0); + return; + case 3: //versionControl1 + flagsUnk = 0; + return; + case 4: //eid + EDID.Unload(); + return; + case 5: //formVersion + formVersion = 0; + return; + case 6: //versionControl2 + versionControl2[0] = 0; + versionControl2[1] = 0; + return; + case 7: //boundX1 + OBND.value.x1 = defaultOBND.x1; + return; + case 8: //boundY1 + OBND.value.y1 = defaultOBND.y1; + return; + case 9: //boundZ1 + OBND.value.z1 = defaultOBND.z1; + return; + case 10: //boundX2 + OBND.value.x2 = defaultOBND.x2; + return; + case 11: //boundY2 + OBND.value.y2 = defaultOBND.y2; + return; + case 12: //boundZ2 + OBND.value.z2 = defaultOBND.z2; + return; + case 13: //modPath + if (MODL.MODL.IsLoaded()) + MODL.MODL.Unload(); + return; + case 14: //modt_p + if (MODL.MODT.IsLoaded()) + MODL.MODT.Unload(); + return; + case 15: //nodeIndex + DATA.Unload(); + return; + case 16: //sound + SNAM.Unload(); + return; + case 17: //masterParticleSystemCap + DNAM->masterParticleSystemCap = defaultDNAM.masterParticleSystemCap; + return; + case 18: //flags + DNAM->flags = defaultDNAM.flags; + return; + default: + return; + } + } } // namespace Sk diff --git a/src/Skyrim/Records/API/ALCHRecordAPI.cpp b/src/Skyrim/Records/API/ALCHRecordAPI.cpp index ac22f4f..5f8edbb 100644 --- a/src/Skyrim/Records/API/ALCHRecordAPI.cpp +++ b/src/Skyrim/Records/API/ALCHRecordAPI.cpp @@ -1,1274 +1,1274 @@ /* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is CBash code. - * - * The Initial Developer of the Original Code is - * Waruddar. - * Portions created by the Initial Developer are Copyright (C) 2010 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -#include "..\ALCHRecord.h" +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../ALCHRecord.h" namespace Sk { -uint32_t ALCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) -{ - switch (FieldID) - { - case 0: //recType - return GetType(); - case 1: //flags1 - return CB_UINT32_FLAG_FIELD; - case 2: //fid - return CB_FORMID_FIELD; - case 3: //versionControl1 - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 4; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 4: //eid - return CB_ISTRING_FIELD; - case 5: //formVersion - return CB_UINT16_FIELD; - case 6: //versionControl2 - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 7: //boundX1 - return CB_SINT16_FIELD; - case 8: //boundY1 - return CB_SINT16_FIELD; - case 9: //boundZ1 - return CB_SINT16_FIELD; - case 10: //boundX2 - return CB_SINT16_FIELD; - case 11: //boundY2 - return CB_SINT16_FIELD; - case 12: //boundZ2 - return CB_SINT16_FIELD; - case 13: //full - return CB_STRING_FIELD; - case 14: //keywords - switch (WhichAttribute) - { - case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; - case 1: //fieldSize - return KWDA.value.size(); - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 15: //description - return CB_STRING_FIELD; - case 16: //modPath - return CB_ISTRING_FIELD; - case 17: //modt_p - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 18: //altTextures - if (!MODL.IsLoaded()) - return CB_UNKNOWN_FIELD; + uint32_t ALCHRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) + { + switch (FieldID) + { + case 0: //recType + return GetType(); + case 1: //flags1 + return UINT32_FLAG_FIELD; + case 2: //fid + return FORMID_FIELD; + case 3: //versionControl1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 4; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 4: //eid + return ISTRING_FIELD; + case 5: //formVersion + return UINT16_FIELD; + case 6: //versionControl2 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 7: //boundX1 + return SINT16_FIELD; + case 8: //boundY1 + return SINT16_FIELD; + case 9: //boundZ1 + return SINT16_FIELD; + case 10: //boundX2 + return SINT16_FIELD; + case 11: //boundY2 + return SINT16_FIELD; + case 12: //boundZ2 + return SINT16_FIELD; + case 13: //full + return STRING_FIELD; + case 14: //keywords + switch (WhichAttribute) + { + case 0: //fieldType + return FORMID_ARRAY_FIELD; + case 1: //fieldSize + return (uint32_t)KWDA.value.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 15: //description + return STRING_FIELD; + case 16: //modPath + return ISTRING_FIELD; + case 17: //modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MODL.MODT.IsLoaded() ? MODL.MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 18: //altTextures + if (!MODL.Textures.IsLoaded()) + return UNKNOWN_FIELD; - if (ListFieldID == 0) //altTextures - { - switch (WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)MODL->Textures.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } + if (ListFieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)MODL.Textures.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } - if (ListIndex >= MODL->Textures.MODS.size()) - return CB_UNKNOWN_FIELD; + if (ListIndex >= MODL.Textures.MODS.size()) + return UNKNOWN_FIELD; - switch (ListFieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //textures - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 19: //destructableHealth - return CB_SINT32_FIELD; - case 20: //destructableCount - return CB_UINT8_FIELD; - case 21: //destructableFlags - return CB_UINT8_FLAG_FIELD; - case 22: //destructableUnused1 - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return Destructable.IsLoaded() ? sizeof(Destructable->DEST->unused1) : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 23: //destructableStages - if (!Destructable.IsLoaded()) - return CB_UNKNOWN_FIELD; + switch (ListFieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //textures + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 19: //destructableHealth + return SINT32_FIELD; + case 20: //destructableCount + return UINT8_FIELD; + case 21: //destructableFlags + return UINT8_FLAG_FIELD; + case 22: //destructableUnused1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return Destructable.IsLoaded() ? sizeof(Destructable->DEST->unused1) : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 23: //destructableStages + if (!Destructable.IsLoaded()) + return UNKNOWN_FIELD; - if (ListFieldID == 0) //destructableStages - { - switch (WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)Destructable->Stages.value.size(); - default: - return CB_UNKNOWN_FIELD; - } - } + if (ListFieldID == 0) //destructableStages + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)Destructable->Stages.value.size(); + default: + return UNKNOWN_FIELD; + } + } - if (ListIndex >= Destructable->Stages.value.size()) - return CB_UNKNOWN_FIELD; + if (ListIndex >= Destructable->Stages.value.size()) + return UNKNOWN_FIELD; - switch (ListFieldID) - { - case 1: //health - return CB_UINT8_FIELD; - case 2: //index - return CB_UINT8_FIELD; - case 3: //stage - return CB_UINT8_FIELD; - case 4: //flags - return CB_UINT8_FLAG_FIELD; - case 5: //dps - return CB_SINT32_FIELD; - case 6: //explosion - return CB_FORMID_FIELD; - case 7: //debris - return CB_FORMID_FIELD; - case 8: //debrisCount - return CB_SINT32_FIELD; - case 9: //modPath - return CB_ISTRING_FIELD; - case 10: //modt_p - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); - default: - return CB_UNKNOWN_FIELD; - } - case 11: //altTextures - if (!Destructable->Stages.value[ListIndex]->DMDS.IsLoaded()) - return CB_UNKNOWN_FIELD; + switch (ListFieldID) + { + case 1: //health + return UINT8_FIELD; + case 2: //index + return UINT8_FIELD; + case 3: //stage + return UINT8_FIELD; + case 4: //flags + return UINT8_FLAG_FIELD; + case 5: //dps + return SINT32_FIELD; + case 6: //explosion + return FORMID_FIELD; + case 7: //debris + return FORMID_FIELD; + case 8: //debrisCount + return SINT32_FIELD; + case 9: //modPath + return ISTRING_FIELD; + case 10: //modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); + default: + return UNKNOWN_FIELD; + } + case 11: //altTextures + if (!Destructable->Stages.value[ListIndex]->DMDS.IsLoaded()) + return UNKNOWN_FIELD; - if (ListX2FieldID == 0) //altTextures - { - switch (WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)Destructable->Stages.value[ListIndex]->DMDS.MODS.size(); - default: - return CB_UNKNOWN_FIELD; - } - } + if (ListX2FieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)Destructable->Stages.value[ListIndex]->DMDS.MODS.size(); + default: + return UNKNOWN_FIELD; + } + } - if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) - return CB_UNKNOWN_FIELD; + if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) + return UNKNOWN_FIELD; - switch (ListX2FieldID) - { - case 1: //name - return CB_STRING_FIELD; - case 2: //texture - return CB_FORMID_FIELD; - case 3: //index - return CB_SINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } + switch (ListX2FieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } - return CB_UNKNOWN_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 24: //iconPath - return CB_ISTRING_FIELD; - case 25: //smallIconPath - return CB_ISTRING_FIELD; - case 26: //pickupSound - return CB_FORMID_FIELD; - case 27: //dropSound - return CB_FORMID_FIELD; - case 28: //equipmentType - return CB_FORMID_FIELD; - case 29: //weight - return CB_FLOAT32_FIELD; - case 30: //value - return CB_SINT32_FIELD; - case 31: //flags - return CB_UINT32_FLAG_FIELD; - case 32: //withdrawalEffect - return CB_FORMID_FIELD; - case 33: //addictionChance - return CB_FLOAT32_FIELD; - case 34: //consumeSound - return CB_FORMID_FIELD; - case 35: //effects - if (ListFieldID == 0) //effects - { - switch (WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)Effects.value.size(); - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - } + return UNKNOWN_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 24: //iconPath + return ISTRING_FIELD; + case 25: //smallIconPath + return ISTRING_FIELD; + case 26: //pickupSound + return FORMID_FIELD; + case 27: //dropSound + return FORMID_FIELD; + case 28: //equipmentType + return FORMID_FIELD; + case 29: //weight + return FLOAT32_FIELD; + case 30: //value + return SINT32_FIELD; + case 31: //flags + return UINT32_FLAG_FIELD; + case 32: //withdrawalEffect + return FORMID_FIELD; + case 33: //addictionChance + return FLOAT32_FIELD; + case 34: //consumeSound + return FORMID_FIELD; + case 35: //effects + if (ListFieldID == 0) //effects + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)Effects.value.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } - if (ListIndex >= Effects.value.size()) - return CB_UNKNOWN_FIELD; + if (ListIndex >= Effects.value.size()) + return UNKNOWN_FIELD; - switch (ListFieldID) - { - case 1: //effect - return CB_FORMID_FIELD; - case 2: //magnitude - return CB_FLOAT32_FIELD; - case 3: //area - return CB_UINT32_FIELD; - case 4: //duration - return CB_UINT32_FIELD; - case 5: //conditions - if (ListX2FieldID == 0) //conditions - { - switch (WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)Effects.value[ListIndex]->CTDA.value.size(); - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - } + switch (ListFieldID) + { + case 1: //effect + return FORMID_FIELD; + case 2: //magnitude + return FLOAT32_FIELD; + case 3: //area + return UINT32_FIELD; + case 4: //duration + return UINT32_FIELD; + case 5: //conditions + if (ListX2FieldID == 0) //conditions + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)Effects.value[ListIndex]->CTDA.value.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } - if (ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) - return CB_UNKNOWN_FIELD; + if (ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) + return UNKNOWN_FIELD; - switch (ListX2FieldID) - { - case 1: //operType - return CB_UINT8_FLAG_TYPE_FIELD; - case 2: //unused1 - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 3; - default: - return CB_UNKNOWN_FIELD; - } - case 3: //compValue - switch (WhichAttribute) - { - case 0: //fieldType - return CB_FORMID_OR_FLOAT32_FIELD; - case 2: //WhichType - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->IsUseGlobal() ? CB_FORMID_FIELD : CB_FLOAT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 4: //ifunc - return CB_UINT16_TYPE_FIELD; - case 5: //unused2 - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 6: //param1 - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; - case 2: //WhichType - { - Function_Arguments_Iterator curCTDAFunction = SKFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->ifunc); - if (curCTDAFunction != SKFunction_Arguments.end()) - { - const FunctionArguments &CTDAFunction = curCTDAFunction->second; - switch (CTDAFunction.first) - { - case eFORMID: - return CB_FORMID_FIELD; - case eUINT32: - case eEVENTDATA: - return CB_UINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - } - } - return CB_UNKNOWN_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 7: //param2 - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; - case 2: //WhichType - { - Function_Arguments_Iterator curCTDAFunction = SKFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->ifunc); - if (curCTDAFunction != SKFunction_Arguments.end()) - { - const FunctionArguments &CTDAFunction = curCTDAFunction->second; - switch (CTDAFunction.second) - { - case eFORMID: - return CB_FORMID_FIELD; - case eUINT32: - return CB_UINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - } - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 8: //runOnType - return CB_UINT32_TYPE_FIELD; - case 9: //reference - switch (WhichAttribute) - { - case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; - case 2: //WhichType - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->IsResultOnReference() ? CB_FORMID_FIELD : CB_UINT32_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 10: //param3 - return CB_SINT32_FIELD; - case 11: //cis1 - return CB_STRING_FIELD; - case 12: //cis2 - return CB_STRING_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; -} + switch (ListX2FieldID) + { + case 1: //operType + return UINT8_FLAG_TYPE_FIELD; + case 2: //unused1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 3; + default: + return UNKNOWN_FIELD; + } + case 3: //compValue + switch (WhichAttribute) + { + case 0: //fieldType + return FORMID_OR_FLOAT32_FIELD; + case 2: //WhichType + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->IsUseGlobal() ? FORMID_FIELD : FLOAT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 4: //ifunc + return UINT16_TYPE_FIELD; + case 5: //unused2 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 6: //param1 + switch (WhichAttribute) + { + case 0: //fieldType + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + case 2: //WhichType + { + Function_Arguments_Iterator curCTDAFunction = SKFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->ifunc); + if (curCTDAFunction != SKFunction_Arguments.end()) + { + const FunctionArguments &CTDAFunction = curCTDAFunction->second; + switch (CTDAFunction.first) + { + case eFORMID: + return FORMID_FIELD; + case eUINT32: + case eEVENTDATA: + return UINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + } + } + return UNKNOWN_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 7: //param2 + switch (WhichAttribute) + { + case 0: //fieldType + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + case 2: //WhichType + { + Function_Arguments_Iterator curCTDAFunction = SKFunction_Arguments.find(Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->ifunc); + if (curCTDAFunction != SKFunction_Arguments.end()) + { + const FunctionArguments &CTDAFunction = curCTDAFunction->second; + switch (CTDAFunction.second) + { + case eFORMID: + return FORMID_FIELD; + case eUINT32: + return UINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 8: //runOnType + return UINT32_TYPE_FIELD; + case 9: //reference + switch (WhichAttribute) + { + case 0: //fieldType + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + case 2: //WhichType + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->IsResultOnReference() ? FORMID_FIELD : UINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 10: //param3 + return SINT32_FIELD; + case 11: //cis1 + return STRING_FIELD; + case 12: //cis2 + return STRING_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } -void * ALCHRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) -{ - switch(FieldID) - { - case 1: //flags1 - return &flags; - case 2: //fid - return &formID; - case 3: //versionControl1 - *FieldValues = &flagsUnk; - return NULL; - case 4: //eid - return EDID.value; - case 5: //formVersion - return &formVersion; - case 6: //versionControl2 - *FieldValues = &versionControl2[0]; - return NULL; - case 7: //boundX1 - return &OBND.value.x1; - case 8: //boundY1 - return &OBND.value.y1; - case 9: //boundZ1 - return &OBND.value.z1; - case 10: //boundX2 - return &OBND.value.x2; - case 11: //boundY2 - return &OBND.value.y2; - case 12: //boundZ2 - return &OBND.value.z2; - case 13: //full - return FULL.value; - case 14: //keywords - *FieldValues = KWDA.IsLoaded() ? &KWDA.value[0] : NULL; - return NULL; - case 15: //description - return DESC.value; - case 16: //modPath - return MODL.IsLoaded() ? MODL->MODL.value : NULL; - case 17: //modt_p - return MODL.IsLoaded() ? MODL->MODT.value : NULL; - case 18: //altTextures - if (!MODL.IsLoaded()) - return NULL; + void * ALCHRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) + { + switch (FieldID) + { + case 1: //flags1 + return &flags; + case 2: //fid + return &formID; + case 3: //versionControl1 + *FieldValues = &flagsUnk; + return NULL; + case 4: //eid + return EDID.value; + case 5: //formVersion + return &formVersion; + case 6: //versionControl2 + *FieldValues = &versionControl2[0]; + return NULL; + case 7: //boundX1 + return &OBND.value.x1; + case 8: //boundY1 + return &OBND.value.y1; + case 9: //boundZ1 + return &OBND.value.z1; + case 10: //boundX2 + return &OBND.value.x2; + case 11: //boundY2 + return &OBND.value.y2; + case 12: //boundZ2 + return &OBND.value.z2; + case 13: //full + return FULL.value; + case 14: //keywords + *FieldValues = KWDA.IsLoaded() ? &KWDA.value[0] : NULL; + return NULL; + case 15: //description + return DESC.value; + case 16: //modPath + return MODL.MODL.IsLoaded() ? MODL.MODL.value : NULL; + case 17: //modt_p + return MODL.MODT.IsLoaded() ? MODL.MODT.value : NULL; + case 18: //altTextures + if (!MODL.Textures.IsLoaded()) + return NULL; - if (ListIndex >= MODL->Textures.MODS.size()) - return NULL; + if (ListIndex >= MODL.Textures.MODS.size()) + return NULL; - switch (ListFieldID) - { - case 1: //name - return MODL->Textures.MODS[ListIndex]->name; - case 2: //texture - return &MODL->Textures.MODS[ListIndex]->texture; - case 3: //index - return &MODL->Textures.MODS[ListIndex]->index; - default: - return NULL; - } - return NULL; - case 19: //destructableHealth - return Destructable.IsLoaded() ? &Destructable->DEST.value.health : NULL; - case 20: //destructableCount - return Destructable.IsLoaded() ? &Destructable->DEST.value.count : NULL; - case 21: //destructableFlags - return Destructable.IsLoaded() ? &Destructable->DEST.value.flags : NULL; - case 22: //destructableUnused1 - *FieldValues = Destructable.IsLoaded() ? &Destructable->DEST.value.unused1[0] : NULL; - return NULL; - case 23: //destructableStages - if (!Destructable.IsLoaded()) - return NULL; + switch (ListFieldID) + { + case 1: //name + return MODL.Textures.MODS[ListIndex]->name; + case 2: //texture + return &MODL.Textures.MODS[ListIndex]->texture; + case 3: //index + return &MODL.Textures.MODS[ListIndex]->index; + default: + return NULL; + } + return NULL; + case 19: //destructableHealth + return Destructable.IsLoaded() ? &Destructable->DEST.value.health : NULL; + case 20: //destructableCount + return Destructable.IsLoaded() ? &Destructable->DEST.value.count : NULL; + case 21: //destructableFlags + return Destructable.IsLoaded() ? &Destructable->DEST.value.flags : NULL; + case 22: //destructableUnused1 + *FieldValues = Destructable.IsLoaded() ? &Destructable->DEST.value.unused1[0] : NULL; + return NULL; + case 23: //destructableStages + if (!Destructable.IsLoaded()) + return NULL; - if (ListIndex >= Destructable->Stages.value.size()) - return NULL; + if (ListIndex >= Destructable->Stages.value.size()) + return NULL; - switch (ListFieldID) - { - case 1: //health - return &Destructable->Stages.value[ListIndex]->DSTD.value.health; - case 2: //index - return &Destructable->Stages.value[ListIndex]->DSTD.value.index; - case 3: //stage - return &Destructable->Stages.value[ListIndex]->DSTD.value.stage; - case 4: //flags - return &Destructable->Stages.value[ListIndex]->DSTD.value.flags; - case 5: //dps - return &Destructable->Stages.value[ListIndex]->DSTD.value.dps; - case 6: //explosion - return &Destructable->Stages.value[ListIndex]->DSTD.value.explosion; - case 7: //debris - return &Destructable->Stages.value[ListIndex]->DSTD.value.debris; - case 8: //debrisCount - return &Destructable->Stages.value[ListIndex]->DSTD.value.debrisCount; - case 9: //modPath - return Destructable->Stages.value[ListIndex]->DMDL.value; - case 10: //modt_p - *FieldValues = Destructable->Stages.value[ListIndex]->DMDT.value; - return NULL; - case 11: //altTextures - if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) - return NULL; + switch (ListFieldID) + { + case 1: //health + return &Destructable->Stages.value[ListIndex]->DSTD.value.health; + case 2: //index + return &Destructable->Stages.value[ListIndex]->DSTD.value.index; + case 3: //stage + return &Destructable->Stages.value[ListIndex]->DSTD.value.stage; + case 4: //flags + return &Destructable->Stages.value[ListIndex]->DSTD.value.flags; + case 5: //dps + return &Destructable->Stages.value[ListIndex]->DSTD.value.dps; + case 6: //explosion + return &Destructable->Stages.value[ListIndex]->DSTD.value.explosion; + case 7: //debris + return &Destructable->Stages.value[ListIndex]->DSTD.value.debris; + case 8: //debrisCount + return &Destructable->Stages.value[ListIndex]->DSTD.value.debrisCount; + case 9: //modPath + return Destructable->Stages.value[ListIndex]->DMDL.value; + case 10: //modt_p + *FieldValues = Destructable->Stages.value[ListIndex]->DMDT.value; + return NULL; + case 11: //altTextures + if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) + return NULL; - switch (ListX2FieldID) - { - case 1: //name - return Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; - case 2: //texture - return &Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture; - case 3: //index - return &Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index; - default: - return NULL; - } - return NULL; - default: - return NULL; - } - return NULL; - case 24: //iconPath - return ICON.value; - case 25: //smallIconPath - return MICO.value; - case 26: //pickupSound - return YNAM.IsLoaded() ? &YNAM.value : NULL; - case 27: //dropSound - return ZNAM.IsLoaded() ? &ZNAM.value : NULL; - case 28: //equipmentType - return ETYP.IsLoaded() ? &ETYP.value : NULL; - case 29: //weigth - return &DATA.value; - case 30: //value - return &ENIT->value; - case 31: //flags - return &ENIT->flags; - case 32: //withdrawalEffect - return &ENIT->withdrawalEffect; - case 33: //addictionChance - return &ENIT->addictionChance; - case 34: //consumeSound - return &ENIT->consumeSound; - case 35: //effects - if (ListIndex >= Effects.value.size()) - return NULL; + switch (ListX2FieldID) + { + case 1: //name + return Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; + case 2: //texture + return &Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture; + case 3: //index + return &Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index; + default: + return NULL; + } + return NULL; + default: + return NULL; + } + return NULL; + case 24: //iconPath + return ICON.value; + case 25: //smallIconPath + return MICO.value; + case 26: //pickupSound + return YNAM.IsLoaded() ? &YNAM.value : NULL; + case 27: //dropSound + return ZNAM.IsLoaded() ? &ZNAM.value : NULL; + case 28: //equipmentType + return ETYP.IsLoaded() ? &ETYP.value : NULL; + case 29: //weigth + return &DATA.value; + case 30: //value + return &ENIT->value; + case 31: //flags + return &ENIT->flags; + case 32: //withdrawalEffect + return &ENIT->withdrawalEffect; + case 33: //addictionChance + return &ENIT->addictionChance; + case 34: //consumeSound + return &ENIT->consumeSound; + case 35: //effects + if (ListIndex >= Effects.value.size()) + return NULL; - switch (ListFieldID) - { - case 1: //effect - return &Effects.value[ListIndex]->EFID.value; - case 2: //magnitude - return &Effects.value[ListIndex]->EFIT->magnitude; - case 3: //area - return &Effects.value[ListIndex]->EFIT->area; - case 4: //duration - return &Effects.value[ListIndex]->EFIT->duration; - case 5: //conditions - if (ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) - return NULL; + switch (ListFieldID) + { + case 1: //effect + return &Effects.value[ListIndex]->EFID.value; + case 2: //magnitude + return &Effects.value[ListIndex]->EFIT->magnitude; + case 3: //area + return &Effects.value[ListIndex]->EFIT->area; + case 4: //duration + return &Effects.value[ListIndex]->EFIT->duration; + case 5: //conditions + if (ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) + return NULL; - switch (ListX2FieldID) - { - case 1: //operType - return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->operType; - case 2: //unused1 - *FieldValues = &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[0]; - return NULL; - case 3: //compValue - return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->compValue; - case 4: //ifunc - return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->ifunc; - case 5: //unused2 - *FieldValues = &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused2[0]; - return NULL; - case 6: //param1 - return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param1; - case 7: //param2 - return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param2; - case 8: //runOnType - return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->runOnType; - case 9: // reference - return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->reference; - case 10: //param3 - return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param3; - case 11: //cis2 - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS1.value; - case 12: //cis3 - return Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS2.value; - default: - return NULL; - } - return NULL; - default: - return NULL; - } - return NULL; - default: - return NULL; - } - return NULL; -} + switch (ListX2FieldID) + { + case 1: //operType + return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->operType; + case 2: //unused1 + *FieldValues = &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[0]; + return NULL; + case 3: //compValue + return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->compValue; + case 4: //ifunc + return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->ifunc; + case 5: //unused2 + *FieldValues = &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused2[0]; + return NULL; + case 6: //param1 + return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param1; + case 7: //param2 + return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param2; + case 8: //runOnType + return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->runOnType; + case 9: // reference + return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->reference; + case 10: //param3 + return &Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param3; + case 11: //cis2 + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS1.value; + case 12: //cis3 + return Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS2.value; + default: + return NULL; + } + return NULL; + default: + return NULL; + } + return NULL; + default: + return NULL; + } + return NULL; + } -bool ALCHRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) - { - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(*(uint32_t *)FieldValue); - break; - case 3: //versionControl1 - if(ArraySize != 4) - break; - ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; - ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; - ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; - ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; - break; - case 4: //eid - EDID.Copy((char *)FieldValue); - break; - case 5: //formVersion - formVersion = *(uint16_t *)FieldValue; - break; - case 6: //versionControl2 - if(ArraySize != 2) - break; - versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; - versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 7: //boundX1 - OBND->x1 = *(int16_t *)FieldValue; - break; - case 8: //boundY1 - OBND->y1 = *(int16_t *)FieldValue; - break; - case 9: //boundZ1 - OBND->z1 = *(int16_t *)FieldValue; - break; - case 10: //boundX2 - OBND->x2 = *(int16_t *)FieldValue; - break; - case 11: //boundY2 - OBND->y2 = *(int16_t *)FieldValue; - break; - case 12: //boundZ2 - OBND->z2 = *(int16_t *)FieldValue; - break; - case 13: //full - FULL.Copy((char *)FieldValue); - break; - case 14: //keywords - KWDA.resize(ArraySize); - for (uint32_t i = 0; i < ArraySize; ++i) - KWDA.value[i] = ((FORMIDARRAY)FieldValue)[i]; - return true; - case 15: //description - DESC.Copy((char *)FieldValue); - break; - case 16: //modPath - MODL.Load(); - MODL->MODL.Copy((char *)FieldValue); - break; - case 17: //modt_p - MODL.Load(); - MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 18: //altTextures - MODL.Load(); - if (ListFieldID == 0) // altTextures - { - MODL->Textures.resize(ArraySize); - return false; - } + bool ALCHRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) + { + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(*(uint32_t *)FieldValue); + break; + case 3: //versionControl1 + if (ArraySize != 4) + break; + ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; + ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; + ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; + ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; + break; + case 4: //eid + EDID.Copy((char *)FieldValue); + break; + case 5: //formVersion + formVersion = *(uint16_t *)FieldValue; + break; + case 6: //versionControl2 + if (ArraySize != 2) + break; + versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; + versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 7: //boundX1 + OBND->x1 = *(int16_t *)FieldValue; + break; + case 8: //boundY1 + OBND->y1 = *(int16_t *)FieldValue; + break; + case 9: //boundZ1 + OBND->z1 = *(int16_t *)FieldValue; + break; + case 10: //boundX2 + OBND->x2 = *(int16_t *)FieldValue; + break; + case 11: //boundY2 + OBND->y2 = *(int16_t *)FieldValue; + break; + case 12: //boundZ2 + OBND->z2 = *(int16_t *)FieldValue; + break; + case 13: //full + FULL.Copy((char *)FieldValue); + break; + case 14: //keywords + KWDA.resize(ArraySize); + for (uint32_t i = 0; i < ArraySize; ++i) + KWDA.value[i] = ((FORMIDARRAY)FieldValue)[i]; + return true; + case 15: //description + DESC.Copy((char *)FieldValue); + break; + case 16: //modPath + MODL.MODL.Load(); + MODL.MODL.Copy((char *)FieldValue); + break; + case 17: //modt_p + MODL.MODT.Load(); + MODL.MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 18: //altTextures + MODL.Textures.Load(); + if (ListFieldID == 0) // altTextures + { + MODL.Textures.resize(ArraySize); + return false; + } - if (ListIndex >= MODL->Textures.MODS.size()) - break; + if (ListIndex >= MODL.Textures.MODS.size()) + break; - switch (ListFieldID) - { - case 1: //name - delete[]MODL->Textures.MODS[ListIndex]->name; - MODL->Textures.MODS[ListIndex]->name = NULL; - if (FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - MODL->Textures.MODS[ListIndex]->name = new char[ArraySize]; - strcpy_s(MODL->Textures.MODS[ListIndex]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - MODL->Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - MODL->Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - case 19: //destructableHealth - Destructable.Load(); - Destructable->DEST->health = *(int32_t *)FieldValue; - break; - case 20: //destructableCount - Destructable.Load(); - Destructable->DEST->count = *(uint8_t *)FieldValue; - break; - case 21: //destructableFlags - Destructable.Load(); - Destructable->DEST->flags = *(uint8_t *)FieldValue; - break; - case 22: //destructableUnused1 - if (ArraySize != 2) - break; - Destructable.Load(); - Destructable->DEST->unused1[0] = ((UINT8ARRAY)FieldValue)[0]; - Destructable->DEST->unused1[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 23: //destructableStages - Destructable.Load(); - if (ListFieldID == 0) //destructableStagesSize - { - Destructable->Stages.resize(ArraySize); - return false; - } + switch (ListFieldID) + { + case 1: //name + delete[]MODL.Textures.MODS[ListIndex]->name; + MODL.Textures.MODS[ListIndex]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + MODL.Textures.MODS[ListIndex]->name = new char[ArraySize]; + strncpy(MODL.Textures.MODS[ListIndex]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + MODL.Textures.MODS[ListIndex]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + MODL.Textures.MODS[ListIndex]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + case 19: //destructableHealth + Destructable.Load(); + Destructable->DEST->health = *(int32_t *)FieldValue; + break; + case 20: //destructableCount + Destructable.Load(); + Destructable->DEST->count = *(uint8_t *)FieldValue; + break; + case 21: //destructableFlags + Destructable.Load(); + Destructable->DEST->flags = *(uint8_t *)FieldValue; + break; + case 22: //destructableUnused1 + if (ArraySize != 2) + break; + Destructable.Load(); + Destructable->DEST->unused1[0] = ((UINT8ARRAY)FieldValue)[0]; + Destructable->DEST->unused1[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 23: //destructableStages + Destructable.Load(); + if (ListFieldID == 0) //destructableStagesSize + { + Destructable->Stages.resize(ArraySize); + return false; + } - if (ListIndex >= Destructable->Stages.value.size()) - break; + if (ListIndex >= Destructable->Stages.value.size()) + break; - switch (ListFieldID) - { - case 1: //health - Destructable->Stages.value[ListIndex]->DSTD->health = *(uint8_t *)FieldValue; - break; - case 2: //index - Destructable->Stages.value[ListIndex]->DSTD->index = *(uint8_t *)FieldValue; - break; - case 3: //stage - Destructable->Stages.value[ListIndex]->DSTD->stage = *(uint8_t *)FieldValue; - break; - case 4: //flags - Destructable->Stages.value[ListIndex]->DSTD->flags = *(uint8_t *)FieldValue; - break; - case 5: //dps - Destructable->Stages.value[ListIndex]->DSTD->dps = *(int32_t *)FieldValue; - break; - case 6: //explosion - Destructable->Stages.value[ListIndex]->DSTD->explosion = *(FORMID *)FieldValue; - return true; - case 7: //debris - Destructable->Stages.value[ListIndex]->DSTD->debris = *(FORMID *)FieldValue; - return true; - case 8: //debrisCount - Destructable->Stages.value[ListIndex]->DSTD->debrisCount = *(int32_t *)FieldValue; - break; - case 9: //modPath - Destructable->Stages.value[ListIndex]->DMDL.Copy((char *)FieldValue); - break; - case 10: //modt_p - Destructable->Stages.value[ListIndex]->DMDT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 11: //altTextures - if (ListX2FieldID == 0) //altTexturesSize - { - Destructable->Stages.value[ListIndex]->DMDS.resize(ArraySize); - return false; - } + switch (ListFieldID) + { + case 1: //health + Destructable->Stages.value[ListIndex]->DSTD->health = *(uint8_t *)FieldValue; + break; + case 2: //index + Destructable->Stages.value[ListIndex]->DSTD->index = *(uint8_t *)FieldValue; + break; + case 3: //stage + Destructable->Stages.value[ListIndex]->DSTD->stage = *(uint8_t *)FieldValue; + break; + case 4: //flags + Destructable->Stages.value[ListIndex]->DSTD->flags = *(uint8_t *)FieldValue; + break; + case 5: //dps + Destructable->Stages.value[ListIndex]->DSTD->dps = *(int32_t *)FieldValue; + break; + case 6: //explosion + Destructable->Stages.value[ListIndex]->DSTD->explosion = *(FORMID *)FieldValue; + return true; + case 7: //debris + Destructable->Stages.value[ListIndex]->DSTD->debris = *(FORMID *)FieldValue; + return true; + case 8: //debrisCount + Destructable->Stages.value[ListIndex]->DSTD->debrisCount = *(int32_t *)FieldValue; + break; + case 9: //modPath + Destructable->Stages.value[ListIndex]->DMDL.Copy((char *)FieldValue); + break; + case 10: //modt_p + Destructable->Stages.value[ListIndex]->DMDT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 11: //altTextures + if (ListX2FieldID == 0) //altTexturesSize + { + Destructable->Stages.value[ListIndex]->DMDS.resize(ArraySize); + return false; + } - if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) - break; + if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) + break; - switch (ListX2FieldID) - { - case 1: //name - delete[] Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = NULL; - if (FieldValue != NULL) - { - ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = new char[ArraySize]; - strcpy_s(Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name, ArraySize, (char *)FieldValue); - } - break; - case 2: //texture - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture = *(FORMID *)FieldValue; - return true; - case 3: //index - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index = *(int32_t *)FieldValue; - break; - default: - break; - } - break; - default: - break; - } - break; - case 24: //iconPath - ICON.Copy((char *)FieldValue); - break; - case 25: //smallIconPath - MICO.Copy((char *)FieldValue); - break; - case 26: //pickupSound - YNAM.value = *(FORMID *)FieldValue; - return true; - case 27: //drop Sound - ZNAM.value = *(FORMID *)FieldValue; - return true; - case 28: //equipmentType - ETYP.value = *(FORMID *)FieldValue; - return true; - case 29: //wieght - DATA.value = *(float *)FieldValue; - break; - case 30: //value - ENIT->value = *(int32_t *)FieldValue; - break; - case 31: //flags - SetFlagMask(*(uint8_t *)FieldValue); - break; - case 32: //withdrawalEffect - ENIT->withdrawalEffect = *(FORMID *)FieldValue; - return true; - case 33: //addictionChance - ENIT->addictionChance = *(float *)FieldValue; - break; - case 34: //consumeSound - ENIT->consumeSound = *(FORMID *)FieldValue; - return true; - case 35: //effects - if (ListFieldID == 0) //effectsSize - { - Effects.resize(ArraySize); - return false; - } + switch (ListX2FieldID) + { + case 1: //name + delete[] Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = NULL; + if (FieldValue != NULL) + { + ArraySize = (uint32_t)strlen((char *)FieldValue) + 1; + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = new char[ArraySize]; + strncpy(Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name, (char *)FieldValue, ArraySize); + } + break; + case 2: //texture + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture = *(FORMID *)FieldValue; + return true; + case 3: //index + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index = *(int32_t *)FieldValue; + break; + default: + break; + } + break; + default: + break; + } + break; + case 24: //iconPath + ICON.Copy((char *)FieldValue); + break; + case 25: //smallIconPath + MICO.Copy((char *)FieldValue); + break; + case 26: //pickupSound + YNAM.value = *(FORMID *)FieldValue; + return true; + case 27: //drop Sound + ZNAM.value = *(FORMID *)FieldValue; + return true; + case 28: //equipmentType + ETYP.value = *(FORMID *)FieldValue; + return true; + case 29: //wieght + DATA.value = *(float *)FieldValue; + break; + case 30: //value + ENIT->value = *(int32_t *)FieldValue; + break; + case 31: //flags + SetFlagMask(*(uint8_t *)FieldValue); + break; + case 32: //withdrawalEffect + ENIT->withdrawalEffect = *(FORMID *)FieldValue; + return true; + case 33: //addictionChance + ENIT->addictionChance = *(float *)FieldValue; + break; + case 34: //consumeSound + ENIT->consumeSound = *(FORMID *)FieldValue; + return true; + case 35: //effects + if (ListFieldID == 0) //effectsSize + { + Effects.resize(ArraySize); + return false; + } - if (ListIndex >= Effects.value.size()) - break; + if (ListIndex >= Effects.value.size()) + break; - switch (ListFieldID) - { - case 1: //effect - Effects.value[ListIndex]->EFID.value = *(FORMID *)FieldValue; - return true; - case 2: //magnitude - Effects.value[ListIndex]->EFIT->magnitude = *(float *)FieldValue; - break; - case 3: //area - Effects.value[ListIndex]->EFIT->area = *(uint32_t *)FieldValue; - break; - case 4: //duration - Effects.value[ListIndex]->EFIT->duration = *(uint32_t *)FieldValue; - break; - case 5: //conditions - if (ListX2FieldID == 0) //conditionsSize - { - Effects.value[ListIndex]->CTDA.resize(ArraySize); - return false; - } + switch (ListFieldID) + { + case 1: //effect + Effects.value[ListIndex]->EFID.value = *(FORMID *)FieldValue; + return true; + case 2: //magnitude + Effects.value[ListIndex]->EFIT->magnitude = *(float *)FieldValue; + break; + case 3: //area + Effects.value[ListIndex]->EFIT->area = *(uint32_t *)FieldValue; + break; + case 4: //duration + Effects.value[ListIndex]->EFIT->duration = *(uint32_t *)FieldValue; + break; + case 5: //conditions + if (ListX2FieldID == 0) //conditionsSize + { + Effects.value[ListIndex]->CTDA.resize(ArraySize); + return false; + } - if (ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) - break; + if (ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) + break; - switch (ListX2FieldID) - { - case 1: //operType - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->operType = *(uint8_t *)FieldValue; - break; - case 2: //unused1 - if (ArraySize != 3) - break; - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[0] = ((UINT8ARRAY)FieldValue)[0]; - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[1] = ((UINT8ARRAY)FieldValue)[1]; - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[2] = ((UINT8ARRAY)FieldValue)[2]; - break; - case 3: //compValue - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->compValue = *(FORMID_OR_FLOAT32 *)FieldValue; - return true; - case 4: //ifunc - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->ifunc = *(uint16_t *)FieldValue; - return true; - case 5: //unused2 - if (ArraySize != 2) - break; - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused2[0] = ((UINT8ARRAY)FieldValue)[0]; - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused2[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 6: //param1 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param1 = *(FORMID_OR_UINT32 *)FieldValue; - return true; - case 7: //param2 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param2 = *(FORMID_OR_UINT32 *)FieldValue; - return true; - case 8: //runOnType - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->runOnType = *(uint32_t *)FieldValue; - true; - case 9: //reference - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->reference = *(FORMID_OR_UINT32 *)FieldValue; - return true; - case 10: //param3 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param3 = *(int32_t *)FieldValue; - break; - case 11: //cis1 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS1.Copy((char *)FieldValue); - return true; // affects how param1 is interpreted - case 12: //cis2 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS2.Copy((char *)FieldValue); - return true; // affects how param2 is interpreted - default: - break; - } - break; - default: - break; - } - break; - default: - break; - } - return false; -} + switch (ListX2FieldID) + { + case 1: //operType + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->operType = *(uint8_t *)FieldValue; + break; + case 2: //unused1 + if (ArraySize != 3) + break; + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[0] = ((UINT8ARRAY)FieldValue)[0]; + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[1] = ((UINT8ARRAY)FieldValue)[1]; + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[2] = ((UINT8ARRAY)FieldValue)[2]; + break; + case 3: //compValue + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->compValue = *(FORMID_OR_FLOAT32 *)FieldValue; + return true; + case 4: //ifunc + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->ifunc = *(uint16_t *)FieldValue; + return true; + case 5: //unused2 + if (ArraySize != 2) + break; + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused2[0] = ((UINT8ARRAY)FieldValue)[0]; + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused2[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 6: //param1 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param1 = *(FORMID_OR_UINT32 *)FieldValue; + return true; + case 7: //param2 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param2 = *(FORMID_OR_UINT32 *)FieldValue; + return true; + case 8: //runOnType + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->runOnType = *(uint32_t *)FieldValue; + true; + case 9: //reference + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->reference = *(FORMID_OR_UINT32 *)FieldValue; + return true; + case 10: //param3 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param3 = *(int32_t *)FieldValue; + break; + case 11: //cis1 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS1.Copy((char *)FieldValue); + return true; // affects how param1 is interpreted + case 12: //cis2 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS2.Copy((char *)FieldValue); + return true; // affects how param2 is interpreted + default: + break; + } + break; + default: + break; + } + break; + default: + break; + } + return false; + } -void ALCHRecord::DeleteField(FIELD_IDENTIFIERS) - { - GENOBND defaultOBND; - FNVMODS defaultMODS; - GENDEST defaultDEST; - DESTDSTD defaultDSTD; - ALCHENIT defaultENIT; - SKEffect defaultEffect; - SKCTDA defaultCTDA; + void ALCHRecord::DeleteField(FIELD_IDENTIFIERS) + { + GENOBND defaultOBND; + FNVMODS defaultMODS; + GENDEST defaultDEST; + DESTDSTD defaultDSTD; + ALCHENIT defaultENIT; + SKEffect defaultEffect; + SKCTDA defaultCTDA; - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(0); - return; - case 3: //versionControl1 - flagsUnk = 0; - return; - case 4: //eid - EDID.Unload(); - return; - case 5: //formVersion - formVersion = 0; - return; - case 6: //versionControl2 - versionControl2[0] = 0; - versionControl2[1] = 0; - return; - case 7: //boundX1 - OBND->x1 = defaultOBND.x1; - return; - case 8: //boundY1 - OBND->y1 = defaultOBND.y1; - return; - case 9: //boundZ1 - OBND->z1 = defaultOBND.z1; - return; - case 10: //boundX2 - OBND->x2 = defaultOBND.x2; - return; - case 11: //boundY2 - OBND->y2 = defaultOBND.y2; - return; - case 12: //boundZ2 - OBND->z2 = defaultOBND.z2; - return; - case 13: //full - FULL.Unload(); - return; - case 14: //keywords - KWDA.Unload(); - return; - case 15: //description - DESC.Unload(); - return; - case 16: //modPath - if (MODL.IsLoaded()) - MODL->MODL.Unload(); - return; - case 17: //modt_p - if (MODL.IsLoaded()) - MODL->MODT.Unload(); - return; - case 18: //altTextures - if (MODL.IsLoaded()) - { - if (ListFieldID == 0) //altTextures - { - MODL->Textures.Unload(); - return; - } + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(0); + return; + case 3: //versionControl1 + flagsUnk = 0; + return; + case 4: //eid + EDID.Unload(); + return; + case 5: //formVersion + formVersion = 0; + return; + case 6: //versionControl2 + versionControl2[0] = 0; + versionControl2[1] = 0; + return; + case 7: //boundX1 + OBND->x1 = defaultOBND.x1; + return; + case 8: //boundY1 + OBND->y1 = defaultOBND.y1; + return; + case 9: //boundZ1 + OBND->z1 = defaultOBND.z1; + return; + case 10: //boundX2 + OBND->x2 = defaultOBND.x2; + return; + case 11: //boundY2 + OBND->y2 = defaultOBND.y2; + return; + case 12: //boundZ2 + OBND->z2 = defaultOBND.z2; + return; + case 13: //full + FULL.Unload(); + return; + case 14: //keywords + KWDA.Unload(); + return; + case 15: //description + DESC.Unload(); + return; + case 16: //modPath + if (MODL.MODL.IsLoaded()) + MODL.MODL.Unload(); + return; + case 17: //modt_p + if (MODL.MODT.IsLoaded()) + MODL.MODT.Unload(); + return; + case 18: //altTextures + if (MODL.Textures.IsLoaded()) + { + if (ListFieldID == 0) //altTextures + { + MODL.Textures.Unload(); + return; + } - if (ListIndex >= MODL->Textures.MODS.size()) - return; + if (ListIndex >= MODL.Textures.MODS.size()) + return; - switch (ListFieldID) - { - case 1: //name - delete[] MODL->Textures.MODS[ListIndex]->name; - MODL->Textures.MODS[ListIndex]->name = NULL; - return; - case 2: //texture - MODL->Textures.MODS[ListIndex]->texture = defaultMODS.texture; - return; - case 3: //index - MODL->Textures.MODS[ListIndex]->index = defaultMODS.index; - return; - default: - return; - } - } - return; - case 19: //destructableHealth - if (Destructable.IsLoaded()) - Destructable->DEST->health = defaultDEST.health; - return; - case 20: //destructableCount - if (Destructable.IsLoaded()) - Destructable->DEST->count = defaultDEST.count; - return; - case 21: //destructableFlags - if (Destructable.IsLoaded()) - Destructable->DEST->flags = defaultDEST.flags; - return; - case 22: //destructableUnused1 - if (Destructable.IsLoaded()) - { - Destructable->DEST->unused1[0] = defaultDEST.unused1[0]; - Destructable->DEST->unused1[1] = defaultDEST.unused1[1]; - } - return; - case 23: //destructableStages - if (Destructable.IsLoaded()) - { - if (ListFieldID == 0) //destructableStages - { - Destructable->Stages.Unload(); - return; - } + switch (ListFieldID) + { + case 1: //name + delete[] MODL.Textures.MODS[ListIndex]->name; + MODL.Textures.MODS[ListIndex]->name = NULL; + return; + case 2: //texture + MODL.Textures.MODS[ListIndex]->texture = defaultMODS.texture; + return; + case 3: //index + MODL.Textures.MODS[ListIndex]->index = defaultMODS.index; + return; + default: + return; + } + } + return; + case 19: //destructableHealth + if (Destructable.IsLoaded()) + Destructable->DEST->health = defaultDEST.health; + return; + case 20: //destructableCount + if (Destructable.IsLoaded()) + Destructable->DEST->count = defaultDEST.count; + return; + case 21: //destructableFlags + if (Destructable.IsLoaded()) + Destructable->DEST->flags = defaultDEST.flags; + return; + case 22: //destructableUnused1 + if (Destructable.IsLoaded()) + { + Destructable->DEST->unused1[0] = defaultDEST.unused1[0]; + Destructable->DEST->unused1[1] = defaultDEST.unused1[1]; + } + return; + case 23: //destructableStages + if (Destructable.IsLoaded()) + { + if (ListFieldID == 0) //destructableStages + { + Destructable->Stages.Unload(); + return; + } - if (ListIndex >= Destructable->Stages.value.size()) - return; + if (ListIndex >= Destructable->Stages.value.size()) + return; - switch (ListFieldID) - { - case 1: //health - Destructable->Stages.value[ListIndex]->DSTD->health = defaultDSTD.health; - return; - case 2: //index - Destructable->Stages.value[ListIndex]->DSTD->index = defaultDSTD.index; - return; - case 3: //stage - Destructable->Stages.value[ListIndex]->DSTD->stage = defaultDSTD.stage; - return; - case 4: //flags - Destructable->Stages.value[ListIndex]->DSTD->flags = defaultDSTD.flags; - return; - case 5: //dps - Destructable->Stages.value[ListIndex]->DSTD->dps = defaultDSTD.dps; - return; - case 6: //explosion - Destructable->Stages.value[ListIndex]->DSTD->explosion = defaultDSTD.explosion; - return; - case 7: //debris - Destructable->Stages.value[ListIndex]->DSTD->debris = defaultDSTD.debris; - return; - case 8: //debrisCount - Destructable->Stages.value[ListIndex]->DSTD->debrisCount = defaultDSTD.debrisCount; - return; - case 9: //modPath - Destructable->Stages.value[ListIndex]->DMDL.Unload(); - return; - case 10: //modt_p - Destructable->Stages.value[ListIndex]->DMDT.Unload(); - return; - case 11: //altTextures - if (ListX2FieldID == 0) //altTextures - { - Destructable->Stages.value[ListIndex]->DMDS.Unload(); - return; - } + switch (ListFieldID) + { + case 1: //health + Destructable->Stages.value[ListIndex]->DSTD->health = defaultDSTD.health; + return; + case 2: //index + Destructable->Stages.value[ListIndex]->DSTD->index = defaultDSTD.index; + return; + case 3: //stage + Destructable->Stages.value[ListIndex]->DSTD->stage = defaultDSTD.stage; + return; + case 4: //flags + Destructable->Stages.value[ListIndex]->DSTD->flags = defaultDSTD.flags; + return; + case 5: //dps + Destructable->Stages.value[ListIndex]->DSTD->dps = defaultDSTD.dps; + return; + case 6: //explosion + Destructable->Stages.value[ListIndex]->DSTD->explosion = defaultDSTD.explosion; + return; + case 7: //debris + Destructable->Stages.value[ListIndex]->DSTD->debris = defaultDSTD.debris; + return; + case 8: //debrisCount + Destructable->Stages.value[ListIndex]->DSTD->debrisCount = defaultDSTD.debrisCount; + return; + case 9: //modPath + Destructable->Stages.value[ListIndex]->DMDL.Unload(); + return; + case 10: //modt_p + Destructable->Stages.value[ListIndex]->DMDT.Unload(); + return; + case 11: //altTextures + if (ListX2FieldID == 0) //altTextures + { + Destructable->Stages.value[ListIndex]->DMDS.Unload(); + return; + } - if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) - return; + if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) + return; - switch (ListX2FieldID) - { - case 1: //name - delete[] Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = NULL; - return; - case 2: //texture - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture = defaultMODS.texture; - return; - case 3: //index - Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index = defaultMODS.index; - return; - default: - return; - } - return; - default: - return; - } - } - return; - case 24: //iconPath - ICON.Unload(); - return; - case 25: //smallIconPath - MICO.Unload(); - return; - case 26: //pickupSound - YNAM.Unload(); - return; - case 27: //dropSound - ZNAM.Unload(); - return; - case 28: //equipmentType - ETYP.Unload(); - return; - case 29: //wieght - DATA.Unload(); - return; - case 30: //value - ENIT->value = defaultENIT.value; - return; - case 31: //flags - ENIT->flags = defaultENIT.flags; - return; - case 32: //withdrawalEffect - ENIT->withdrawalEffect = defaultENIT.withdrawalEffect; - return; - case 33: //addictionChance - ENIT->addictionChance = defaultENIT.addictionChance; - return; - case 34: //consumeSound - ENIT->consumeSound = defaultENIT.consumeSound; - return; - case 35: //effects - if (ListFieldID == 0) //effects - { - Effects.Unload(); - return; - } + switch (ListX2FieldID) + { + case 1: //name + delete[] Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name; + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->name = NULL; + return; + case 2: //texture + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->texture = defaultMODS.texture; + return; + case 3: //index + Destructable->Stages.value[ListIndex]->DMDS.MODS[ListX2Index]->index = defaultMODS.index; + return; + default: + return; + } + return; + default: + return; + } + } + return; + case 24: //iconPath + ICON.Unload(); + return; + case 25: //smallIconPath + MICO.Unload(); + return; + case 26: //pickupSound + YNAM.Unload(); + return; + case 27: //dropSound + ZNAM.Unload(); + return; + case 28: //equipmentType + ETYP.Unload(); + return; + case 29: //wieght + DATA.Unload(); + return; + case 30: //value + ENIT->value = defaultENIT.value; + return; + case 31: //flags + ENIT->flags = defaultENIT.flags; + return; + case 32: //withdrawalEffect + ENIT->withdrawalEffect = defaultENIT.withdrawalEffect; + return; + case 33: //addictionChance + ENIT->addictionChance = defaultENIT.addictionChance; + return; + case 34: //consumeSound + ENIT->consumeSound = defaultENIT.consumeSound; + return; + case 35: //effects + if (ListFieldID == 0) //effects + { + Effects.Unload(); + return; + } - if (ListIndex >= Effects.value.size()) - return; + if (ListIndex >= Effects.value.size()) + return; - switch (ListFieldID) - { - case 1: //effect - Effects.value[ListIndex]->EFID = defaultEffect.EFID; - return; - case 2: //magnitude - Effects.value[ListIndex]->EFIT->magnitude = defaultEffect.EFIT->magnitude; - return; - case 3: //area - Effects.value[ListIndex]->EFIT->area = defaultEffect.EFIT->area; - return; - case 4: //duration - Effects.value[ListIndex]->EFIT->duration = defaultEffect.EFIT->duration; - case 5: //conditions - if (ListX2FieldID == 0) //conditions - { - Effects.value[ListIndex]->CTDA.Unload(); - return; - } + switch (ListFieldID) + { + case 1: //effect + Effects.value[ListIndex]->EFID = defaultEffect.EFID; + return; + case 2: //magnitude + Effects.value[ListIndex]->EFIT->magnitude = defaultEffect.EFIT->magnitude; + return; + case 3: //area + Effects.value[ListIndex]->EFIT->area = defaultEffect.EFIT->area; + return; + case 4: //duration + Effects.value[ListIndex]->EFIT->duration = defaultEffect.EFIT->duration; + case 5: //conditions + if (ListX2FieldID == 0) //conditions + { + Effects.value[ListIndex]->CTDA.Unload(); + return; + } - if (ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) - return; + if (ListX2Index >= Effects.value[ListIndex]->CTDA.value.size()) + return; - switch (ListX2FieldID) - { - case 1: //operType - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->operType = defaultCTDA.operType; - return; - case 2: //unused1 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[0] = defaultCTDA.unused1[0]; - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[1] = defaultCTDA.unused1[1]; - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[2] = defaultCTDA.unused1[2]; - return; - case 3: //compValue - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->compValue = defaultCTDA.compValue; - return; - case 4: //ifunc - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->ifunc = defaultCTDA.ifunc; - return; - case 5: //unused2 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused2[0] = defaultCTDA.unused2[0]; - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused2[1] = defaultCTDA.unused2[1]; - return; - case 6: //param1 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param1 = defaultCTDA.param1; - return; - case 7: //param2 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param2 = defaultCTDA.param2; - return; - case 8: //runOnType - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->runOnType = defaultCTDA.runOnType; - return; - case 9: //reference - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->reference = defaultCTDA.reference; - return; - case 10: //param3 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param3 = defaultCTDA.param3; - return; - case 11: //cis1 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS1.Unload(); - return; - case 12: //cis2 - Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS2.Unload(); - return; - default: - return; - } - return; - default: - return; - } - return; - default: - return; - } - } + switch (ListX2FieldID) + { + case 1: //operType + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->operType = defaultCTDA.operType; + return; + case 2: //unused1 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[0] = defaultCTDA.unused1[0]; + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[1] = defaultCTDA.unused1[1]; + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused1[2] = defaultCTDA.unused1[2]; + return; + case 3: //compValue + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->compValue = defaultCTDA.compValue; + return; + case 4: //ifunc + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->ifunc = defaultCTDA.ifunc; + return; + case 5: //unused2 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused2[0] = defaultCTDA.unused2[0]; + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->unused2[1] = defaultCTDA.unused2[1]; + return; + case 6: //param1 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param1 = defaultCTDA.param1; + return; + case 7: //param2 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param2 = defaultCTDA.param2; + return; + case 8: //runOnType + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->runOnType = defaultCTDA.runOnType; + return; + case 9: //reference + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->reference = defaultCTDA.reference; + return; + case 10: //param3 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CTDA->param3 = defaultCTDA.param3; + return; + case 11: //cis1 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS1.Unload(); + return; + case 12: //cis2 + Effects.value[ListIndex]->CTDA.value[ListX2Index]->CIS2.Unload(); + return; + default: + return; + } + return; + default: + return; + } + return; + default: + return; + } + } } diff --git a/src/Skyrim/Records/API/ANIORecordAPI.cpp b/src/Skyrim/Records/API/ANIORecordAPI.cpp index 50dd93b..3c78994 100644 --- a/src/Skyrim/Records/API/ANIORecordAPI.cpp +++ b/src/Skyrim/Records/API/ANIORecordAPI.cpp @@ -1,208 +1,208 @@ /* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is CBash code. - * - * The Initial Developer of the Original Code is - * Waruddar. - * Portions created by the Initial Developer are Copyright (C) 2010 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ANIORecord.h" +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../../Common.h" +#include "../ANIORecord.h" namespace Sk { -uint32_t ANIORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) -{ - switch(FieldID) - { - case 0: //recType - return GetType(); - case 1: //flags1 - return CB_UINT32_FLAG_FIELD; - case 2: //fid - return CB_FORMID_FIELD; - case 3: //versionControl1 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 4; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 4: //eid - return CB_ISTRING_FIELD; - case 5: //formVersion - return CB_UINT16_FIELD; - case 6: //versionControl2 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 7: //modPath - return CB_ISTRING_FIELD; - case 8: //modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 9: //unloadEvent - return CB_STRING_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; -} + uint32_t ANIORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) + { + switch (FieldID) + { + case 0: //recType + return GetType(); + case 1: //flags1 + return UINT32_FLAG_FIELD; + case 2: //fid + return FORMID_FIELD; + case 3: //versionControl1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 4; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 4: //eid + return ISTRING_FIELD; + case 5: //formVersion + return UINT16_FIELD; + case 6: //versionControl2 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 7: //modPath + return ISTRING_FIELD; + case 8: //modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MODL.MODT.IsLoaded() ? MODL.MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 9: //unloadEvent + return STRING_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } -void * ANIORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) -{ - switch(FieldID) - { - case 1: //flags1 - return &flags; - case 2: //fid - return &formID; - case 3: //versionControl1 - *FieldValues = &flagsUnk; - return NULL; - case 4: //eid - return EDID.value; - case 5: //formVersion - return &formVersion; - case 6: //versionControl2 - *FieldValues = &versionControl2[0]; - return NULL; - case 7: //modPath - return MODL.IsLoaded() ? MODL->MODL.value : NULL; - case 8: //modt_p - return MODL.IsLoaded() ? MODL->MODT.value : NULL; - case 9: //unloadEvent - return BNAM.value; - default: - return NULL; - } - return NULL; -} + void * ANIORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) + { + switch (FieldID) + { + case 1: //flags1 + return &flags; + case 2: //fid + return &formID; + case 3: //versionControl1 + *FieldValues = &flagsUnk; + return NULL; + case 4: //eid + return EDID.value; + case 5: //formVersion + return &formVersion; + case 6: //versionControl2 + *FieldValues = &versionControl2[0]; + return NULL; + case 7: //modPath + return MODL.MODL.IsLoaded() ? MODL.MODL.value : NULL; + case 8: //modt_p + return MODL.MODT.IsLoaded() ? MODL.MODT.value : NULL; + case 9: //unloadEvent + return BNAM.value; + default: + return NULL; + } + return NULL; + } -bool ANIORecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) -{ - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(*(uint32_t *)FieldValue); - break; - case 3: //versionControl1 - if(ArraySize != 4) - break; - ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; - ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; - ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; - ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; - break; - case 4: //eid - EDID.Copy((char *)FieldValue); - break; - case 5: //formVersion - formVersion = *(uint16_t *)FieldValue; - break; - case 6: //versionControl2 - if(ArraySize != 2) - break; - versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; - versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 7: //modPath - MODL.Load(); - MODL->MODL.Copy((char *)FieldValue); - break; - case 8: //modt_p - MODL.Load(); - MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 9: //unloadEvent - BNAM.Copy((char *)FieldValue); - break; - default: - break; - } - return false; -} + bool ANIORecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) + { + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(*(uint32_t *)FieldValue); + break; + case 3: //versionControl1 + if (ArraySize != 4) + break; + ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; + ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; + ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; + ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; + break; + case 4: //eid + EDID.Copy((char *)FieldValue); + break; + case 5: //formVersion + formVersion = *(uint16_t *)FieldValue; + break; + case 6: //versionControl2 + if (ArraySize != 2) + break; + versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; + versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 7: //modPath + MODL.MODL.Load(); + MODL.MODL.Copy((char *)FieldValue); + break; + case 8: //modt_p + MODL.MODT.Load(); + MODL.MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 9: //unloadEvent + BNAM.Copy((char *)FieldValue); + break; + default: + break; + } + return false; + } -void ANIORecord::DeleteField(FIELD_IDENTIFIERS) -{ - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(0); - return; - case 3: //versionControl1 - flagsUnk = 0; - return; - case 4: //eid - EDID.Unload(); - return; - case 5: //formVersion - formVersion = 0; - return; - case 6: //versionControl2 - versionControl2[0] = 0; - versionControl2[1] = 0; - return; - case 7: //modPath - if (MODL.IsLoaded()) - MODL->MODL.Unload(); - return; - case 8: //modt_p - if (MODL.IsLoaded()) - MODL->MODT.Unload(); - return; - case 9: //unloadEvent - BNAM.Unload(); - break; - default: - return; - } -} + void ANIORecord::DeleteField(FIELD_IDENTIFIERS) + { + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(0); + return; + case 3: //versionControl1 + flagsUnk = 0; + return; + case 4: //eid + EDID.Unload(); + return; + case 5: //formVersion + formVersion = 0; + return; + case 6: //versionControl2 + versionControl2[0] = 0; + versionControl2[1] = 0; + return; + case 7: //modPath + if (MODL.MODL.IsLoaded()) + MODL.MODL.Unload(); + return; + case 8: //modt_p + if (MODL.MODT.IsLoaded()) + MODL.MODT.Unload(); + return; + case 9: //unloadEvent + BNAM.Unload(); + break; + default: + return; + } + } } // namespace Sk diff --git a/src/Skyrim/Records/API/APPARecordAPI.cpp b/src/Skyrim/Records/API/APPARecordAPI.cpp index 56199aa..5d69043 100644 --- a/src/Skyrim/Records/API/APPARecordAPI.cpp +++ b/src/Skyrim/Records/API/APPARecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\APPARecord.h" +#include "../../../Common.h" +#include "../APPARecord.h" namespace Sk { @@ -45,61 +45,61 @@ uint32_t APPARecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 14: //quality - return CB_UINT32_FIELD; + return UINT32_FIELD; case 15: //desc - return CB_STRING_FIELD; + return STRING_FIELD; case 16: //data.value - return CB_UINT32_FIELD; + return UINT32_FIELD; case 17: //data.weight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * APPARecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/ARTORecordAPI.cpp b/src/Skyrim/Records/API/ARTORecordAPI.cpp index b1c22f3..6aed436 100644 --- a/src/Skyrim/Records/API/ARTORecordAPI.cpp +++ b/src/Skyrim/Records/API/ARTORecordAPI.cpp @@ -1,264 +1,264 @@ /* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is CBash code. - * - * The Initial Developer of the Original Code is - * Waruddar. - * Portions created by the Initial Developer are Copyright (C) 2010 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ARTORecord.h" +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../../Common.h" +#include "../ARTORecord.h" namespace Sk { -uint32_t ARTORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) - { - switch(FieldID) - { - case 0: //recType - return GetType(); - case 1: //flags1 - return CB_UINT32_FLAG_FIELD; - case 2: //fid - return CB_FORMID_FIELD; - case 3: //versionControl1 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 4; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 4: //eid - return CB_ISTRING_FIELD; - case 5: //formVersion - return CB_UINT16_FIELD; - case 6: //versionControl2 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 7: //boundX1 - return CB_SINT16_FIELD; - case 8: //boundY1 - return CB_SINT16_FIELD; - case 9: //boundZ1 - return CB_SINT16_FIELD; - case 10: //boundX2 - return CB_SINT16_FIELD; - case 11: //boundY2 - return CB_SINT16_FIELD; - case 12: //boundZ2 - return CB_SINT16_FIELD; - case 13: //modPath - return CB_ISTRING_FIELD; - case 14: //modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MODL->MODT.GetSize(); - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 15: //flags - return CB_UINT32_FLAG_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - } + uint32_t ARTORecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) + { + switch (FieldID) + { + case 0: //recType + return GetType(); + case 1: //flags1 + return UINT32_FLAG_FIELD; + case 2: //fid + return FORMID_FIELD; + case 3: //versionControl1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 4; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 4: //eid + return ISTRING_FIELD; + case 5: //formVersion + return UINT16_FIELD; + case 6: //versionControl2 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 7: //boundX1 + return SINT16_FIELD; + case 8: //boundY1 + return SINT16_FIELD; + case 9: //boundZ1 + return SINT16_FIELD; + case 10: //boundX2 + return SINT16_FIELD; + case 11: //boundY2 + return SINT16_FIELD; + case 12: //boundZ2 + return SINT16_FIELD; + case 13: //modPath + return ISTRING_FIELD; + case 14: //modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MODL.MODT.GetSize(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 15: //flags + return UINT32_FLAG_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } -void * ARTORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) - { - switch(FieldID) - { - case 1: //flags1 - return &flags; - case 2: //fid - return &formID; - case 3: //versionControl1 - *FieldValues = &flagsUnk; - return NULL; - case 4: //eid - return EDID.value; - case 5: //formVersion - return &formVersion; - case 6: //versionControl2 - *FieldValues = &versionControl2[0]; - return NULL; - case 7: //boundX1 - return &OBND.value.x1; - case 8: //boundY1 - return &OBND.value.y1; - case 9: //boundZ1 - return &OBND.value.z1; - case 10: //boundX2 - return &OBND.value.x2; - case 11: //boundY2 - return &OBND.value.y2; - case 12: //boundZ2 - return &OBND.value.z2; - case 13: //modPath - return MODL->MODL.value; - case 14: //modt_p - return MODL->MODT.value; - case 15: //flags - return &DNAM.value; - default: - return NULL; - } - return NULL; - } + void * ARTORecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) + { + switch (FieldID) + { + case 1: //flags1 + return &flags; + case 2: //fid + return &formID; + case 3: //versionControl1 + *FieldValues = &flagsUnk; + return NULL; + case 4: //eid + return EDID.value; + case 5: //formVersion + return &formVersion; + case 6: //versionControl2 + *FieldValues = &versionControl2[0]; + return NULL; + case 7: //boundX1 + return &OBND.value.x1; + case 8: //boundY1 + return &OBND.value.y1; + case 9: //boundZ1 + return &OBND.value.z1; + case 10: //boundX2 + return &OBND.value.x2; + case 11: //boundY2 + return &OBND.value.y2; + case 12: //boundZ2 + return &OBND.value.z2; + case 13: //modPath + return MODL.MODL.value; + case 14: //modt_p + return MODL.MODT.value; + case 15: //flags + return &DNAM.value; + default: + return NULL; + } + return NULL; + } -bool ARTORecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) - { - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(*(uint32_t *)FieldValue); - break; - case 3: //versionControl1 - if(ArraySize != 4) - break; - ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; - ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; - ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; - ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; - break; - case 4: //eid - EDID.Copy((char *)FieldValue); - break; - case 5: //formVersion - formVersion = *(uint16_t *)FieldValue; - break; - case 6: //versionControl2 - if(ArraySize != 2) - break; - versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; - versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 7: //boundX1 - OBND.value.x1 = *(int16_t *)FieldValue; - break; - case 8: //boundY1 - OBND.value.y1 = *(int16_t *)FieldValue; - break; - case 9: //boundZ1 - OBND.value.z1 = *(int16_t *)FieldValue; - break; - case 10: //boundX2 - OBND.value.x2 = *(int16_t *)FieldValue; - break; - case 11: //boundY2 - OBND.value.y2 = *(int16_t *)FieldValue; - break; - case 12: //boundZ2 - OBND.value.z2 = *(int16_t *)FieldValue; - break; - case 13: //modPath - MODL->MODL.Copy((char *)FieldValue); - break; - case 14: //modt_p - MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 15: //flags - DNAM.value = *(uint32_t *)FieldValue; - break; - default: - break; - } - return false; - } + bool ARTORecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) + { + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(*(uint32_t *)FieldValue); + break; + case 3: //versionControl1 + if (ArraySize != 4) + break; + ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; + ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; + ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; + ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; + break; + case 4: //eid + EDID.Copy((char *)FieldValue); + break; + case 5: //formVersion + formVersion = *(uint16_t *)FieldValue; + break; + case 6: //versionControl2 + if (ArraySize != 2) + break; + versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; + versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 7: //boundX1 + OBND.value.x1 = *(int16_t *)FieldValue; + break; + case 8: //boundY1 + OBND.value.y1 = *(int16_t *)FieldValue; + break; + case 9: //boundZ1 + OBND.value.z1 = *(int16_t *)FieldValue; + break; + case 10: //boundX2 + OBND.value.x2 = *(int16_t *)FieldValue; + break; + case 11: //boundY2 + OBND.value.y2 = *(int16_t *)FieldValue; + break; + case 12: //boundZ2 + OBND.value.z2 = *(int16_t *)FieldValue; + break; + case 13: //modPath + MODL.MODL.Copy((char *)FieldValue); + break; + case 14: //modt_p + MODL.MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 15: //flags + DNAM.value = *(uint32_t *)FieldValue; + break; + default: + break; + } + return false; + } -void ARTORecord::DeleteField(FIELD_IDENTIFIERS) - { - GENOBND defaultOBND; - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(0); - return; - case 3: //versionControl1 - flagsUnk = 0; - return; - case 4: //eid - EDID.Unload(); - return; - case 5: //formVersion - formVersion = 0; - return; - case 6: //versionControl2 - versionControl2[0] = 0; - versionControl2[1] = 0; - return; - case 7: //boundX1 - OBND.value.x1 = defaultOBND.x1; - return; - case 8: //boundY1 - OBND.value.y1 = defaultOBND.y1; - return; - case 9: //bound Z1 - OBND.value.z1 = defaultOBND.z1; - return; - case 10: //boundX2 - OBND.value.x2 = defaultOBND.x2; - return; - case 11: //boundY2 - OBND.value.y2 = defaultOBND.y2; - return; - case 12: //boundZ2 - OBND.value.z2 = defaultOBND.z2; - return; - case 13: //modPath - MODL->MODL.Unload(); - return; - case 14: //modt_p - MODL->MODT.Unload(); - return; - case 15: //flags - DNAM.Unload(); - return; - default: - return; - } - } + void ARTORecord::DeleteField(FIELD_IDENTIFIERS) + { + GENOBND defaultOBND; + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(0); + return; + case 3: //versionControl1 + flagsUnk = 0; + return; + case 4: //eid + EDID.Unload(); + return; + case 5: //formVersion + formVersion = 0; + return; + case 6: //versionControl2 + versionControl2[0] = 0; + versionControl2[1] = 0; + return; + case 7: //boundX1 + OBND.value.x1 = defaultOBND.x1; + return; + case 8: //boundY1 + OBND.value.y1 = defaultOBND.y1; + return; + case 9: //bound Z1 + OBND.value.z1 = defaultOBND.z1; + return; + case 10: //boundX2 + OBND.value.x2 = defaultOBND.x2; + return; + case 11: //boundY2 + OBND.value.y2 = defaultOBND.y2; + return; + case 12: //boundZ2 + OBND.value.z2 = defaultOBND.z2; + return; + case 13: //modPath + MODL.MODL.Unload(); + return; + case 14: //modt_p + MODL.MODT.Unload(); + return; + case 15: //flags + DNAM.Unload(); + return; + default: + return; + } + } } \ No newline at end of file diff --git a/src/Skyrim/Records/API/ASPCRecordAPI.cpp b/src/Skyrim/Records/API/ASPCRecordAPI.cpp index 5079694..171f101 100644 --- a/src/Skyrim/Records/API/ASPCRecordAPI.cpp +++ b/src/Skyrim/Records/API/ASPCRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ASPCRecord.h" +#include "../../../Common.h" +#include "../ASPCRecord.h" namespace Sk { @@ -45,57 +45,57 @@ uint32_t ASPCRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //ambient - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //region - return CB_FORMID_FIELD; + return FORMID_FIELD; case 15: //reverb - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ASPCRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/ASTPRecordAPI.cpp b/src/Skyrim/Records/API/ASTPRecordAPI.cpp index 8f80705..f04b32e 100644 --- a/src/Skyrim/Records/API/ASTPRecordAPI.cpp +++ b/src/Skyrim/Records/API/ASTPRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\ASTPRecord.h" +#include "../../../Common.h" +#include "../ASTPRecord.h" namespace Sk { @@ -45,46 +45,46 @@ uint32_t ASTPRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: // maleParent case 8: // femaleParent case 9: // maleChild case 10: // femaleChild - return CB_STRING_FIELD; + return STRING_FIELD; case 11: // flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * ASTPRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/CELLRecordAPI.cpp b/src/Skyrim/Records/API/CELLRecordAPI.cpp index bafe0e4..c7a5a4c 100644 --- a/src/Skyrim/Records/API/CELLRecordAPI.cpp +++ b/src/Skyrim/Records/API/CELLRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\CELLRecord.h" +#include "../../../Common.h" +#include "../CELLRecord.h" namespace Sk { @@ -45,144 +45,144 @@ uint32_t CELLRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //flags - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: //posX switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_SINT32_FIELD; + return UNKNOWN_OR_SINT32_FIELD; case 2: //WhichType if(!IsInterior()) - return CB_SINT32_FIELD; - return CB_UNKNOWN_FIELD; + return SINT32_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 10: //posY switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_SINT32_FIELD; + return UNKNOWN_OR_SINT32_FIELD; case 2: //WhichType if(!IsInterior()) - return CB_SINT32_FIELD; - return CB_UNKNOWN_FIELD; + return SINT32_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //quadFlags switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_UINT32_FLAG_FIELD; + return UNKNOWN_OR_UINT32_FLAG_FIELD; case 2: //WhichType if(!IsInterior()) - return CB_UINT32_FLAG_FIELD; - return CB_UNKNOWN_FIELD; + return UINT32_FLAG_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; #if 0 case 12: //ambientRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //ambientGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //ambientBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 15: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLL.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //directionalRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 17: //directionalGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 18: //directionalBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 19: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLL.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 20: //fogRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 21: //fogGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 22: //fogBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 23: //unused3 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCLL.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 24: //fogNear - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //fogFar - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //directionalXY - return CB_SINT32_FIELD; + return SINT32_FIELD; case 27: //directionalZ - return CB_SINT32_FIELD; + return SINT32_FIELD; case 28: //directionalFade - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 29: //fogClip - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 30: //fogPower - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; #endif case 31: //swappedImpacts if(ListFieldID == 0) //swappedImpacts @@ -190,216 +190,216 @@ uint32_t CELLRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)IMPS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= IMPS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //material - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 2: //oldImpact - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //newImpact - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 32: //concSolid - return CB_STRING_FIELD; + return STRING_FIELD; case 33: //concBroken - return CB_STRING_FIELD; + return STRING_FIELD; case 34: //metalSolid - return CB_STRING_FIELD; + return STRING_FIELD; case 35: //metalHollow - return CB_STRING_FIELD; + return STRING_FIELD; case 36: //metalSheet - return CB_STRING_FIELD; + return STRING_FIELD; case 37: //wood - return CB_STRING_FIELD; + return STRING_FIELD; case 38: //sand - return CB_STRING_FIELD; + return STRING_FIELD; case 39: //dirt - return CB_STRING_FIELD; + return STRING_FIELD; case 40: //grass - return CB_STRING_FIELD; + return STRING_FIELD; case 41: //water - return CB_STRING_FIELD; + return STRING_FIELD; case 42: //lightTemplate - return CB_FORMID_FIELD; + return FORMID_FIELD; case 43: //lightFlags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 44: //waterHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 45: //waterNoisePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 46: //regions switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)XCLR.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 47: //imageSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 48: //xcet_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCET.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 49: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 50: //climate - return CB_FORMID_FIELD; + return FORMID_FIELD; case 51: //water - return CB_FORMID_FIELD; + return FORMID_FIELD; case 52: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 53: //rank - return CB_SINT32_FIELD; + return SINT32_FIELD; case 54: //acousticSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 55: //xcmt_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return XCMT.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 56: //music - return CB_FORMID_FIELD; + return FORMID_FIELD; #if 0 case 57: //ACHR switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ACHR.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 58: //ACRE switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ACRE.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 59: //REFR switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)REFR.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 60: //PGRE switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PGRE.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 61: //PMIS switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PMIS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 62: //PBEA switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PBEA.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 63: //PFLA switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PFLA.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 64: //PCBE switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)PCBE.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 65: //NAVM switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)NAVM.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 66: //LAND - return CB_SUBRECORD_FIELD; + return SUBRECORD_FIELD; #endif case 67: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * CELLRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/COLLRecordAPI.cpp b/src/Skyrim/Records/API/COLLRecordAPI.cpp index de1f21d..c632ed5 100644 --- a/src/Skyrim/Records/API/COLLRecordAPI.cpp +++ b/src/Skyrim/Records/API/COLLRecordAPI.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\COLLRecord.h" +#include "../COLLRecord.h" namespace Sk { @@ -44,66 +44,66 @@ uint32_t COLLRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //id - return CB_UINT32_FIELD; + return UINT32_FIELD; case 9: //debugColor.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 10: //debugColor.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 11: //debugColor.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //debugColor.unknown - return CB_UINT8_FIELD; + return UINT8_FIELD; case 13: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 14: //name - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //collidesWith switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)CNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * COLLRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/EQUPRecordAPI.cpp b/src/Skyrim/Records/API/EQUPRecordAPI.cpp index 1a89755..d52e8d0 100644 --- a/src/Skyrim/Records/API/EQUPRecordAPI.cpp +++ b/src/Skyrim/Records/API/EQUPRecordAPI.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\EQUPRecord.h" +#include "../EQUPRecord.h" namespace Sk { @@ -44,52 +44,52 @@ uint32_t EQUPRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //slotParents switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize - return PNAM.value.size(); + return (uint32_t)PNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //isUseAllParents - return CB_BOOL_FIELD; + return BOOL_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * EQUPRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/KYWDRecordAPI.cpp b/src/Skyrim/Records/API/KYWDRecordAPI.cpp index 59153c1..8e787f9 100644 --- a/src/Skyrim/Records/API/KYWDRecordAPI.cpp +++ b/src/Skyrim/Records/API/KYWDRecordAPI.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\KYWDRecord.h" +#include "../KYWDRecord.h" namespace Sk { @@ -45,47 +45,47 @@ uint32_t KYWDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //color.red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //color.green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 9: //color.blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 10: //color.unk1 - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * KYWDRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/LANDRecordAPI.cpp b/src/Skyrim/Records/API/LANDRecordAPI.cpp index 801aa40..8486a6f 100644 --- a/src/Skyrim/Records/API/LANDRecordAPI.cpp +++ b/src/Skyrim/Records/API/LANDRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LANDRecord.h" +#include "../../../Common.h" +#include "../LANDRecord.h" namespace Sk { @@ -48,57 +48,57 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_MISSING_FIELD; + return MISSING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //data switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DATA.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //normals if(ListFieldID == 0) //normals { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -107,45 +107,45 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //x - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //y - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //z - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 9: //heightOffset - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //heights if(ListFieldID == 0) //heights { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -154,50 +154,50 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //height - return CB_SINT8_FIELD; + return SINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 11: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return VHGT.IsLoaded() ? 3 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 12: //colors if(ListFieldID == 0) //colors { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -206,182 +206,182 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 2: //green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //blue - return CB_UINT8_FIELD; + return UINT8_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 13: //baseTextures if(ListFieldID == 0) //baseTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)BTXT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= BTXT.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //quadrant - return CB_SINT8_FIELD; + return SINT8_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //layer - return CB_SINT16_FIELD; + return SINT16_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 14: //alphaLayers if(ListFieldID == 0) //alphaLayers { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Layers.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= Layers.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //quadrant - return CB_SINT8_FIELD; + return SINT8_FIELD; case 3: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 1; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //layer - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //opacities if(ListX2FieldID == 0) //opacities { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Layers.value[ListIndex]->VTXT.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListX2Index >= Layers.value[ListIndex]->VTXT.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //position - return CB_UINT16_FIELD; + return UINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 3: //opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 15: //vertexTextures if(ListFieldID == 0) //vertexTextures { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)VTEX.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= VTEX.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 16: //Position if(ListFieldID == 0) //Position { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -390,79 +390,79 @@ uint32_t LANDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return ListIndex < 33 ? 33 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } if(ListIndex >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; if(ListX2Index >= 33) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListX2FieldID) { case 1: //height - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 2: //normalX - return CB_UINT8_FIELD; + return UINT8_FIELD; case 3: //normalY - return CB_UINT8_FIELD; + return UINT8_FIELD; case 4: //normalZ - return CB_UINT8_FIELD; + return UINT8_FIELD; case 5: //red - return CB_UINT8_FIELD; + return UINT8_FIELD; case 6: //green - return CB_UINT8_FIELD; + return UINT8_FIELD; case 7: //blue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 8: //baseTexture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //alphaLayer1Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //alphaLayer1Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //alphaLayer2Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //alphaLayer2Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //alphaLayer3Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //alphaLayer3Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //alphaLayer4Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 16: //alphaLayer4Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //alphaLayer5Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 18: //alphaLayer5Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 19: //alphaLayer6Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 20: //alphaLayer6Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //alphaLayer7Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 22: //alphaLayer7Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //alphaLayer8Texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 24: //alphaLayer8Opacity - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 17: //Parent - return CB_PARENTRECORD_FIELD; + return PARENTRECORD_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LANDRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/LTEXRecordAPI.cpp b/src/Skyrim/Records/API/LTEXRecordAPI.cpp index 5226789..bbfe2e1 100644 --- a/src/Skyrim/Records/API/LTEXRecordAPI.cpp +++ b/src/Skyrim/Records/API/LTEXRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LTEXRecord.h" +#include "../../../Common.h" +#include "../LTEXRecord.h" namespace Sk { @@ -45,59 +45,59 @@ uint32_t LTEXRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //texture - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //material - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //friction - return CB_UINT8_FIELD; + return UINT8_FIELD; case 10: //restitution - return CB_UINT8_FIELD; + return UINT8_FIELD; case 11: //specularExponent - return CB_UINT8_FIELD; + return UINT8_FIELD; case 12: //grasses switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)GNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LTEXRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/LVLIRecordAPI.cpp b/src/Skyrim/Records/API/LVLIRecordAPI.cpp index 6f4a9f2..c66a0d4 100644 --- a/src/Skyrim/Records/API/LVLIRecordAPI.cpp +++ b/src/Skyrim/Records/API/LVLIRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LVLIRecord.h" +#include "../../../Common.h" +#include "../LVLIRecord.h" namespace Sk { @@ -45,124 +45,124 @@ uint32_t LVLIRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //chanceNone - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 15: //globalId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 16: //entries if(ListFieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //level - return CB_UINT16_FIELD; + return UINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //listId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //count - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 6: //owner - return CB_FORMID_FIELD; + return FORMID_FIELD; case 7: //globalOrRank switch(WhichAttribute) { case 0: //fieldType - return CB_UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; case 2: //WhichType - return Entries.value[ListIndex]->IsGlobal() ? CB_FORMID_FIELD : CB_UINT32_FIELD; + return Entries.value[ListIndex]->IsGlobal() ? FORMID_FIELD : UINT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 8: //condition - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LVLIRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/LVLNRecordAPI.cpp b/src/Skyrim/Records/API/LVLNRecordAPI.cpp index 92fda8c..c04a086 100644 --- a/src/Skyrim/Records/API/LVLNRecordAPI.cpp +++ b/src/Skyrim/Records/API/LVLNRecordAPI.cpp @@ -1,447 +1,447 @@ /* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is CBash code. - * - * The Initial Developer of the Original Code is - * Waruddar. - * Portions created by the Initial Developer are Copyright (C) 2010 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LVLNRecord.h" +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../../Common.h" +#include "../LVLNRecord.h" namespace Sk { -uint32_t LVLNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) - { - switch(FieldID) - { - case 0: //recType - return GetType(); - case 1: //flags1 - return CB_UINT32_FLAG_FIELD; - case 2: //fid - return CB_FORMID_FIELD; - case 3: //versionControl1 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 4; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 4: //eid - return CB_ISTRING_FIELD; - case 5: //formVersion - return CB_UINT16_FIELD; - case 6: //versionControl2 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 7: //boundX1 - return CB_SINT16_FIELD; - case 8: //boundY1 - return CB_SINT16_FIELD; - case 9: //boundZ1 - return CB_SINT16_FIELD; - case 10: //boundX2 - return CB_SINT16_FIELD; - case 11: //boundY2 - return CB_SINT16_FIELD; - case 12: //boundZ2 - return CB_SINT16_FIELD; - case 13: //chanceNone - return CB_UINT8_FIELD; - case 14: //flags - return CB_UINT8_FLAG_FIELD; - case 15: //global - return CB_FORMID_FIELD; - case 16: //entries - if(ListFieldID == 0) //entries - { - switch(WhichAttribute) - { - case 0: //fieldType - return CB_LIST_FIELD; - case 1: //fieldSize - return (uint32_t)Entries.value.size(); - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - } + uint32_t LVLNRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) + { + switch (FieldID) + { + case 0: //recType + return GetType(); + case 1: //flags1 + return UINT32_FLAG_FIELD; + case 2: //fid + return FORMID_FIELD; + case 3: //versionControl1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 4; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 4: //eid + return ISTRING_FIELD; + case 5: //formVersion + return UINT16_FIELD; + case 6: //versionControl2 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 7: //boundX1 + return SINT16_FIELD; + case 8: //boundY1 + return SINT16_FIELD; + case 9: //boundZ1 + return SINT16_FIELD; + case 10: //boundX2 + return SINT16_FIELD; + case 11: //boundY2 + return SINT16_FIELD; + case 12: //boundZ2 + return SINT16_FIELD; + case 13: //chanceNone + return UINT8_FIELD; + case 14: //flags + return UINT8_FLAG_FIELD; + case 15: //global + return FORMID_FIELD; + case 16: //entries + if (ListFieldID == 0) //entries + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)Entries.value.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } - if(ListIndex >= Entries.value.size()) - return CB_UNKNOWN_FIELD; + if (ListIndex >= Entries.value.size()) + return UNKNOWN_FIELD; - switch(ListFieldID) - { - case 1: //level - return CB_UINT16_FIELD; - case 2: //unused1 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 3: //listId - return CB_FORMID_FIELD; - case 4: //count - return CB_SINT16_FIELD; - case 5: //unused2 - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return 2; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 17: //modPath - return CB_ISTRING_FIELD; - case 18: //modt_p - switch(WhichAttribute) - { - case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; - case 1: //fieldSize - return MODL.IsLoaded() ? MODL->MODT.GetSize() : 0; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - case 19: //mods - // TODO: do this - return CB_UNKNOWN_FIELD; - default: - return CB_UNKNOWN_FIELD; - } - return CB_UNKNOWN_FIELD; - } + switch (ListFieldID) + { + case 1: //level + return UINT16_FIELD; + case 2: //unused1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 3: //listId + return FORMID_FIELD; + case 4: //count + return SINT16_FIELD; + case 5: //unused2 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 17: //modPath + return ISTRING_FIELD; + case 18: //modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return MODL.MODT.IsLoaded() ? MODL.MODT.GetSize() : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 19: //mods + // TODO: do this + return UNKNOWN_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } -void * LVLNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) - { - switch(FieldID) - { - case 1: //flags1 - return &flags; - case 2: //fid - return &formID; - case 3: //versionControl1 - *FieldValues = &flagsUnk; - return NULL; - case 4: //eid - return EDID.value; - case 5: //formVersion - return &formVersion; - case 6: //versionControl2 - *FieldValues = &versionControl2[0]; - return NULL; - case 7: //boundX1 - return &OBND.value.x1; - case 8: //boundY1 - return &OBND.value.y1; - case 9: //boundZ1 - return &OBND.value.z1; - case 10: //boundX2 - return &OBND.value.x2; - case 11: //boundY2 - return &OBND.value.y2; - case 12: //boundZ2 - return &OBND.value.z2; - case 13: //chanceNone - return &LVLD.value; - case 14: //flags - return &LVLF.value; - case 15: //global - return LVLG.IsLoaded() ? &LVLG.value : NULL; - case 16: //entries - if(ListIndex >= Entries.value.size()) - return NULL; + void * LVLNRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) + { + switch (FieldID) + { + case 1: //flags1 + return &flags; + case 2: //fid + return &formID; + case 3: //versionControl1 + *FieldValues = &flagsUnk; + return NULL; + case 4: //eid + return EDID.value; + case 5: //formVersion + return &formVersion; + case 6: //versionControl2 + *FieldValues = &versionControl2[0]; + return NULL; + case 7: //boundX1 + return &OBND.value.x1; + case 8: //boundY1 + return &OBND.value.y1; + case 9: //boundZ1 + return &OBND.value.z1; + case 10: //boundX2 + return &OBND.value.x2; + case 11: //boundY2 + return &OBND.value.y2; + case 12: //boundZ2 + return &OBND.value.z2; + case 13: //chanceNone + return &LVLD.value; + case 14: //flags + return &LVLF.value; + case 15: //global + return LVLG.IsLoaded() ? &LVLG.value : NULL; + case 16: //entries + if (ListIndex >= Entries.value.size()) + return NULL; - switch(ListFieldID) - { - case 1: //level - return &Entries.value[ListIndex]->level; - case 2: //unused1 - *FieldValues = &Entries.value[ListIndex]->unused1[0]; - return NULL; - case 3: //listId - return &Entries.value[ListIndex]->listId; - case 4: //count - return &Entries.value[ListIndex]->count; - case 5: //unused2 - *FieldValues = &Entries.value[ListIndex]->unused2[0]; - return NULL; - default: - return NULL; - } - return NULL; - case 17: //modPath - return MODL.IsLoaded() ? MODL->MODL.value : NULL; - case 18: //modt_p - return MODL.IsLoaded() ? MODL->MODT.value : NULL; - case 19: //mods - // TODO: do this - return NULL; - default: - return NULL; - } - return NULL; - } + switch (ListFieldID) + { + case 1: //level + return &Entries.value[ListIndex]->level; + case 2: //unused1 + *FieldValues = &Entries.value[ListIndex]->unused1[0]; + return NULL; + case 3: //listId + return &Entries.value[ListIndex]->listId; + case 4: //count + return &Entries.value[ListIndex]->count; + case 5: //unused2 + *FieldValues = &Entries.value[ListIndex]->unused2[0]; + return NULL; + default: + return NULL; + } + return NULL; + case 17: //modPath + return MODL.MODL.IsLoaded() ? MODL.MODL.value : NULL; + case 18: //modt_p + return MODL.MODT.IsLoaded() ? MODL.MODT.value : NULL; + case 19: //mods + // TODO: do this + return NULL; + default: + return NULL; + } + return NULL; + } -bool LVLNRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) - { - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(*(uint32_t *)FieldValue); - break; - case 3: //versionControl1 - if(ArraySize != 4) - break; - ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; - ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; - ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; - ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; - break; - case 4: //eid - EDID.Copy((char *)FieldValue); - break; - case 5: //formVersion - formVersion = *(uint16_t *)FieldValue; - break; - case 6: //versionControl2 - if(ArraySize != 2) - break; - versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; - versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 7: //boundX1 - OBND.value.x1 = *(int16_t *)FieldValue; - break; - case 8: //boundY1 - OBND.value.y1 = *(int16_t *)FieldValue; - break; - case 9: //boundZ1 - OBND.value.z1 = *(int16_t *)FieldValue; - break; - case 10: //boundX2 - OBND.value.x2 = *(int16_t *)FieldValue; - break; - case 11: //boundY2 - OBND.value.y2 = *(int16_t *)FieldValue; - break; - case 12: //boundZ2 - OBND.value.z2 = *(int16_t *)FieldValue; - break; - case 13: //chanceNone - LVLD.value = *(uint8_t *)FieldValue; - break; - case 14: //flags - SetFlagMask(*(uint8_t *)FieldValue); - break; - case 15: //global - LVLG.value = *(FORMID *)FieldValue; - break; - case 16: //entries - if(ListFieldID == 0) //entriesSize - { - Entries.resize(ArraySize); - return false; - } + bool LVLNRecord::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) + { + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(*(uint32_t *)FieldValue); + break; + case 3: //versionControl1 + if (ArraySize != 4) + break; + ((UINT8ARRAY)&flagsUnk)[0] = ((UINT8ARRAY)FieldValue)[0]; + ((UINT8ARRAY)&flagsUnk)[1] = ((UINT8ARRAY)FieldValue)[1]; + ((UINT8ARRAY)&flagsUnk)[2] = ((UINT8ARRAY)FieldValue)[2]; + ((UINT8ARRAY)&flagsUnk)[3] = ((UINT8ARRAY)FieldValue)[3]; + break; + case 4: //eid + EDID.Copy((char *)FieldValue); + break; + case 5: //formVersion + formVersion = *(uint16_t *)FieldValue; + break; + case 6: //versionControl2 + if (ArraySize != 2) + break; + versionControl2[0] = ((UINT8ARRAY)FieldValue)[0]; + versionControl2[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 7: //boundX1 + OBND.value.x1 = *(int16_t *)FieldValue; + break; + case 8: //boundY1 + OBND.value.y1 = *(int16_t *)FieldValue; + break; + case 9: //boundZ1 + OBND.value.z1 = *(int16_t *)FieldValue; + break; + case 10: //boundX2 + OBND.value.x2 = *(int16_t *)FieldValue; + break; + case 11: //boundY2 + OBND.value.y2 = *(int16_t *)FieldValue; + break; + case 12: //boundZ2 + OBND.value.z2 = *(int16_t *)FieldValue; + break; + case 13: //chanceNone + LVLD.value = *(uint8_t *)FieldValue; + break; + case 14: //flags + SetFlagMask(*(uint8_t *)FieldValue); + break; + case 15: //global + LVLG.value = *(FORMID *)FieldValue; + break; + case 16: //entries + if (ListFieldID == 0) //entriesSize + { + Entries.resize(ArraySize); + return false; + } - if(ListIndex >= Entries.value.size()) - break; + if (ListIndex >= Entries.value.size()) + break; - switch(ListFieldID) - { - case 1: //level - Entries.value[ListIndex]->level = *(uint16_t *)FieldValue; - break; - case 2: //unused1 - if(ArraySize != 2) - break; - Entries.value[ListIndex]->unused1[0] = ((UINT8ARRAY)FieldValue)[0]; - Entries.value[ListIndex]->unused1[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - case 3: //listId - Entries.value[ListIndex]->listId = *(FORMID *)FieldValue; - return true; - case 4: //count - Entries.value[ListIndex]->count = *(int16_t *)FieldValue; - break; - case 5: //unused2 - if(ArraySize != 2) - break; - Entries.value[ListIndex]->unused2[0] = ((UINT8ARRAY)FieldValue)[0]; - Entries.value[ListIndex]->unused2[1] = ((UINT8ARRAY)FieldValue)[1]; - break; - default: - break; - } - break; - case 17: //modPath - MODL.Load(); - MODL->MODL.Copy((char *)FieldValue); - break; - case 18: //modt_p - MODL.Load(); - MODL->MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); - break; - case 19: //mods - // TODO: do this - break; - default: - break; - } - return false; - } + switch (ListFieldID) + { + case 1: //level + Entries.value[ListIndex]->level = *(uint16_t *)FieldValue; + break; + case 2: //unused1 + if (ArraySize != 2) + break; + Entries.value[ListIndex]->unused1[0] = ((UINT8ARRAY)FieldValue)[0]; + Entries.value[ListIndex]->unused1[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + case 3: //listId + Entries.value[ListIndex]->listId = *(FORMID *)FieldValue; + return true; + case 4: //count + Entries.value[ListIndex]->count = *(int16_t *)FieldValue; + break; + case 5: //unused2 + if (ArraySize != 2) + break; + Entries.value[ListIndex]->unused2[0] = ((UINT8ARRAY)FieldValue)[0]; + Entries.value[ListIndex]->unused2[1] = ((UINT8ARRAY)FieldValue)[1]; + break; + default: + break; + } + break; + case 17: //modPath + MODL.MODL.Load(); + MODL.MODL.Copy((char *)FieldValue); + break; + case 18: //modt_p + MODL.MODT.Load(); + MODL.MODT.Copy((UINT8ARRAY)FieldValue, ArraySize); + break; + case 19: //mods + // TODO: do this + break; + default: + break; + } + return false; + } -void LVLNRecord::DeleteField(FIELD_IDENTIFIERS) - { - GENOBND defaultOBND; - LVLLVLO defaultLVLO; - GENCOED defaultCOED; - switch(FieldID) - { - case 1: //flags1 - SetHeaderFlagMask(0); - return; - case 3: //versionControl1 - flagsUnk = 0; - return; - case 4: //eid - EDID.Unload(); - return; - case 5: //formVersion - formVersion = 0; - return; - case 6: //versionControl2 - versionControl2[0] = 0; - versionControl2[1] = 0; - return; - case 7: //boundX1 - OBND.value.x1 = defaultOBND.x1; - return; - case 8: //boundY1 - OBND.value.y1 = defaultOBND.y1; - return; - case 9: //boundZ1 - OBND.value.z1 = defaultOBND.z1; - return; - case 10: //boundX2 - OBND.value.x2 = defaultOBND.x2; - return; - case 11: //boundY2 - OBND.value.y2 = defaultOBND.y2; - return; - case 12: //boundZ2 - OBND.value.z2 = defaultOBND.z2; - return; - case 13: //chanceNone - LVLD.Unload(); - return; - case 14: //flags - LVLF.Unload(); - return; - case 15: //global - LVLG.Unload(); - return; - case 16: //entries - if(ListFieldID == 0) //entriesSize - { - Entries.Unload(); - return; - } + void LVLNRecord::DeleteField(FIELD_IDENTIFIERS) + { + GENOBND defaultOBND; + LVLLVLO defaultLVLO; + GENCOED defaultCOED; + switch (FieldID) + { + case 1: //flags1 + SetHeaderFlagMask(0); + return; + case 3: //versionControl1 + flagsUnk = 0; + return; + case 4: //eid + EDID.Unload(); + return; + case 5: //formVersion + formVersion = 0; + return; + case 6: //versionControl2 + versionControl2[0] = 0; + versionControl2[1] = 0; + return; + case 7: //boundX1 + OBND.value.x1 = defaultOBND.x1; + return; + case 8: //boundY1 + OBND.value.y1 = defaultOBND.y1; + return; + case 9: //boundZ1 + OBND.value.z1 = defaultOBND.z1; + return; + case 10: //boundX2 + OBND.value.x2 = defaultOBND.x2; + return; + case 11: //boundY2 + OBND.value.y2 = defaultOBND.y2; + return; + case 12: //boundZ2 + OBND.value.z2 = defaultOBND.z2; + return; + case 13: //chanceNone + LVLD.Unload(); + return; + case 14: //flags + LVLF.Unload(); + return; + case 15: //global + LVLG.Unload(); + return; + case 16: //entries + if (ListFieldID == 0) //entriesSize + { + Entries.Unload(); + return; + } - if(ListIndex >= Entries.value.size()) - return; + if (ListIndex >= Entries.value.size()) + return; - switch(ListFieldID) - { - case 1: //level - Entries.value[ListIndex]->level = defaultLVLO.level; - return; - case 2: //unused1 - Entries.value[ListIndex]->unused1[0] = defaultLVLO.unused1[0]; - Entries.value[ListIndex]->unused1[1] = defaultLVLO.unused1[1]; - return; - case 3: //listId - Entries.value[ListIndex]->listId = defaultLVLO.listId; - return; - case 4: //count - Entries.value[ListIndex]->count = defaultLVLO.count; - return; - case 5: //unused2 - Entries.value[ListIndex]->unused2[0] = defaultLVLO.unused2[0]; - Entries.value[ListIndex]->unused2[1] = defaultLVLO.unused2[1]; - return; - default: - return; - } - return; - case 17: //modPath - if (MODL.IsLoaded()) - MODL->MODL.Unload(); - return; - case 18: //modt_p - if (MODL.IsLoaded()) - MODL->MODT.Unload(); - return; - case 19: //mods - // TODO: do this - return; - default: - return; - } - } + switch (ListFieldID) + { + case 1: //level + Entries.value[ListIndex]->level = defaultLVLO.level; + return; + case 2: //unused1 + Entries.value[ListIndex]->unused1[0] = defaultLVLO.unused1[0]; + Entries.value[ListIndex]->unused1[1] = defaultLVLO.unused1[1]; + return; + case 3: //listId + Entries.value[ListIndex]->listId = defaultLVLO.listId; + return; + case 4: //count + Entries.value[ListIndex]->count = defaultLVLO.count; + return; + case 5: //unused2 + Entries.value[ListIndex]->unused2[0] = defaultLVLO.unused2[0]; + Entries.value[ListIndex]->unused2[1] = defaultLVLO.unused2[1]; + return; + default: + return; + } + return; + case 17: //modPath + if (MODL.MODL.IsLoaded()) + MODL.MODL.Unload(); + return; + case 18: //modt_p + if (MODL.MODT.IsLoaded()) + MODL.MODT.Unload(); + return; + case 19: //mods + // TODO: do this + return; + default: + return; + } + } } // namespace Sk diff --git a/src/Skyrim/Records/API/LVSPRecordAPI.cpp b/src/Skyrim/Records/API/LVSPRecordAPI.cpp index 167b3c3..a8bc956 100644 --- a/src/Skyrim/Records/API/LVSPRecordAPI.cpp +++ b/src/Skyrim/Records/API/LVSPRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\LVSPRecord.h" +#include "../../../Common.h" +#include "../LVSPRecord.h" namespace Sk { @@ -45,107 +45,107 @@ uint32_t LVSPRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //chanceNone - return CB_UINT8_FIELD; + return UINT8_FIELD; case 14: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 15: //entries if(ListFieldID == 0) //entries { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)Entries.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= Entries.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //level - return CB_UINT16_FIELD; + return UINT16_FIELD; case 2: //unused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 3: //listId - return CB_FORMID_FIELD; + return FORMID_FIELD; case 4: //count - return CB_SINT16_FIELD; + return SINT16_FIELD; case 5: //unused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * LVSPRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/MATTRecordAPI.cpp b/src/Skyrim/Records/API/MATTRecordAPI.cpp index 0d2c5b2..57bcdf9 100644 --- a/src/Skyrim/Records/API/MATTRecordAPI.cpp +++ b/src/Skyrim/Records/API/MATTRecordAPI.cpp @@ -34,8 +34,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\MATTRecord.h" +#include "../../../Common.h" +#include "../MATTRecord.h" namespace Sk { @@ -47,55 +47,55 @@ uint32_t MATTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch (WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch (WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //materialParent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 8: //materialName - return CB_STRING_FIELD; + return STRING_FIELD; case 9: //havokRed - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 10: //havokGreen - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 11: //havokBlue - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 12: //bouyancy - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 13: //flags - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 14: //havokIPDS - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * MATTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/NPC_RecordAPI.cpp b/src/Skyrim/Records/API/NPC_RecordAPI.cpp new file mode 100644 index 0000000..8580382 --- /dev/null +++ b/src/Skyrim/Records/API/NPC_RecordAPI.cpp @@ -0,0 +1,481 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Dienes. +* Portions created by the Initial Developer are Copyright (C) 2014 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../NPC_Record.h" + +namespace Sk +{ + +// VMAD not accessible via API + +uint32_t NPC_Record::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribute) +{ + switch (FieldID) + { + case 0: //recType + return GetType(); + case 1: //flags1 + return UINT32_FLAG_FIELD; + case 2: //fid + return FORMID_FIELD; + case 3: //versionControl1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 4; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 4: //eid + return ISTRING_FIELD; + case 5: //formVersion + return UINT16_FIELD; + case 6: //versionControl2 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 2; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + // start OBND + case 7: //boundX1 + return SINT16_FIELD; + case 8: //boundY1 + return SINT16_FIELD; + case 9: //boundZ1 + return SINT16_FIELD; + case 10: //boundX2 + return SINT16_FIELD; + case 11: //boundY2 + return SINT16_FIELD; + case 12: //boundZ2 + return SINT16_FIELD; + // start ACBS + case 13: // flags + return UINT32_FLAG_FIELD; + case 14: // magickaOffset + return UINT16_FIELD; + case 15: // staminaOffset + return UINT16_FIELD; + case 16: // Level or level mult + return SINT16_FIELD; + case 17: // calcMinLevel + return UINT16_FIELD; + case 18: // calcMaxLevel + return UINT16_FIELD; + case 19: // speedMultiplier + return UINT16_FIELD; + case 20: // dispositionBase_unused + return SINT16_FIELD; + case 21: // templateFlags + return UINT16_FLAG_FIELD; + case 22: // healthOffset + return UINT16_FIELD; + case 23: // bleedoutOverride + return UINT16_FIELD; + // start SNAM + case 24: // faction + if (ListFieldID == 0) //factions + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return SNAM.IsLoaded() ? (uint32_t)SNAM.value.size() : 0; + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= SNAM.value.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //faction + return FORMID_FIELD; + case 2: //rank + return UINT8_FIELD; + case 3: //unused1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return 3; + default: + return UNKNOWN_FIELD; + } + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 25: // INAM - death item + return FORMID_FIELD; + case 26: // VTCK - voice + return FORMID_FIELD; + case 27: // TPLT template + return FORMID_FIELD; + case 28: // RNAM + return FORMID_FIELD; + // start SPLO + case 29: // SPLO + switch (WhichAttribute) + { + case 0: //fieldType + return FORMID_ARRAY_FIELD; + case 1: //fieldSize + return SPLO.value.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + // start destructables + //DEST header + case 30: //destructableHealth + return SINT32_FIELD; + case 31: //destructableCount + return UINT8_FIELD; + case 32: //destructableFlags + return UINT8_FLAG_FIELD; + case 33: //destructableUnused1 + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return Destructable.IsLoaded() ? 2 : 0; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 34: //destructableStages + if (!Destructable.IsLoaded()) + return UNKNOWN_FIELD; + + if (ListFieldID == 0) //destructableStages + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)Destructable->Stages.value.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= Destructable->Stages.value.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: //health + return UINT8_FIELD; + case 2: //index + return UINT8_FIELD; + case 3: //stage + return UINT8_FIELD; + case 4: //flags + return UINT8_FLAG_FIELD; + case 5: //dps + return SINT32_FIELD; + case 6: //explosion + return FORMID_FIELD; + case 7: //debris + return FORMID_FIELD; + case 8: //debrisCount + return SINT32_FIELD; + case 9: //modPath + return ISTRING_FIELD; + case 10: //modt_p + switch (WhichAttribute) + { + case 0: //fieldType + return UINT8_ARRAY_FIELD; + case 1: //fieldSize + return Destructable->Stages.value[ListIndex]->DMDT.GetSize(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 11: //altTextures + if (ListX2FieldID == 0) //altTextures + { + switch (WhichAttribute) + { + case 1: //fieldType + return LIST_FIELD; + case 2: //fieldSize + return Destructable->Stages.value[ListIndex]->DMDS.MODS.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + } + if (ListX2Index >= Destructable->Stages.value[ListIndex]->DMDS.MODS.size()) + return UNKNOWN_FIELD; + switch (ListX2FieldID) + { + case 1: //name + return STRING_FIELD; + case 2: //texture + return FORMID_FIELD; + case 3: //index + return SINT32_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + // end DEST + case 35: // WNAM + return FORMID_FIELD; + case 36: // ANAM + return FORMID_FIELD; + case 37: // ATKR + return FORMID_FIELD; + // start attacks + case 38: + if (ListFieldID == 0) // attacks + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)attacks.value.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= attacks.value.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: // damageMult + return FLOAT32_FIELD; + case 2: // attackChance + return FLOAT32_FIELD; + case 3: // attackSpell + return FORMID_FIELD; + case 4: // flags + return UINT32_FLAG_TYPE_FIELD; + case 5: // attackAngle + return FLOAT32_FIELD; + case 6: // strikeAngle + return FLOAT32_FIELD; + case 7: // stagger + return FLOAT32_FIELD; + case 8: // attackType + return FORMID_FIELD; + case 9: // knockdown + return FLOAT32_FIELD; + case 10: // recoveryTime + return FLOAT32_FIELD; + case 11: // fatigueMult + return FLOAT32_FIELD; + case 12: // ATKE + return ISTRING_FIELD; + default: + return UNKNOWN_FIELD; + } + //end attacks + case 39: // SPOR + return FORMID_FIELD; + case 40: // OCOR + return FORMID_FIELD; + case 41: // GWOR + return FORMID_FIELD; + case 42: // ECOR + return FORMID_FIELD; + // start Perks + case 43: // PRKR + if (ListFieldID == 0) // perks + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)PRKR.value.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= PRKR.value.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: // perk + return FORMID_FIELD; + case 2: // rank + return UINT8_TYPE_FIELD; + case 3: // unused + case 4: + case 5: + return UNKNOWN_FIELD; + default: + return UNKNOWN_FIELD; + } + // end perks + // start items + case 44: + if (ListFieldID == 0) // items + { + switch (WhichAttribute) + { + case 0: //fieldType + return LIST_FIELD; + case 1: //fieldSize + return (uint32_t)CNTO.value.size(); + default: + return UNKNOWN_FIELD; + } + } + + if (ListIndex >= CNTO.value.size()) + return UNKNOWN_FIELD; + + switch (ListFieldID) + { + case 1: // CNTO item + return FORMID_FIELD; + case 2: // CNTO count + return UINT32_TYPE_FIELD; + case 3: // COED owner + return FORMID_FIELD; + case 4: // COED globalOrRank + switch (WhichAttribute) + { + case 0: //fieldType + return UNKNOWN_OR_FORMID_OR_UINT32_FIELD; + case 2: //WhichType + return FORMID_FIELD; + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 5: //condition + return FLOAT32_FIELD; + default: + return UNKNOWN_FIELD; + } + // end items + // start AIDT + case 45: // aggression + case 46: // confidence + case 47: // energyLevel + case 48: // responsibility + case 49: // mood + case 50: // assistance + return UINT8_TYPE_FIELD; + case 51: // agro agroRadiusBehavior + case 52: // agro unused + return UINT8_TYPE_FIELD; + case 53: // warn + case 54: // warnAttack + case 55: // attack + return UINT32_TYPE_FIELD; + // end AIDT + case 56: // packages + switch (WhichAttribute) + { + case 0: //fieldType + return FORMID_ARRAY_FIELD; + case 1: //fieldSize + return PKID.value.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 57: // keywords + switch (WhichAttribute) + { + case 0: //fieldType + return FORMID_ARRAY_FIELD; + case 1: //fieldSize + return KWDA.value.size(); + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; + case 58: // CNAM + return FORMID_FIELD; + case 59: // FULL + return STRING_FIELD; + case 60: // SHRT + return STRING_FIELD; + case 61: // DNAM + + + default: + return UNKNOWN_FIELD; + } + return UNKNOWN_FIELD; +} + +void * NPC_Record::GetField(FIELD_IDENTIFIERS, void **FieldValues) +{ + return NULL; +} + +bool NPC_Record::SetField(FIELD_IDENTIFIERS, void *FieldValue, uint32_t ArraySize) +{ + return true; +} + +void NPC_Record::DeleteField(FIELD_IDENTIFIERS) +{ + +} + +} // namespace Sk \ No newline at end of file diff --git a/src/Skyrim/Records/API/OTFTRecordAPI.cpp b/src/Skyrim/Records/API/OTFTRecordAPI.cpp index c29e0f8..8000cb2 100644 --- a/src/Skyrim/Records/API/OTFTRecordAPI.cpp +++ b/src/Skyrim/Records/API/OTFTRecordAPI.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\OTFTRecord.h" +#include "../OTFTRecord.h" namespace Sk { @@ -44,50 +44,50 @@ uint32_t OTFTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //items switch (WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize - return INAM.value.size(); + return (uint32_t)INAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * OTFTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/PACKRecordAPI.cpp b/src/Skyrim/Records/API/PACKRecordAPI.cpp new file mode 100644 index 0000000..3c85033 --- /dev/null +++ b/src/Skyrim/Records/API/PACKRecordAPI.cpp @@ -0,0 +1,91 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../../Common.h" +#include "../PACKRecord.h" + +namespace Sk +{ + + void PACKRecord::addLocationTemplateSetting(PACKRecord::PACKPLDT location, int unamRecordIndex) { + PACKACTIVITY p = PACKACTIVITY(); + p.writtenPLDT = location; + TDAT.ANAM.push_back("Location"); + TDAT.cnamData.push_back(p); + TDAT.unamData.push_back(unamRecordIndex); + } + + void PACKRecord::addBoolTemplateSetting(bool setting, int unamRecordIndex) { + PACKACTIVITY p = PACKACTIVITY(); + p.writtenBool = setting; + TDAT.ANAM.push_back("Bool"); + TDAT.cnamData.push_back(p); + TDAT.unamData.push_back(unamRecordIndex); + } + + void PACKRecord::addIntTemplateSetting(int setting, int unamRecordIndex) { + PACKACTIVITY p = PACKACTIVITY(); + p.writtenInt = setting; + TDAT.ANAM.push_back("Int"); + TDAT.cnamData.push_back(p); + TDAT.unamData.push_back(unamRecordIndex); + } + + void PACKRecord::addFloatTemplateSetting(float setting, int unamRecordIndex) { + PACKACTIVITY p = PACKACTIVITY(); + p.writtenFloat = setting; + TDAT.ANAM.push_back("Float"); + TDAT.cnamData.push_back(p); + TDAT.unamData.push_back(unamRecordIndex); + } + + void PACKRecord::addObjectListTemplateSetting(float setting, int unamRecordIndex) { + PACKACTIVITY p = PACKACTIVITY(); + p.writtenFloat = setting; + TDAT.ANAM.push_back("ObjectList"); + TDAT.cnamData.push_back(p); + TDAT.unamData.push_back(unamRecordIndex); + } + + + void PACKRecord::addTargetTemplateSetting(char* name, PACKRecord::PACKPTDA target, int unamRecordIndex) { + PACKACTIVITY p = PACKACTIVITY(); + p.writtenPTDA = target; + TDAT.ANAM.push_back(name); + TDAT.cnamData.push_back(p); + TDAT.unamData.push_back(unamRecordIndex); + } + +} \ No newline at end of file diff --git a/src/Skyrim/Records/API/SHOURecordAPI.cpp b/src/Skyrim/Records/API/SHOURecordAPI.cpp index 6441988..81cda05 100644 --- a/src/Skyrim/Records/API/SHOURecordAPI.cpp +++ b/src/Skyrim/Records/API/SHOURecordAPI.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\SHOURecord.h" +#include "../SHOURecord.h" namespace Sk { @@ -45,71 +45,71 @@ uint32_t SHOURecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //model - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //words if (ListFieldID == 0) { switch (WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize - return SNAM.value.size(); + return (uint32_t)SNAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if (ListFieldID >= SNAM.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch (ListFieldID) { case 1: //word - return CB_FORMID_FIELD; + return FORMID_FIELD; case 2: //spell - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //recovery - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * SHOURecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/TXSTRecordAPI.cpp b/src/Skyrim/Records/API/TXSTRecordAPI.cpp index c8ed094..5c65e79 100644 --- a/src/Skyrim/Records/API/TXSTRecordAPI.cpp +++ b/src/Skyrim/Records/API/TXSTRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\TXSTRecord.h" +#include "../../../Common.h" +#include "../TXSTRecord.h" namespace Sk { @@ -45,111 +45,111 @@ uint32_t TXSTRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //boundX1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 8: //boundY1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 9: //boundZ1 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 10: //boundX2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 11: //boundY2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 12: //boundZ2 - return CB_SINT16_FIELD; + return SINT16_FIELD; case 13: //baseImageOrTransparency - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 14: //normalMapOrSpecular - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 15: //envMapMaskOrUnk - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 16: //glowMapOrUnused - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 17: //parallaxMapOrUnused - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 18: //envMapOrUnused - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 19: //decalMinWidth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 20: //decalMaxWidth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 21: //decalMinHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 22: //decalMaxHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 23: //decalDepth - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 24: //decalShininess - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 25: //decalScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //decalPasses - return CB_UINT8_FIELD; + return UINT8_FIELD; case 27: //decalFlags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 28: //decalUnused1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DODT.IsLoaded() ? 2 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 29: //decalRed - return CB_UINT8_FIELD; + return UINT8_FIELD; case 30: //decalGreen - return CB_UINT8_FIELD; + return UINT8_FIELD; case 31: //decalBlue - return CB_UINT8_FIELD; + return UINT8_FIELD; case 32: //decalUnused2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DODT.IsLoaded() ? 1 : 0; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 33: //flags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * TXSTRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/VTYPRecordAPI.cpp b/src/Skyrim/Records/API/VTYPRecordAPI.cpp index 4fd4a2e..4e1bdd9 100644 --- a/src/Skyrim/Records/API/VTYPRecordAPI.cpp +++ b/src/Skyrim/Records/API/VTYPRecordAPI.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\VTYPRecord.h" +#include "../VTYPRecord.h" namespace Sk { @@ -44,41 +44,41 @@ uint32_t VTYPRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * VTYPRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/WOOPRecordAPI.cpp b/src/Skyrim/Records/API/WOOPRecordAPI.cpp index dffd9a6..7b1f152 100644 --- a/src/Skyrim/Records/API/WOOPRecordAPI.cpp +++ b/src/Skyrim/Records/API/WOOPRecordAPI.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\WOOPRecord.h" +#include "../WOOPRecord.h" namespace Sk { @@ -44,43 +44,43 @@ uint32_t WOOPRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //translation - return CB_STRING_FIELD; + return STRING_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * WOOPRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/API/WRLDRecordAPI.cpp b/src/Skyrim/Records/API/WRLDRecordAPI.cpp index babead2..da42983 100644 --- a/src/Skyrim/Records/API/WRLDRecordAPI.cpp +++ b/src/Skyrim/Records/API/WRLDRecordAPI.cpp @@ -33,8 +33,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\..\Common.h" -#include "..\WRLDRecord.h" +#include "../../../Common.h" +#include "../WRLDRecord.h" namespace Sk { @@ -45,172 +45,172 @@ uint32_t WRLDRecord::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //versionControl1 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 4: //eid - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 5: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 6: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 7: //full - return CB_STRING_FIELD; + return STRING_FIELD; case 8: //encounterZone - return CB_FORMID_FIELD; + return FORMID_FIELD; case 9: //parent - return CB_FORMID_FIELD; + return FORMID_FIELD; case 10: //parentFlags - return CB_UINT16_FLAG_FIELD; + return UINT16_FLAG_FIELD; case 11: //climate - return CB_FORMID_FIELD; + return FORMID_FIELD; case 12: //water - return CB_FORMID_FIELD; + return FORMID_FIELD; case 13: //lodWater - return CB_FORMID_FIELD; + return FORMID_FIELD; case 14: //lodWaterHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 15: //defaultLandHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 16: //defaultWaterHeight - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 17: //iconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 18: //smallIconPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 19: //dimX - return CB_SINT32_FIELD; + return SINT32_FIELD; case 20: //dimY - return CB_SINT32_FIELD; + return SINT32_FIELD; case 21: //NWCellX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 22: //NWCellY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 23: //SECellX - return CB_SINT16_FIELD; + return SINT16_FIELD; case 24: //SECellY - return CB_SINT16_FIELD; + return SINT16_FIELD; case 25: //mapScale - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 26: //xCellOffset - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 27: //yCellOffset - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 28: //imageSpace - return CB_FORMID_FIELD; + return FORMID_FIELD; case 29: //flags - return CB_UINT8_FLAG_FIELD; + return UINT8_FLAG_FIELD; case 30: //xMinObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 31: //yMinObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 32: //xMaxObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 33: //yMaxObjBounds - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 34: //music - return CB_FORMID_FIELD; + return FORMID_FIELD; case 35: //canopyShadowPath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 36: //waterNoisePath - return CB_ISTRING_FIELD; + return ISTRING_FIELD; case 37: //swappedImpacts if(ListFieldID == 0) //swappedImpacts { switch(WhichAttribute) { case 0: //fieldType - return CB_LIST_FIELD; + return LIST_FIELD; case 1: //fieldSize return (uint32_t)IMPS.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } if(ListIndex >= IMPS.value.size()) - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; switch(ListFieldID) { case 1: //material - return CB_UINT32_TYPE_FIELD; + return UINT32_TYPE_FIELD; case 2: //oldImpact - return CB_FORMID_FIELD; + return FORMID_FIELD; case 3: //newImpact - return CB_FORMID_FIELD; + return FORMID_FIELD; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 38: //concSolid - return CB_STRING_FIELD; + return STRING_FIELD; case 39: //concBroken - return CB_STRING_FIELD; + return STRING_FIELD; case 40: //metalSolid - return CB_STRING_FIELD; + return STRING_FIELD; case 41: //metalHollow - return CB_STRING_FIELD; + return STRING_FIELD; case 42: //metalSheet - return CB_STRING_FIELD; + return STRING_FIELD; case 43: //wood - return CB_STRING_FIELD; + return STRING_FIELD; case 44: //sand - return CB_STRING_FIELD; + return STRING_FIELD; case 45: //dirt - return CB_STRING_FIELD; + return STRING_FIELD; case 46: //grass - return CB_STRING_FIELD; + return STRING_FIELD; case 47: //water - return CB_STRING_FIELD; + return STRING_FIELD; case 48: //ofst_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return OFST.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; case 49: //CELL - return CB_SUBRECORD_FIELD; + return SUBRECORD_FIELD; case 50: //CELLS switch(WhichAttribute) { case 0: //fieldType - return CB_SUBRECORD_ARRAY_FIELD; + return SUBRECORD_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)CELLS.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } void * WRLDRecord::GetField(FIELD_IDENTIFIERS, void **FieldValues) diff --git a/src/Skyrim/Records/APPARecord.cpp b/src/Skyrim/Records/APPARecord.cpp index 0619dc5..5f50351 100644 --- a/src/Skyrim/Records/APPARecord.cpp +++ b/src/Skyrim/Records/APPARecord.cpp @@ -34,8 +34,8 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" -#include "..\..\ModFile.h" +#include "../../Common.h" +#include "../../ModFile.h" #include "APPARecord.h" namespace Sk { @@ -159,7 +159,10 @@ int32_t APPARecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); break; case REV32(MODL): - MODL.Read(buffer, subSize); + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); break; case REV32(ICON): ICON.Read(buffer, subSize, CompressedOnDisk); @@ -186,11 +189,8 @@ int32_t APPARecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - //printer("Filename = %s\n", FileName); - printer(" APPA: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } @@ -206,7 +206,6 @@ int32_t APPARecord::Unload() VMAD.Unload(); OBND.Unload(); FULL.Unload(); - MODL.Unload(); ICON.Unload(); MICO.Unload(); DEST.Unload(); @@ -224,7 +223,7 @@ int32_t APPARecord::WriteRecord(FileWriter &writer) WRITE(VMAD); WRITE(OBND); WRITE(FULL); - WRITE(MODL); + MODL.Write(writer); WRITE(ICON); WRITE(MICO); WRITE(DEST); diff --git a/src/Skyrim/Records/APPARecord.h b/src/Skyrim/Records/APPARecord.h index 9335488..f31acaa 100644 --- a/src/Skyrim/Records/APPARecord.h +++ b/src/Skyrim/Records/APPARecord.h @@ -35,9 +35,10 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" -#include "..\SkyrimCommon.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimCommon.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -61,7 +62,7 @@ class APPARecord : public TES5Record // Apparatus record VMADRecord VMAD; // VM data ReqSubRecord OBND; // Object Bounds LStringRecord FULL; // Full Name - OptSubRecord MODL; // Model + MODEL MODL; // Model StringRecord ICON; // Inventory image filename StringRecord MICO; // Message image filename OptSubRecord DEST; // Destruction data @@ -88,6 +89,7 @@ class APPARecord : public TES5Record // Apparatus record int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const APPARecord &other) const; bool operator !=(const APPARecord &other) const; diff --git a/src/Skyrim/Records/ARMORecord.cpp b/src/Skyrim/Records/ARMORecord.cpp new file mode 100644 index 0000000..27bb26a --- /dev/null +++ b/src/Skyrim/Records/ARMORecord.cpp @@ -0,0 +1,419 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "ARMORecord.h" + +namespace Sk +{ + ARMORecord::ARMORecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + ARMORecord::ARMORecord(ARMORecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + EITM = srcRecord->EITM; + EAMT = srcRecord->EAMT; + MOD2 = srcRecord->MOD2; + MO2T = srcRecord->MO2T; + MO2S = srcRecord->MO2S; + ICON = srcRecord->ICON; + MICO = srcRecord->MICO; + MOD4 = srcRecord->MOD4; + MO4T = srcRecord->MO4T; + MO4S = srcRecord->MO4S; + ICO2 = srcRecord->ICO2; + MIC2 = srcRecord->MIC2; + BODT = srcRecord->BODT; + BOD2 = srcRecord->BOD2; + DEST = srcRecord->DEST; + YNAM = srcRecord->YNAM; + ZNAM = srcRecord->ZNAM; + ETYP = srcRecord->ETYP; + BIDS = srcRecord->BIDS; + BAMT = srcRecord->BAMT; + RNAM = srcRecord->RNAM; + KWDA = srcRecord->KWDA; + DESC = srcRecord->DESC; + MODL = srcRecord->MODL; + DATA = srcRecord->DATA; + DNAM = srcRecord->DNAM; + TNAM = srcRecord->TNAM; + + if (!srcRecord->IsChanged()) + return; + + return; + } + + ARMORecord::~ARMORecord() + { + // + } + + uint32_t ARMORecord::GetType() + { + return REV32(ARMO); + } + + char * ARMORecord::GetStrType() + { + return "ARMO"; + } + + + bool ARMORecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //TODO - implement VisitFormIDs for struct GENOBND + + if (EITM.IsLoaded()) { + op.Accept(EITM.value); + } + if (DEST.IsLoaded()) { + //TODO - implement VisitFormIDs for struct GENDESTRUCT + } + op.Accept(YNAM.value); + op.Accept(ZNAM.value); + if (ETYP.IsLoaded()) { + op.Accept(ETYP.value); + } + if (BIDS.IsLoaded()) { + op.Accept(BIDS.value); + } + if (BAMT.IsLoaded()) { + op.Accept(BAMT.value); + } + op.Accept(RNAM.value); + if (KWDA.IsLoaded()) { + for (uint32_t i = 0; i < KWDA.value.size(); ++i) { + + op.Accept(KWDA.value[i]); + + }; + } + if (MODL.IsLoaded()) { + for (uint32_t i = 0; i < MODL.value.size(); ++i) { + + op.Accept(MODL.value[i]); + + }; + } + if (DATA.IsLoaded()) { + //TODO - implement VisitFormIDs for struct ARMODATA + } + if (TNAM.IsLoaded()) { + op.Accept(TNAM.value); + } + + return op.Stop(); + } + + + int32_t ARMORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(EITM): + EITM.Read(buffer, subSize); + break; + case REV32(EAMT): + EAMT.Read(buffer, subSize); + break; + case REV32(MOD2): + MOD2.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MO2T): + MO2T.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MO2S): + MO2S.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(ICON): + ICON.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MICO): + MICO.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MOD4): + MOD4.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MO4T): + MO4T.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MO4S): + MO4S.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(ICO2): + ICO2.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MIC2): + MIC2.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(BODT): + BODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(BOD2): + BOD2.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(DEST): + DEST.Read(buffer, subSize); + break; + case REV32(YNAM): + YNAM.Read(buffer, subSize); + break; + case REV32(ZNAM): + ZNAM.Read(buffer, subSize); + break; + case REV32(ETYP): + ETYP.Read(buffer, subSize); + break; + case REV32(BIDS): + BIDS.Read(buffer, subSize); + break; + case REV32(BAMT): + BAMT.Read(buffer, subSize); + break; + case REV32(RNAM): + RNAM.Read(buffer, subSize); + break; + case REV32(KSIZ): + // Ignore on read + buffer += subSize; + break; + case REV32(KWDA): + KWDA.Read(buffer, subSize); + break; + case REV32(DESC): + DESC.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(MODL): + MODL.Read(buffer, subSize); + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + case REV32(DNAM): + DNAM.Read(buffer, subSize); + break; + case REV32(TNAM): + TNAM.Read(buffer, subSize); + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t ARMORecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + OBND.Unload(); + FULL.Unload(); + EITM.Unload(); + EAMT.Unload(); + MOD2.Unload(); + MO2T.Unload(); + MO2S.Unload(); + ICON.Unload(); + MICO.Unload(); + MOD4.Unload(); + MO4T.Unload(); + MO4S.Unload(); + ICO2.Unload(); + MIC2.Unload(); + BODT.Unload(); + BOD2.Unload(); + DEST.Unload(); + YNAM.Unload(); + ZNAM.Unload(); + ETYP.Unload(); + BIDS.Unload(); + BAMT.Unload(); + RNAM.Unload(); + KWDA.Unload(); + DESC.Unload(); + MODL.Unload(); + DATA.Unload(); + DNAM.Unload(); + TNAM.Unload(); + + return 1; + } + + int32_t ARMORecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + WRITE(FULL); + WRITE(EITM); + WRITE(EAMT); + WRITE(MOD2); + WRITE(MO2T); + WRITE(MO2S); + WRITE(ICON); + WRITE(MICO); + WRITE(MOD4); + WRITE(MO4T); + WRITE(MO4S); + WRITE(ICO2); + WRITE(MIC2); + WRITE(BODT); + WRITE(BOD2); + WRITE(DEST); + WRITE(YNAM); + WRITE(ZNAM); + WRITE(ETYP); + WRITE(BIDS); + WRITE(BAMT); + WRITE(RNAM); + WRITE(KWDA); + WRITE(DESC); + WRITE(MODL); + WRITE(DATA); + WRITE(DNAM); + WRITE(TNAM); + return -1; + } + + bool ARMORecord::operator ==(const ARMORecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + OBND == other.OBND && + FULL.equalsi(other.FULL) && + EITM == other.EITM && + EAMT == other.EAMT && + MOD2.equalsi(other.MOD2) && + MO2T == other.MO2T && + MO2S == other.MO2S && + ICON.equalsi(other.ICON) && + MICO.equalsi(other.MICO) && + MOD4.equalsi(other.MOD4) && + MO4T == other.MO4T && + MO4S == other.MO4S && + ICO2.equalsi(other.ICO2) && + MIC2.equalsi(other.MIC2) && + BODT == other.BODT && + BOD2 == other.BOD2 && + DEST == other.DEST && + YNAM == other.YNAM && + ZNAM == other.ZNAM && + ETYP == other.ETYP && + BIDS == other.BIDS && + BAMT == other.BAMT && + RNAM == other.RNAM && + KWDA == other.KWDA && + DESC.equalsi(other.DESC) && + MODL == other.MODL && + DATA == other.DATA && + DNAM == other.DNAM && + TNAM == other.TNAM); + } + + bool ARMORecord::operator !=(const ARMORecord &other) const + { + return !(*this == other); + } + + bool ARMORecord::equals(Record *other) + { + return *this == *(ARMORecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/ARMORecord.h b/src/Skyrim/Records/ARMORecord.h new file mode 100644 index 0000000..0917956 --- /dev/null +++ b/src/Skyrim/Records/ARMORecord.h @@ -0,0 +1,115 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + struct ARMODATA { + uint32_t value; + float weight; + + bool operator ==(const ARMODATA &other) const { + + return (this->value == other.value && + this->weight == other.weight); + + } + + bool operator !=(const ARMODATA &other) const { + return !(*this == other); + } + }; + + + class ARMORecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + VMADRecord VMAD; // VM data + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // ambient + OptSimpleSubRecord EITM; // Enchantment + OptSimpleSubRecord EAMT; // Enchantment Amount + StringRecord MOD2; + RawRecord MO2T; + RawRecord MO2S; + StringRecord ICON; + StringRecord MICO; + StringRecord MOD4; + RawRecord MO4T; + RawRecord MO4S; + StringRecord ICO2; + StringRecord MIC2; + RawRecord BODT; + RawRecord BOD2; + OptSubRecord DEST; // Destruction data + ReqSimpleSubRecord YNAM; // Sound - pick up + ReqSimpleSubRecord ZNAM; // Sound - drop + OptSimpleSubRecord ETYP; // Enchantment + OptSimpleSubRecord BIDS; // Enchantment + OptSimpleSubRecord BAMT; // Enchantment + ReqSimpleSubRecord RNAM; // Enchantment + OptCounted, uint32_t, REV32(KSIZ)> KWDA; + LStringRecord DESC; // Description + UnorderedSparseArray MODL; + OptSubRecord DATA; + ReqSimpleSubRecord DNAM; // Armor rating + OptSimpleSubRecord TNAM; // Template + //ONAM; + + ARMORecord(unsigned char *_recData = NULL); + ARMORecord(ARMORecord *srcRecord); + ~ARMORecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const ARMORecord &other) const; + bool operator !=(const ARMORecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/ARTORecord.cpp b/src/Skyrim/Records/ARTORecord.cpp index bdc4471..0fba911 100644 --- a/src/Skyrim/Records/ARTORecord.cpp +++ b/src/Skyrim/Records/ARTORecord.cpp @@ -34,7 +34,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ARTORecord.h" namespace Sk { @@ -133,22 +133,17 @@ int32_t ARTORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer OBND.Read(buffer, subSize); break; case REV32(MODL): - MODL.Load(); - MODL->MODL.Read(buffer, subSize, CompressedOnDisk); + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); break; case REV32(MODT): - MODL.Load(); - //MODL->MODT.Read(buffer, subSize, CompressedOnDisk); + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); break; case REV32(DNAM): DNAM.Read(buffer, subSize); break; default: - //printer("Filename = %s\n", FileName); - printer(" AARTO: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } @@ -162,7 +157,6 @@ int32_t ARTORecord::Unload() IsChanged(false); EDID.Unload(); OBND.Unload(); - MODL.Unload(); DNAM.Unload(); return 1; } @@ -171,7 +165,7 @@ int32_t ARTORecord::WriteRecord(FileWriter &writer) { WRITE(EDID); WRITE(OBND); - WRITE(MODL); + MODL.Write(writer); WRITE(DNAM); return -1; } diff --git a/src/Skyrim/Records/ARTORecord.h b/src/Skyrim/Records/ARTORecord.h index 8ac1214..755ff69 100644 --- a/src/Skyrim/Records/ARTORecord.h +++ b/src/Skyrim/Records/ARTORecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" -#include "..\SkyrimChunks.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -53,7 +53,7 @@ class ARTORecord : public TES5Record // Action record public: StringRecord EDID; // Editor ID ReqSubRecord OBND; // Bounds - SemiOptSubRecord MODL; // Model + MODEL MODL; // Model ReqSimpleSubRecord DNAM; // Flags ARTORecord(unsigned char *_recData=NULL); @@ -78,6 +78,7 @@ class ARTORecord : public TES5Record // Action record int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const ARTORecord &other) const; bool operator !=(const ARTORecord &other) const; diff --git a/src/Skyrim/Records/ASPCRecord.cpp b/src/Skyrim/Records/ASPCRecord.cpp index 3d23a42..654968e 100644 --- a/src/Skyrim/Records/ASPCRecord.cpp +++ b/src/Skyrim/Records/ASPCRecord.cpp @@ -34,7 +34,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ASPCRecord.h" namespace Sk { @@ -129,11 +129,8 @@ int32_t ASPCRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer BNAM.Read(buffer, subSize); break; default: - //printer("Filename = %s\n", FileName); - printer(" ASPC: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/ASPCRecord.h b/src/Skyrim/Records/ASPCRecord.h index 35cf462..152a4bc 100644 --- a/src/Skyrim/Records/ASPCRecord.h +++ b/src/Skyrim/Records/ASPCRecord.h @@ -35,8 +35,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Sk { @@ -66,6 +66,7 @@ class ASPCRecord : public TES5Record // Acoustic Space Record int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const ASPCRecord &other) const; bool operator !=(const ASPCRecord &other) const; diff --git a/src/Skyrim/Records/ASTPRecord.cpp b/src/Skyrim/Records/ASTPRecord.cpp index 88e9aed..58322fc 100644 --- a/src/Skyrim/Records/ASTPRecord.cpp +++ b/src/Skyrim/Records/ASTPRecord.cpp @@ -34,7 +34,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "ASTPRecord.h" namespace Sk { @@ -137,11 +137,8 @@ int32_t ASTPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - //printer("Filename = %s\n", FileName); - printer(" ASTP: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/ASTPRecord.h b/src/Skyrim/Records/ASTPRecord.h index a53b07c..9e2ecda 100644 --- a/src/Skyrim/Records/ASTPRecord.h +++ b/src/Skyrim/Records/ASTPRecord.h @@ -35,8 +35,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Sk { @@ -76,6 +76,7 @@ class ASTPRecord : public TES5Record // Association Type Record int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const ASTPRecord &other) const; bool operator !=(const ASTPRecord &other) const; diff --git a/src/Skyrim/Records/BOOKRecord.cpp b/src/Skyrim/Records/BOOKRecord.cpp new file mode 100644 index 0000000..68286a1 --- /dev/null +++ b/src/Skyrim/Records/BOOKRecord.cpp @@ -0,0 +1,289 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "BOOKRecord.h" + +namespace Sk +{ + BOOKRecord::BOOKRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + BOOKRecord::BOOKRecord(BOOKRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + MODL = srcRecord->MODL; + ICON = srcRecord->ICON; + MICO = srcRecord->MICO; + DESC = srcRecord->DESC; + DEST = srcRecord->DEST; + YNAM = srcRecord->YNAM; + ZNAM = srcRecord->ZNAM; + KWDA = srcRecord->KWDA; + DATA = srcRecord->DATA; + INAM = srcRecord->INAM; + CNAM = srcRecord->CNAM; + + if (!srcRecord->IsChanged()) + return; + + return; + } + + BOOKRecord::~BOOKRecord() + { + // + } + + uint32_t BOOKRecord::GetType() + { + return REV32(BOOK); + } + + char * BOOKRecord::GetStrType() + { + return "BOOK"; + } + + + bool BOOKRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //TODO - implement VisitFormIDs for struct GENOBND + + if (DEST.IsLoaded()) { + //TODO - implement VisitFormIDs for struct GENDESTRUCT + } + op.Accept(YNAM.value); + op.Accept(ZNAM.value); + if (KWDA.IsLoaded()) { + for (uint32_t i = 0; i < KWDA.value.size(); ++i) { + + op.Accept(KWDA.value[i]); + + }; + } + if (DATA.IsLoaded()) { + //TODO - implement VisitFormIDs for struct BOOKDATA + } + if (INAM.IsLoaded()) { + op.Accept(INAM.value); + } + + return op.Stop(); + } + + + int32_t BOOKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(MODL): + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(ICON): + ICON.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MICO): + MICO.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(DESC): + DESC.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(DEST): + DEST.Read(buffer, subSize); + break; + case REV32(YNAM): + YNAM.Read(buffer, subSize); + break; + case REV32(ZNAM): + ZNAM.Read(buffer, subSize); + break; + case REV32(KSIZ): + // Ignore on read + buffer += subSize; + break; + case REV32(KWDA): + KWDA.Read(buffer, subSize); + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + case REV32(INAM): + INAM.Read(buffer, subSize); + break; + case REV32(CNAM): + CNAM.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t BOOKRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + OBND.Unload(); + FULL.Unload(); + ICON.Unload(); + MICO.Unload(); + DESC.Unload(); + DEST.Unload(); + YNAM.Unload(); + ZNAM.Unload(); + KWDA.Unload(); + DATA.Unload(); + INAM.Unload(); + CNAM.Unload(); + + return 1; + } + + int32_t BOOKRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + WRITE(FULL); + MODL.Write(writer); + WRITE(ICON); + WRITE(MICO); + WRITE(DESC); + WRITE(DEST); + WRITE(YNAM); + WRITE(ZNAM); + WRITE(KWDA); + WRITE(DATA); + WRITE(INAM); + WRITE(CNAM); + return -1; + } + + bool BOOKRecord::operator ==(const BOOKRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + OBND == other.OBND && + FULL.equalsi(other.FULL) && + MODL == other.MODL && + ICON.equalsi(other.ICON) && + MICO.equalsi(other.MICO) && + DESC.equalsi(other.DESC) && + DEST == other.DEST && + YNAM == other.YNAM && + ZNAM == other.ZNAM && + KWDA == other.KWDA && + DATA == other.DATA && + INAM == other.INAM && + CNAM.equalsi(other.CNAM)); + } + + bool BOOKRecord::operator !=(const BOOKRecord &other) const + { + return !(*this == other); + } + + bool BOOKRecord::equals(Record *other) + { + return *this == *(BOOKRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/BOOKRecord.h b/src/Skyrim/Records/BOOKRecord.h new file mode 100644 index 0000000..ec0ea49 --- /dev/null +++ b/src/Skyrim/Records/BOOKRecord.h @@ -0,0 +1,110 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + struct BOOKDATA { + //Originally prolly a packed uint32 but w/e + uint8_t flags; + uint8_t type; + uint16_t junk; + uint32_t teaches; + uint32_t value; + float weight; + + bool operator ==(const BOOKDATA &other) const { + + return ( + this->flags == other.flags && + this->type == other.type && + this->teaches == other.teaches && + this->value == other.value && + this->weight == other.weight); + + } + + bool operator !=(const BOOKDATA &other) const { + return !(*this == other); + } + }; + + + class BOOKRecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + VMADRecord VMAD; // VM data + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // ambient + MODEL MODL; //Model + StringRecord ICON; + StringRecord MICO; + LStringRecord DESC; // Description + OptSubRecord DEST; // Destruction data + ReqSimpleSubRecord YNAM; // Sound - pick up + ReqSimpleSubRecord ZNAM; // Sound - drop + OptCounted, uint32_t, REV32(KSIZ)> KWDA; + OptSubRecord DATA; + OptSimpleSubRecord INAM; // Inventory STAT + //ONAM; + LStringRecord CNAM; // Description + + + + BOOKRecord(unsigned char *_recData = NULL); + BOOKRecord(BOOKRecord *srcRecord); + ~BOOKRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const BOOKRecord &other) const; + bool operator !=(const BOOKRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/CELLRecord.cpp b/src/Skyrim/Records/CELLRecord.cpp index 5719b01..3beb68b 100644 --- a/src/Skyrim/Records/CELLRecord.cpp +++ b/src/Skyrim/Records/CELLRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "CELLRecord.h" namespace Sk @@ -77,11 +77,13 @@ CELLRecord::CELLRecord(CELLRecord *srcRecord): if(srcRecord == NULL || !srcRecord->IsChanged()) return; + ACHR = srcRecord->ACHR; + REFR = srcRecord->REFR; EDID = srcRecord->EDID; FULL = srcRecord->FULL; DATA = srcRecord->DATA; XCLC = srcRecord->XCLC; -/* XCLL = srcRecord->XCLL;*/ + XCLL = srcRecord->XCLL; IMPS = srcRecord->IMPS; IMPF = srcRecord->IMPF; LTMP = srcRecord->LTMP; @@ -95,48 +97,22 @@ CELLRecord::CELLRecord(CELLRecord *srcRecord): XCCM = srcRecord->XCCM; XCWT = srcRecord->XCWT; /* Ownership = srcRecord->Ownership;*/ + XOWN = srcRecord->XOWN; + XRNK = srcRecord->XRNK; XCAS = srcRecord->XCAS; XCMT = srcRecord->XCMT; XCMO = srcRecord->XCMO; TVDT = srcRecord->TVDT; MHDT = srcRecord->MHDT; XLCN = srcRecord->XLCN; - XWCN = srcRecord->XWCN; XWCU = srcRecord->XWCU; + XILL = srcRecord->XILL; + XWEM = srcRecord->XWEM; } CELLRecord::~CELLRecord() { // - //ACHRs are owned at the mod level, so must be destroyed there - //ACREs are owned at the mod level, so must be destroyed there - //REFRs are owned at the mod level, so must be destroyed there - //PGRD is owned at the mod level, so must be destroyed there - //LAND is owned at the mod level, so must be destroyed there - //Parent is a shared pointer that's deleted when the WRLD group is deleted - - /* - for(uint32_t x = 0; x < ACHR.size(); ++x) - delete ACHR[x]; - for(uint32_t x = 0; x < ACRE.size(); ++x) - delete ACRE[x]; - for(uint32_t x = 0; x < REFR.size(); ++x) - delete REFR[x]; - for(uint32_t x = 0; x < PGRE.size(); ++x) - delete PGRE[x]; - for(uint32_t x = 0; x < PMIS.size(); ++x) - delete PMIS[x]; - for(uint32_t x = 0; x < PBEA.size(); ++x) - delete PBEA[x]; - for(uint32_t x = 0; x < PFLA.size(); ++x) - delete PFLA[x]; - for(uint32_t x = 0; x < PCBE.size(); ++x) - delete PCBE[x]; - for(uint32_t x = 0; x < NAVM.size(); ++x) - delete NAVM[x]; - - delete LAND; - */ } bool CELLRecord::VisitFormIDs(FormIDOp &op) @@ -162,6 +138,8 @@ bool CELLRecord::VisitFormIDs(FormIDOp &op) op.Accept(XCWT.value); /* if(Ownership.IsLoaded()) op.Accept(Ownership->XOWN.value);*/ + if(XOWN.IsLoaded()) + op.Accept(XOWN.value); if(XCAS.IsLoaded()) op.Accept(XCAS.value); if(XCMO.IsLoaded()) @@ -468,9 +446,9 @@ int32_t CELLRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer case REV32(XCLC): XCLC.Read(buffer, subSize); break; -/* case REV32(XCLL): + case REV32(XCLL): XCLL.Read(buffer, subSize); - break;*/ + break; case REV32(IMPS): IMPS.Read(buffer, subSize); break; @@ -507,14 +485,12 @@ int32_t CELLRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer case REV32(XCWT): XCWT.Read(buffer, subSize); break; -/* case REV32(XOWN): - Ownership.Load(); - Ownership->XOWN.Read(buffer, subSize); + case REV32(XOWN): + XOWN.Read(buffer, subSize); break; case REV32(XRNK): - Ownership.Load(); - Ownership->XRNK.Read(buffer, subSize); - break;*/ + XRNK.Read(buffer, subSize); + break; case REV32(XCAS): XCAS.Read(buffer, subSize); break; @@ -534,18 +510,23 @@ int32_t CELLRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer case REV32(XLCN): // 4 bytes XLCN.Read(buffer, subSize); break; - case REV32(XWCN): // 4 bytes - XWCN.Read(buffer, subSize, CompressedOnDisk); - break; case REV32(XWCU): // 64 bytes - XWCU.Read(buffer, subSize, CompressedOnDisk); + XWCU.Read(buffer, subSize); + break; + case REV32(XILL): + XILL.Read(buffer, subSize); + break; + case REV32(XWEM): + XWEM.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(XWCN): + case REV32(XWCS): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; break; default: - //printer("FileName = %s\n", FileName); - printer(" CELL: %08X - Unknown subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -561,7 +542,7 @@ int32_t CELLRecord::Unload() FULL.Unload(); DATA.Unload(); XCLC.Unload(); -/* XCLL.Unload();*/ + XCLL.Unload(); IMPS.Unload(); IMPF.Unload(); LTMP.Unload(); @@ -574,15 +555,17 @@ int32_t CELLRecord::Unload() XEZN.Unload(); XCCM.Unload(); XCWT.Unload(); -/* Ownership.Unload();*/ + XOWN.Unload(); + XRNK.Unload(); XCAS.Unload(); XCMT.Unload(); XCMO.Unload(); TVDT.Unload(); MHDT.Unload(); XLCN.Unload(); - XWCN.Unload(); XWCU.Unload(); + XILL.Unload(); + XWEM.Unload(); return 1; } @@ -592,7 +575,7 @@ int32_t CELLRecord::WriteRecord(FileWriter &writer) WRITE(FULL); //DATA.Unload(); //need to keep IsInterior around WRITE(XCLC); -/* WRITE(XCLL);*/ + WRITE(XCLL); WRITE(IMPS); WRITE(IMPF); if(LNAM.value != 0 || LTMP.value != 0) @@ -612,13 +595,16 @@ int32_t CELLRecord::WriteRecord(FileWriter &writer) WRITE(XCCM); WRITE(XCWT); /* Ownership.Write(writer);*/ + WRITE(XOWN); + WRITE(XILL); + WRITE(XWEM); + WRITE(XRNK); WRITE(XCAS); WRITE(XCMT); WRITE(XCMO); WRITE(TVDT); WRITE(MHDT); WRITE(XLCN); - WRITE(XWCN); WRITE(XWCU); return -1; } @@ -627,7 +613,7 @@ bool CELLRecord::operator ==(const CELLRecord &other) const { return (DATA == other.DATA && XCLC == other.XCLC && -/* XCLL == other.XCLL &&*/ + XCLL == other.XCLL && IMPF == other.IMPF && LTMP == other.LTMP && LNAM == other.LNAM && @@ -641,6 +627,8 @@ bool CELLRecord::operator ==(const CELLRecord &other) const IMPS == other.IMPS && XCLR == other.XCLR && /* Ownership == other.Ownership &&*/ + XOWN == other.XOWN && + XRNK == other.XRNK && EDID.equalsi(other.EDID) && FULL.equals(other.FULL) && XNAM.equalsi(other.XNAM) && @@ -649,7 +637,6 @@ bool CELLRecord::operator ==(const CELLRecord &other) const TVDT == other.TVDT && MHDT == other.MHDT && XLCN == other.XLCN && - XWCN == other.XWCN && XWCU == other.XWCU); } @@ -683,13 +670,11 @@ bool CELLRecord::deep_equals(Record *master, RecordOp &read_self, RecordOp &read else if(master_wrld != NULL) return false; -/* if(ACHR.size() > master_cell->ACHR.size()) return false; - if(ACRE.size() > master_cell->ACRE.size()) - return false; if(REFR.size() > master_cell->REFR.size()) return false; + /* if(PGRE.size() > master_cell->PGRE.size()) return false; if(PMIS.size() > master_cell->PMIS.size()) @@ -713,19 +698,15 @@ bool CELLRecord::deep_equals(Record *master, RecordOp &read_self, RecordOp &read else return false; } -/* + for(uint32_t ListIndex = 0; ListIndex < ACHR.size(); ++ListIndex) if(identical_records.count(ACHR[ListIndex]) == 0) return false; - for(uint32_t ListIndex = 0; ListIndex < ACRE.size(); ++ListIndex) - if(identical_records.count(ACRE[ListIndex]) == 0) - return false; - for(uint32_t ListIndex = 0; ListIndex < REFR.size(); ++ListIndex) if(identical_records.count(REFR[ListIndex]) == 0) return false; - + /* for(uint32_t ListIndex = 0; ListIndex < PGRE.size(); ++ListIndex) if(identical_records.count(PGRE[ListIndex]) == 0) return false; @@ -753,4 +734,59 @@ bool CELLRecord::deep_equals(Record *master, RecordOp &read_self, RecordOp &read return true; } + +CELLRecord::TES5LIGHT::TES5LIGHT() : +fogNear(0.0f), +fogFar(0.0f), +directionalXY(0), +directionalZ(0), +directionalFade(0.0f), +fogClip(0.0f), +fogPower(0.0f), +fresnelPow(0.0f), +fogMax(0.0f), +lightFadeDistancesStart(0.0f), +lightFadeDistancesEnd(0.0f) +{ + // +} + +CELLRecord::TES5LIGHT::~TES5LIGHT() +{ + // +} + +bool CELLRecord::TES5LIGHT::operator ==(const TES5LIGHT &other) const +{ + return (ambient == other.ambient && + directional == other.directional && + fog == other.fog && + AlmostEqual(fogNear, other.fogNear, 2) && + AlmostEqual(fogFar, other.fogFar, 2) && + directionalXY == other.directionalXY && + directionalZ == other.directionalZ && + AlmostEqual(directionalFade, other.directionalFade, 2) && + AlmostEqual(fogClip, other.fogClip, 2) && + AlmostEqual(fogPower, other.fogPower, 2) && + ambientXp == other.ambientXp && + ambientXm == other.ambientXm && + ambientYp == other.ambientYp && + ambientYm == other.ambientYm && + ambientZp == other.ambientZp && + ambientZm == other.ambientZm && + specular == other.specular && + AlmostEqual(fresnelPow, other.fresnelPow, 2) && + fogFarTwo == other.fogFarTwo && + AlmostEqual(fogMax, other.fogMax, 2) && + AlmostEqual(lightFadeDistancesStart, other.lightFadeDistancesStart, 2) && + AlmostEqual(lightFadeDistancesEnd, other.lightFadeDistancesEnd, 2) && + inheritFlags == other.inheritFlags + ); +} + +bool CELLRecord::TES5LIGHT::operator !=(const TES5LIGHT &other) const +{ + return !(*this == other); +} + } \ No newline at end of file diff --git a/src/Skyrim/Records/CELLRecord.h b/src/Skyrim/Records/CELLRecord.h index 0a2d00b..8f35d4c 100644 --- a/src/Skyrim/Records/CELLRecord.h +++ b/src/Skyrim/Records/CELLRecord.h @@ -34,8 +34,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -54,6 +55,33 @@ class CELLRecord : public TES5Record //Cell bool operator !=(const CELLXCLC &other) const; }; + + struct TES5LIGHT + { + GENCLR ambient; //Ambient Color + GENCLR directional; //Directional Color + GENCLR fog; //Fog Color + float fogNear, fogFar; //Fog Near, Fog Far + int32_t directionalXY, directionalZ; //Directional Rotation XY, Directional Rotation Z + float directionalFade, fogClip, fogPower; //Directional Fade, Fog Clip Dist, Fog Power + + GENCLR ambientXp, ambientXm, ambientYp, ambientYm, ambientZp, ambientZm; + GENCLR specular; + float fresnelPow; + GENCLR fogFarTwo; + float fogMax; + float lightFadeDistancesStart; + float lightFadeDistancesEnd; + + uint32_t inheritFlags; + + TES5LIGHT(); + ~TES5LIGHT(); + + bool operator ==(const TES5LIGHT &other) const; + bool operator !=(const TES5LIGHT &other) const; + }; + enum flagsFlags { fIsInterior = 0x00000001, @@ -92,7 +120,7 @@ class CELLRecord : public TES5Record //Cell StringRecord FULL; //Name ReqSimpleSubRecord DATA; //Flags OptSubRecord XCLC; //Grid -// OptSubRecord XCLL; //Lighting + OptSubRecord XCLL; //Lighting UnorderedSparseArray IMPS; //Swapped Impact OptSubRecord IMPF; //Footstep Materials ReqSimpleSubRecord LTMP; //Light Template @@ -105,21 +133,22 @@ class CELLRecord : public TES5Record //Cell OptSimpleSubRecord XEZN; //Encounter Zone OptSimpleSubRecord XCCM; //Climate OptSimpleSubRecord XCWT; //Water -> WATR -// OptSubRecord Ownership; //Owner + OptSimpleSubRecord XOWN; //Owner simple. + OptSimpleSubRecord XILL; //Owner simple. + StringRecord XWEM; //Editor ID + SemiOptSimpleSubRecord XRNK; OptSimpleSubRecord XCAS; //Acoustic Space RawRecord XCMT; //Unused OptSimpleSubRecord XCMO; //Music Type RawRecord TVDT; //Unknown (Skyrim) RawRecord MHDT; //Unknown (Skyrim) OptSimpleSubRecord XLCN; //Unknown (Skyrim) -> LCTN - RawRecord XWCN; //Unknown (Skyrim) - RawRecord XWCU; //Unknown (Skyrim) + OptCounted, uint32_t, REV32(XWCN)> XWCU; // Keywords -/* std::vector ACHR; - std::vector ACRE; std::vector REFR; - std::vector PGRE; +/* + std::vector PGRE; std::vector PMIS; std::vector PBEA; std::vector PFLA; @@ -196,6 +225,7 @@ class CELLRecord : public TES5Record //Cell int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const CELLRecord &other) const; bool operator !=(const CELLRecord &other) const; diff --git a/src/Skyrim/Records/CLMTRecord.cpp b/src/Skyrim/Records/CLMTRecord.cpp new file mode 100644 index 0000000..7dc155f --- /dev/null +++ b/src/Skyrim/Records/CLMTRecord.cpp @@ -0,0 +1,159 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "CLMTRecord.h" + +namespace Sk { + + CLMTRecord::CLMTRecord(unsigned char *_recData) + : TES5Record(_recData) + { + // + } + + CLMTRecord::CLMTRecord(CLMTRecord *srcRecord) + : TES5Record((TES5Record *)srcRecord) + { + if (srcRecord == NULL || !srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + } + + CLMTRecord::~CLMTRecord() + { + // + } + + uint32_t CLMTRecord::GetType() + { + return REV32(CLMT); + } + + char * CLMTRecord::GetStrType() + { + return "CLMT"; + } + + int32_t CLMTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + while (buffer < end_buffer) + { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(WLST): + case REV32(FNAM): + case REV32(GNAM): + case REV32(MODL): + case REV32(MODT): + case REV32(MODS): + case REV32(TNAM): + buffer = end_buffer; + // Not needed atm + break; + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t CLMTRecord::Unload() + { + IsLoaded(false); + IsChanged(false); + EDID.Unload(); + return 1; + } + + int32_t CLMTRecord::WriteRecord(FileWriter &writer) + { + // Not fully implemented, must not ever be written + log_error << "CLMT Record is not fully implemented yet!\n"; + std::abort(); + WRITE(EDID); + return -1; + } + + bool CLMTRecord::operator ==(const CLMTRecord &other) const + { + return (EDID.equalsi(other.EDID) + ); + } + + bool CLMTRecord::operator !=(const CLMTRecord &other) const + { + return !(*this == other); + } + + bool CLMTRecord::equals(Record *other) + { + try + { + return *this == *dynamic_cast(other); + } + catch (...) + { + return false; + } + } + +} // namespace Sk diff --git a/src/Skyrim/Records/CLMTRecord.h b/src/Skyrim/Records/CLMTRecord.h new file mode 100644 index 0000000..b64c6b6 --- /dev/null +++ b/src/Skyrim/Records/CLMTRecord.h @@ -0,0 +1,66 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" + +namespace Sk { + + class CLMTRecord : public TES5Record // Action record + { + public: + StringRecord EDID; // Editor ID + + CLMTRecord(unsigned char *_recData = NULL); + CLMTRecord(CLMTRecord *srcRecord); + ~CLMTRecord(); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const CLMTRecord &other) const; + bool operator !=(const CLMTRecord &other) const; + bool equals(Record *other); + }; + +} // namespace Sk diff --git a/src/Skyrim/Records/COLLRecord.cpp b/src/Skyrim/Records/COLLRecord.cpp index 5eea332..9c60641 100644 --- a/src/Skyrim/Records/COLLRecord.cpp +++ b/src/Skyrim/Records/COLLRecord.cpp @@ -35,7 +35,7 @@ * * ***** END LICENSE BLOCK ***** */ #include "COLLRecord.h" -#include "..\..\ModFile.h" +#include "../../ModFile.h" namespace Sk { @@ -177,11 +177,8 @@ int32_t COLLRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer CNAM.Read(buffer, subSize); break; default: - //printer("Filename = %s\n", FileName); - printer(" APPA: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/COLLRecord.h b/src/Skyrim/Records/COLLRecord.h index 70e5c0c..08682cf 100644 --- a/src/Skyrim/Records/COLLRecord.h +++ b/src/Skyrim/Records/COLLRecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\GenericRecord.h" -#include "..\SkyrimChunks.h" -#include "..\SkyrimCommon.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" namespace Sk { @@ -88,6 +88,7 @@ class COLLRecord : public TES5Record // Collision Layer int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const COLLRecord &other) const; bool operator !=(const COLLRecord &other) const; diff --git a/src/Skyrim/Records/CONTRecord.cpp b/src/Skyrim/Records/CONTRecord.cpp new file mode 100644 index 0000000..a5e3249 --- /dev/null +++ b/src/Skyrim/Records/CONTRecord.cpp @@ -0,0 +1,246 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "CONTRecord.h" + +namespace Sk +{ + CONTRecord::CONTRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + CONTRecord::CONTRecord(CONTRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + MODL = srcRecord->MODL; + CNTO = srcRecord->CNTO; + DATA = srcRecord->DATA; + SNAM = srcRecord->SNAM; + QNAM = srcRecord->QNAM; + + if (!srcRecord->IsChanged()) + return; + + return; + } + + CONTRecord::~CONTRecord() + { + // + } + + uint32_t CONTRecord::GetType() + { + return REV32(CONT); + } + + char * CONTRecord::GetStrType() + { + return "CONT"; + } + + + bool CONTRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //TODO - implement VisitFormIDs for struct GENOBND + + if (CNTO.IsLoaded()) { + //TODO - implement VisitFormIDs for struct ContainerItems + } + if (DATA.IsLoaded()) { + //TODO - implement VisitFormIDs for struct CONTDATA + } + if (SNAM.IsLoaded()) { + op.Accept(SNAM.value); + } + if (QNAM.IsLoaded()) { + op.Accept(QNAM.value); + } + + return op.Stop(); + } + + + int32_t CONTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(MODL): + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(COCT): + // Ignore on read + buffer += subSize; + break; + case REV32(CNTO): + CNTO.Read(buffer, subSize); + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + case REV32(SNAM): + SNAM.Read(buffer, subSize); + break; + case REV32(QNAM): + QNAM.Read(buffer, subSize); + break; + case REV32(COED): + case REV32(MODS): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t CONTRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + OBND.Unload(); + FULL.Unload(); + CNTO.Unload(); + DATA.Unload(); + SNAM.Unload(); + QNAM.Unload(); + + return 1; + } + + int32_t CONTRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + WRITE(FULL); + MODL.Write(writer); + WRITE(CNTO); + WRITE(DATA); + WRITE(SNAM); + WRITE(QNAM); + return -1; + } + + bool CONTRecord::operator ==(const CONTRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + OBND == other.OBND && + FULL.equalsi(other.FULL) && + MODL == other.MODL && + CNTO == other.CNTO && + DATA == other.DATA && + SNAM == other.SNAM && + QNAM == other.QNAM); + } + + bool CONTRecord::operator !=(const CONTRecord &other) const + { + return !(*this == other); + } + + bool CONTRecord::equals(Record *other) + { + return *this == *(CONTRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/CONTRecord.h b/src/Skyrim/Records/CONTRecord.h new file mode 100644 index 0000000..3004ebe --- /dev/null +++ b/src/Skyrim/Records/CONTRecord.h @@ -0,0 +1,95 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + struct CONTDATA { + uint8_t flags; + float weight; + + bool operator ==(const CONTDATA &other) const { + + return ( + this->flags == other.flags && + this->weight == other.weight); + + } + + bool operator !=(const CONTDATA &other) const { + return !(*this == other); + } + }; + + + class CONTRecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + VMADRecord VMAD; // VM data + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // ambient + MODEL MODL; //Model + OptCounted, uint32_t, REV32(COCT)> CNTO; + OptSubRecord DATA; + OptSimpleSubRecord SNAM; // Sound open name + OptSimpleSubRecord QNAM; // Sound close name + + + + CONTRecord(unsigned char *_recData = NULL); + CONTRecord(CONTRecord *srcRecord); + ~CONTRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const CONTRecord &other) const; + bool operator !=(const CONTRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/DIALRecord.cpp b/src/Skyrim/Records/DIALRecord.cpp new file mode 100644 index 0000000..c567f8b --- /dev/null +++ b/src/Skyrim/Records/DIALRecord.cpp @@ -0,0 +1,216 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is CBash code. + * + * The Initial Developer of the Original Code is + * Waruddar. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "DIALRecord.h" + +namespace Sk +{ +DIALRecord::DIALRecord(unsigned char *_recData): + TES5Record(_recData) + { + // + } + +DIALRecord::DIALRecord(DIALRecord *srcRecord): + TES5Record() + { + if(srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if(!srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + FULL = srcRecord->FULL; + PNAM = srcRecord->PNAM; + BNAM = srcRecord->BNAM; + QNAM = srcRecord->QNAM; + DATA = srcRecord->DATA; + SNAM = srcRecord->SNAM; + TIFC = srcRecord->TIFC; + INFO = srcRecord->INFO; + + return; + } + +DIALRecord::~DIALRecord() + { + // + } + +uint32_t DIALRecord::GetType() + { + return REV32(DIAL); + } + +char * DIALRecord::GetStrType() + { + return "DIAL"; + } + +bool DIALRecord::VisitFormIDs(FormIDOp &op) +{ + if (!IsLoaded()) + return false; + + op.Accept(BNAM.value); + //REVERT ASAP + op.Accept(QNAM.value); + + return op.Stop(); +} + + +int32_t DIALRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + while(buffer < end_buffer){ + subType = *(uint32_t *)buffer; + buffer += 4; + switch(subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch(subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(PNAM): + PNAM.Read(buffer, subSize); + break; + case REV32(BNAM): + BNAM.Read(buffer, subSize); + break; + case REV32(QNAM): + QNAM.Read(buffer, subSize); + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + case REV32(SNAM): + SNAM.Read(buffer, subSize); + break; + case REV32(TIFC): + TIFC.Read(buffer, subSize); + break; + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + +int32_t DIALRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + + + EDID.Unload(); + FULL.Unload(); + PNAM.Unload(); + BNAM.Unload(); + QNAM.Unload(); + DATA.Unload(); + SNAM.Unload(); + TIFC.Unload(); + + + return 1; + } + +int32_t DIALRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(FULL); + WRITE(PNAM); + WRITE(BNAM); + WRITE(QNAM); + WRITE(DATA); + WRITE(SNAM); + WRITE(TIFC); + return -1; + } + +bool DIALRecord::operator ==(const DIALRecord &other) const + { + return (EDID.equalsi(other.EDID) && + FULL.equalsi(other.FULL) && + PNAM == other.PNAM && + BNAM == other.BNAM && + QNAM == other.QNAM && + DATA == other.DATA && + SNAM == other.SNAM && + TIFC == other.TIFC + ); + } + +bool DIALRecord::operator !=(const DIALRecord &other) const + { + return !(*this == other); + } + +bool DIALRecord::equals(Record *other) + { + return *this == *(DIALRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/DIALRecord.h b/src/Skyrim/Records/DIALRecord.h new file mode 100644 index 0000000..731d2ba --- /dev/null +++ b/src/Skyrim/Records/DIALRecord.h @@ -0,0 +1,109 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is CBash code. + * + * The Initial Developer of the Original Code is + * Waruddar. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "INFORecord.h" +namespace Sk +{ + +struct DIALPACKDATA { + + DIALPACKDATA(bool unknown, int dialogueTab, int subtypeId, int unused) { + this->unknown = unknown; + this->dialogueTab = dialogueTab; + this->subtypeId = subtypeId; + this->unused = unused; + } + DIALPACKDATA() { unknown = false; dialogueTab = 0; subtypeId = 0; unused = 0; } + ~DIALPACKDATA() {} + + + bool unknown; + uint8_t dialogueTab; + uint8_t subtypeId; + uint8_t unused; + + bool operator ==(const DIALPACKDATA &other) const { + return ( + this->dialogueTab == other.dialogueTab && + this->subtypeId == other.subtypeId && + this->subtypeId == other.subtypeId && + this->unused == other.unused + ); + } + + bool operator !=(const DIALPACKDATA &other) const + { + return !(*this == other); + } + +}; + +class DIALRecord : public TES5Record //Texture Set + { + + public: + StringRecord EDID; //Editor ID + StringRecord FULL; //Player dialogue. + ReqSimpleFloatSubRecord PNAM; + OptSimpleSubRecord BNAM; //Branch formid + ReqSimpleSubRecord QNAM; //Quest formid + ReqSubRecord DATA; + ReqSimpleSubRecord SNAM; //Subtype + ReqSimpleSubRecord TIFC; //Topic info count + + std::vector INFO; + + DIALRecord(unsigned char *_recData=NULL); + DIALRecord(DIALRecord *srcRecord); + ~DIALRecord(); + + uint32_t GetType(); + char * GetStrType(); + + bool VisitFormIDs(FormIDOp &op); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const DIALRecord &other) const; + bool operator !=(const DIALRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/DLBRRecord.cpp b/src/Skyrim/Records/DLBRRecord.cpp new file mode 100644 index 0000000..e55d4bf --- /dev/null +++ b/src/Skyrim/Records/DLBRRecord.cpp @@ -0,0 +1,197 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "DLBRRecord.h" + +namespace Sk +{ + DLBRRecord::DLBRRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + DLBRRecord::DLBRRecord(DLBRRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + EDID = srcRecord->EDID; + QNAM = srcRecord->QNAM; + TNAM = srcRecord->TNAM; + DNAM = srcRecord->DNAM; + SNAM = srcRecord->SNAM; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + + return; + } + + DLBRRecord::~DLBRRecord() + { + // + } + + uint32_t DLBRRecord::GetType() + { + return REV32(DLBR); + } + + char * DLBRRecord::GetStrType() + { + return "DLBR"; + } + + + bool DLBRRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //REVERT ASAP + op.Accept(QNAM.value); + op.Accept(SNAM.value); + + + return op.Stop(); + } + + + int32_t DLBRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + while (buffer < end_buffer){ + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(QNAM): + QNAM.Read(buffer, subSize); + break; + + case REV32(TNAM): + TNAM.Read(buffer, subSize); + break; + + case REV32(DNAM): + DNAM.Read(buffer, subSize); + break; + + case REV32(SNAM): + SNAM.Read(buffer, subSize); + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t DLBRRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + + EDID.Unload(); + QNAM.Unload(); + TNAM.Unload(); + DNAM.Unload(); + SNAM.Unload(); + return 1; + } + + int32_t DLBRRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(QNAM); + WRITE(TNAM); + WRITE(DNAM); + WRITE(SNAM); + return -1; + } + + bool DLBRRecord::operator ==(const DLBRRecord &other) const + { + return (EDID.equalsi(other.EDID) && + QNAM == other.QNAM && + TNAM == other.TNAM && + DNAM == other.DNAM && + SNAM == other.SNAM + ); + } + + bool DLBRRecord::operator !=(const DLBRRecord &other) const + { + return !(*this == other); + } + + bool DLBRRecord::equals(Record *other) + { + return *this == *(DLBRRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/DLBRRecord.h b/src/Skyrim/Records/DLBRRecord.h new file mode 100644 index 0000000..7080228 --- /dev/null +++ b/src/Skyrim/Records/DLBRRecord.h @@ -0,0 +1,72 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is CBash code. + * + * The Initial Developer of the Original Code is + * Waruddar. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../Common.h" +#include "../../GenericRecord.h" + +namespace Sk +{ +class DLBRRecord : public TES5Record //Texture Set + { + + public: + StringRecord EDID; //Editor ID + ReqSimpleSubRecord QNAM; //Quest formid + ReqSimpleSubRecord TNAM; + ReqSimpleSubRecord DNAM; + ReqSimpleSubRecord SNAM; //Dial reference + + + DLBRRecord(unsigned char *_recData = NULL); + DLBRRecord(DLBRRecord *srcRecord); + ~DLBRRecord(); + + uint32_t GetType(); + char * GetStrType(); + + bool VisitFormIDs(FormIDOp &op); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + + bool operator ==(const DLBRRecord &other) const; + bool operator !=(const DLBRRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/DOORRecord.cpp b/src/Skyrim/Records/DOORRecord.cpp new file mode 100644 index 0000000..077cc7c --- /dev/null +++ b/src/Skyrim/Records/DOORRecord.cpp @@ -0,0 +1,218 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "DOORRecord.h" + +namespace Sk { + + DOORRecord::DOORRecord(unsigned char *_recData) + : TES5Record(_recData) + { + // + } + + DOORRecord::DOORRecord(DOORRecord *srcRecord) + : TES5Record((TES5Record *)srcRecord) + { + if (srcRecord == NULL || !srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + MODL = srcRecord->MODL; + SNAM = srcRecord->SNAM; + ANAM = srcRecord->ANAM; + BNAM = srcRecord->BNAM; + } + + DOORRecord::~DOORRecord() + { + // + } + + bool DOORRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + + if (SNAM.IsLoaded()) + op.Accept(SNAM.value); + if (ANAM.IsLoaded()) + op.Accept(ANAM.value); + if (BNAM.IsLoaded()) + op.Accept(BNAM.value); + + return op.Stop(); + } + + + uint32_t DOORRecord::GetType() + { + return REV32(DOOR); + } + + char * DOORRecord::GetStrType() + { + return "DOOR"; + } + + int32_t DOORRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + + while (buffer < end_buffer) + { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, NULL); + break; + case REV32(MODL): + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(SNAM): + SNAM.Read(buffer, subSize); + break; + case REV32(ANAM): + ANAM.Read(buffer, subSize); + break; + case REV32(BNAM): + BNAM.Read(buffer, subSize); + break; + case REV32(FNAM): + FNAM.Read(buffer, subSize); + break; + case REV32(MODS): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t DOORRecord::Unload() + { + IsLoaded(false); + IsChanged(false); + EDID.Unload(); + VMAD.Unload(); + OBND.Unload(); + FULL.Unload(); + SNAM.Unload(); + ANAM.Unload(); + BNAM.Unload(); + return 1; + } + + int32_t DOORRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + WRITE(FULL); + MODL.Write(writer); + WRITE(SNAM); + WRITE(ANAM); + WRITE(BNAM); + WRITE(FNAM); + return -1; + } + + bool DOORRecord::operator ==(const DOORRecord &other) const + { + return (EDID.equalsi(other.EDID) && + OBND == other.OBND && + SNAM == other.SNAM && + ANAM == other.ANAM && + BNAM == other.BNAM); + } + + bool DOORRecord::operator !=(const DOORRecord &other) const + { + return !(*this == other); + } + + bool DOORRecord::equals(Record *other) + { + try + { + return *this == *dynamic_cast(other); + } + catch (...) + { + return false; + } + } + +} // namespace Sk \ No newline at end of file diff --git a/src/Skyrim/Records/DOORRecord.h b/src/Skyrim/Records/DOORRecord.h new file mode 100644 index 0000000..5ea1f25 --- /dev/null +++ b/src/Skyrim/Records/DOORRecord.h @@ -0,0 +1,76 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + class DOORRecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + VMADRecord VMAD; // Virtual Machind Data + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // ambient + MODEL MODL; // Model + OptSimpleSubRecord SNAM; // Open Sound + OptSimpleSubRecord ANAM; // Open Sound + OptSimpleSubRecord BNAM; // Open Sound + ReqSimpleSubRecord FNAM; // Open Sound + + DOORRecord(unsigned char *_recData = NULL); + DOORRecord(DOORRecord *srcRecord); + ~DOORRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const DOORRecord &other) const; + bool operator !=(const DOORRecord &other) const; + bool equals(Record *other); + }; + +} // namespace Sk \ No newline at end of file diff --git a/src/Skyrim/Records/EQUPRecord.cpp b/src/Skyrim/Records/EQUPRecord.cpp index 9b22514..fec4092 100644 --- a/src/Skyrim/Records/EQUPRecord.cpp +++ b/src/Skyrim/Records/EQUPRecord.cpp @@ -114,11 +114,8 @@ int32_t EQUPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DATA.Read(buffer, subSize); break; default: - //printer("Filename = %s\n", FileName); - printer(" APPA: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/EQUPRecord.h b/src/Skyrim/Records/EQUPRecord.h index 54bba32..28d6d70 100644 --- a/src/Skyrim/Records/EQUPRecord.h +++ b/src/Skyrim/Records/EQUPRecord.h @@ -35,7 +35,7 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\GenericRecord.h" +#include "../../GenericRecord.h" namespace Sk { @@ -65,6 +65,7 @@ class EQUPRecord : public TES5Record // Word of Power Record int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const EQUPRecord &other) const; bool operator !=(const EQUPRecord &other) const; diff --git a/src/Skyrim/Records/FACTRecord.cpp b/src/Skyrim/Records/FACTRecord.cpp new file mode 100644 index 0000000..c7e8046 --- /dev/null +++ b/src/Skyrim/Records/FACTRecord.cpp @@ -0,0 +1,382 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is CBash code. + * + * The Initial Developer of the Original Code is + * Waruddar. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "FACTRecord.h" + +namespace Sk +{ + +void FACTRecord::FACTRNAM::Write(FileWriter &writer) + { + WRITE(RNAM); + WRITE(MNAM); + WRITE(FNAM); + } + +bool FACTRecord::FACTRNAM::operator ==(const FACTRNAM &other) const + { + return (RNAM == other.RNAM && + MNAM.equals(other.MNAM) && + FNAM.equals(other.FNAM)); + } + +bool FACTRecord::FACTRNAM::operator !=(const FACTRNAM &other) const + { + return !(*this == other); + } + +FACTRecord::FACTRecord(unsigned char *_recData): + TES5Record(_recData) + { + // + } + +FACTRecord::FACTRecord(FACTRecord *srcRecord): + TES5Record() + { + if(srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if(!srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + FULL = srcRecord->FULL; + XNAM = srcRecord->XNAM; + DATA = srcRecord->DATA; + JAIL = srcRecord->JAIL; + WAIT = srcRecord->WAIT; + STOL = srcRecord->STOL; + PLCN = srcRecord->PLCN; + CRGR = srcRecord->CRGR; + JOUT = srcRecord->JOUT; + CRVA = srcRecord->CRVA; + RNAM = srcRecord->RNAM; + VEND = srcRecord->VEND; + VENC = srcRecord->VENC; + VENV = srcRecord->VENV; + PLVD = srcRecord->PLVD; + CTDA = srcRecord->CTDA; + return; + } + +FACTRecord::~FACTRecord() + { + // + } + +bool FACTRecord::VisitFormIDs(FormIDOp &op) + { + if(!IsLoaded()) + return false; + + for(uint32_t ListIndex = 0; ListIndex < XNAM.value.size(); ListIndex++) + op.Accept(XNAM.value[ListIndex]->faction); + + if(JAIL.IsLoaded()) op.Accept(JAIL.value); + if(WAIT.IsLoaded()) op.Accept(WAIT.value); + if(STOL.IsLoaded()) op.Accept(STOL.value); + if(PLCN.IsLoaded()) op.Accept(PLCN.value); + if(CRGR.IsLoaded()) op.Accept(CRGR.value); + if(JOUT.IsLoaded()) op.Accept(JOUT.value); + if(VEND.IsLoaded()) op.Accept(VEND.value); + if(VENC.IsLoaded()) op.Accept(VENC.value); + if(CTDA.IsLoaded()) { + for(uint32_t Ind = 0; Ind < CTDA.value.size(); Ind++) + CTDA.value[Ind]->VisitFormIDs(op); + } + + return op.Stop(); + } + +bool FACTRecord::IsHiddenFromPC() + { + return (DATA.value & fIsHiddenFromPC) != 0; + } + +void FACTRecord::IsHiddenFromPC(bool value) + { + SETBIT(DATA.value, fIsHiddenFromPC, value); + } + +bool FACTRecord::IsEvil() + { + return (DATA.value & fIsEvil) != 0; + } + +void FACTRecord::IsEvil(bool value) + { + SETBIT(DATA.value, fIsEvil, value); + } + +bool FACTRecord::IsSpecialCombat() + { + return (DATA.value & fIsSpecialCombat) != 0; + } + +void FACTRecord::IsSpecialCombat(bool value) + { + SETBIT(DATA.value, fIsSpecialCombat, value); + } + +bool FACTRecord::IsTrackCrime() + { + return (DATA.value & fIsTrackCrime) != 0; + } + +void FACTRecord::IsTrackCrime(bool value) + { + SETBIT(DATA.value, fIsTrackCrime, value); + } + +bool FACTRecord::IsAllowSell() + { + return (DATA.value & fIsAllowSell) != 0; + } + +void FACTRecord::IsAllowSell(bool value) + { + SETBIT(DATA.value, fIsAllowSell, value); + } + +bool FACTRecord::IsFlagMask(uint16_t Mask, bool Exact) + { + return Exact ? ((DATA.value & Mask) == Mask) : ((DATA.value & Mask) != 0); + } + +void FACTRecord::SetFlagMask(uint16_t Mask) + { + DATA.value = Mask; + } + +uint32_t FACTRecord::GetType() + { + return REV32(FACT); + } + +char * FACTRecord::GetStrType() + { + return "FACT"; + } + +int32_t FACTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + while(buffer < end_buffer){ + subType = *(uint32_t *)buffer; + buffer += 4; + switch(subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch(subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(XNAM): + XNAM.Read(buffer, subSize); + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + case REV32(JAIL): + JAIL.Read(buffer, subSize); + break; + case REV32(WAIT): + WAIT.Read(buffer, subSize); + break; + case REV32(STOL): + STOL.Read(buffer, subSize); + break; + case REV32(PLCN): + PLCN.Read(buffer, subSize); + break; + case REV32(CRGR): + CRGR.Read(buffer, subSize); + break; + case REV32(JOUT): + JOUT.Read(buffer, subSize); + break; + case REV32(CRVA): + CRVA.Read(buffer, subSize); + break; + case REV32(RNAM): + RNAM.value.push_back(new FACTRNAM); + RNAM.value.back()->RNAM.Read(buffer, subSize); + break; + case REV32(VEND): + VEND.Read(buffer, subSize); + break; + case REV32(VENC): + VENC.Read(buffer, subSize); + break; + case REV32(VENV): + VENV.Read(buffer, subSize); + break; + case REV32(PLVD): + PLVD.Read(buffer, subSize); + break; + case REV32(CTDA): + CTDA.Read(buffer, subSize); + break; + case REV32(MNAM): + if(RNAM.value.size() == 0) + RNAM.value.push_back(new FACTRNAM); + RNAM.value.back()->MNAM.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(FNAM): + if(RNAM.value.size() == 0) + RNAM.value.push_back(new FACTRNAM); + RNAM.value.back()->FNAM.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(CITC): + case REV32(CIS2): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + +int32_t FACTRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + FULL.Unload(); + XNAM.Unload(); + DATA.Unload(); + JAIL.Unload(); + WAIT.Unload(); + STOL.Unload(); + PLCN.Unload(); + CRGR.Unload(); + JOUT.Unload(); + JAIL.Unload(); + CRVA.Unload(); + RNAM.Unload(); + VEND.Unload(); + VENC.Unload(); + VENV.Unload(); + PLVD.Unload(); + CTDA.Unload(); + return 1; + } + +int32_t FACTRecord::WriteRecord(FileWriter &writer) +{ + WRITE(EDID); + WRITE(FULL); + WRITE(XNAM); + WRITE(DATA); + WRITE(JAIL); + WRITE(WAIT); + WRITE(STOL); + WRITE(PLCN); + WRITE(CRGR); + WRITE(JOUT); + WRITE(JAIL); + WRITE(CRVA); + WRITE(RNAM); + WRITE(VEND); + WRITE(VENC); + WRITE(VENV); + WRITE(PLVD); + WRITE(CTDA); + return -1; +} + + bool FACTRecord::operator ==(const FACTRecord &other) const + { + return (EDID.equalsi(other.EDID) && + FULL.equalsi(other.FULL) && + XNAM == other.XNAM && + DATA == other.DATA && + JAIL == other.JAIL && + WAIT == other.WAIT && + STOL == other.STOL && + PLCN == other.PLCN && + CRGR == other.CRGR && + JOUT == other.JOUT && + JAIL == other.JAIL && + CRVA == other.CRVA && + RNAM == other.RNAM && + VEND == other.VEND && + VENC == other.VENC && + VENV == other.VENV && + PLVD == other.PLVD && + CTDA == other.CTDA); + } + +bool FACTRecord::operator !=(const FACTRecord &other) const + { + return !(*this == other); + } + +bool FACTRecord::equals(Record *other) + { + return *this == *(FACTRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/FACTRecord.h b/src/Skyrim/Records/FACTRecord.h new file mode 100644 index 0000000..1176a14 --- /dev/null +++ b/src/Skyrim/Records/FACTRecord.h @@ -0,0 +1,210 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is CBash code. + * + * The Initial Developer of the Original Code is + * Waruddar. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" + +namespace Sk +{ +struct sortRNAM; + +class FACTRecord : public TES5Record //Faction + { + private: + + struct FACTRNAM //Rank + { + ReqSimpleSubRecord RNAM; //Rank# + StringRecord MNAM, FNAM; //Male, Female + + void Write(FileWriter &writer); + + bool operator ==(const FACTRNAM &other) const; + bool operator !=(const FACTRNAM &other) const; + }; + + struct TES5CRVA //Rank + { + uint8_t arrests; + uint8_t attacksOnSight; + uint16_t murder; + uint16_t assault; + uint16_t trespass; + uint16_t pickpocket; + uint16_t unused; + float stealMult; + uint16_t escape; + uint16_t werewolf; + + bool operator ==(const TES5CRVA &other) { + return ( + arrests == other.arrests && + attacksOnSight == other.attacksOnSight && + murder == other.murder && + assault == other.assault && + trespass == other.trespass && + pickpocket == other.pickpocket && + unused == other.unused && + stealMult == other.stealMult && + escape == other.escape && + werewolf == other.werewolf + ); + } + + bool operator !=(const TES5CRVA &other) { + return !(*this == other); + } + + }; + + struct TES5VENV //Rank + { + uint16_t startHour; + uint16_t endHour; + uint32_t radius; + uint8_t buysStolen; + uint8_t negativeVendorList; + uint16_t unused; + + bool operator ==(const TES5VENV &other) { + return ( + startHour == other.startHour && + endHour == other.endHour && + radius == other.radius && + buysStolen == other.buysStolen && + negativeVendorList == other.negativeVendorList + ); + } + + bool operator !=(const TES5VENV &other) { + return !(*this == other); + } + + }; + + struct TES5PLVD //Rank + { + uint32_t specificationType; + FORMID formid; + uint32_t unused; + + bool operator ==(const TES5PLVD &other) { + return ( + specificationType == other.specificationType && + formid == other.formid + ); + } + + bool operator !=(const TES5PLVD &other) { + return !(*this == other); + } + + }; + + enum flagsFlags + { + fIsHiddenFromPC = 0x0001, + fIsEvil = 0x0002, + fIsSpecialCombat = 0x0004, + fIsTrackCrime = 0x0100, + fIsAllowSell = 0x0200 + }; + + friend sortRNAM; + + public: + StringRecord EDID; //Editor ID + StringRecord FULL; //Name + OrderedSparseArray XNAM; //Relations, not sure if record order matters + ReqSubRecord DATA; //Data + OptSimpleSubRecord JAIL; + OptSimpleSubRecord WAIT; + OptSimpleSubRecord STOL; + OptSimpleSubRecord PLCN; + OptSimpleSubRecord CRGR; + OptSimpleSubRecord JOUT; + OptSubRecord CRVA; + + OrderedSparseArray RNAM; //Ranks + OptSimpleSubRecord VEND; + OptSimpleSubRecord VENC; + OptSubRecord VENV; + OptSubRecord PLVD; + OptCounted, uint32_t, REV32(CITC)> CTDA; + + FACTRecord(unsigned char *_recData=NULL); + FACTRecord(FACTRecord *srcRecord); + ~FACTRecord(); + + bool VisitFormIDs(FormIDOp &op); + + bool IsHiddenFromPC(); + void IsHiddenFromPC(bool value); + bool IsEvil(); + void IsEvil(bool value); + bool IsSpecialCombat(); + void IsSpecialCombat(bool value); + bool IsTrackCrime(); + void IsTrackCrime(bool value); + bool IsAllowSell(); + void IsAllowSell(bool value); + bool IsFlagMask(uint16_t Mask, bool Exact=false); + void SetFlagMask(uint16_t Mask); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const FACTRecord &other) const; + bool operator !=(const FACTRecord &other) const; + bool equals(Record *other); + }; + +struct sortRNAM + { + + bool operator()(const FACTRecord::FACTRNAM *lhs, const FACTRecord::FACTRNAM *rhs) const + { + return lhs->RNAM.value < rhs->RNAM.value; + } + + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/FLORRecord.cpp b/src/Skyrim/Records/FLORRecord.cpp new file mode 100644 index 0000000..7d811e7 --- /dev/null +++ b/src/Skyrim/Records/FLORRecord.cpp @@ -0,0 +1,297 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "FLORRecord.h" + +namespace Sk +{ + FLORPFPC::FLORPFPC() : + spring(0), + summer(0), + fall(0), + winter(0) + { + // + } + + FLORPFPC::~FLORPFPC() + { + // + } + + bool FLORPFPC::operator ==(const FLORPFPC &other) const + { + return (spring == other.spring && + summer == other.summer && + fall == other.fall && + winter == other.winter); + } + + bool FLORPFPC::operator !=(const FLORPFPC &other) const + { + return !(*this == other); + } + + FLORRecord::FLORRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + FLORRecord::FLORRecord(FLORRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + MODL = srcRecord->MODL; + DEST = srcRecord->DEST; + KWDA = srcRecord->KWDA; + PNAM = srcRecord->PNAM; + RNAM = srcRecord->RNAM; + FNAM = srcRecord->FNAM; + PFIG = srcRecord->PFIG; + SNAM = srcRecord->SNAM; + PFPC = srcRecord->PFPC; + + + return; + } + + FLORRecord::~FLORRecord() + { + // + } + + uint32_t FLORRecord::GetType() + { + return REV32(FLOR); + } + + char * FLORRecord::GetStrType() + { + return "FLOR"; + } + + + bool FLORRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //TODO - implement VisitFormIDs for struct GENOBND + + if (DEST.IsLoaded()) { + //TODO - implement VisitFormIDs for struct GENDESTRUCT + } + if (PFIG.IsLoaded()) + op.Accept(PFIG.value); + if (KWDA.IsLoaded()) { + for (uint32_t i = 0; i < KWDA.value.size(); ++i) { + + op.Accept(KWDA.value[i]); + + }; + } + + return op.Stop(); + } + + + int32_t FLORRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(MODL): + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(DEST): + DEST.Read(buffer, subSize); + break; + case REV32(KSIZ): + // Ignore on read + buffer += subSize; + break; + case REV32(KWDA): + KWDA.Read(buffer, subSize); + break; + case REV32(PNAM): + PNAM.Read(buffer, subSize); + break; + case REV32(RNAM): + RNAM.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(FNAM): + FNAM.Read(buffer, subSize); + break; + case REV32(PFIG): + PFIG.Read(buffer, subSize); + break; + case REV32(SNAM): + SNAM.Read(buffer, subSize); + break; + case REV32(PFPC): + PFPC.Read(buffer, subSize); + break; + case REV32(MODS): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t FLORRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + OBND.Unload(); + FULL.Unload(); + DEST.Unload(); + KWDA.Unload(); + PNAM.Unload(); + RNAM.Unload(); + FNAM.Unload(); + PFIG.Unload(); + SNAM.Unload(); + PFPC.Unload(); + + return 1; + } + + int32_t FLORRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + WRITE(FULL); + MODL.Write(writer); + WRITE(DEST); + WRITE(KWDA); + WRITE(PNAM); + WRITE(RNAM); + WRITE(FNAM); + WRITE(PFIG); + WRITE(SNAM); + WRITE(PFPC); + return -1; + } + + bool FLORRecord::operator ==(const FLORRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + OBND == other.OBND && + FULL.equalsi(other.FULL) && + MODL == other.MODL && + DEST == other.DEST && + KWDA == other.KWDA && + PNAM == other.PNAM && + RNAM.equals(other.RNAM) && + FNAM == other.FNAM && + PFIG == other.PFIG && + SNAM == other.SNAM && + PFPC == other.PFPC); + } + + bool FLORRecord::operator !=(const FLORRecord &other) const + { + return !(*this == other); + } + + bool FLORRecord::equals(Record *other) + { + return *this == *(FLORRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/FLORRecord.h b/src/Skyrim/Records/FLORRecord.h new file mode 100644 index 0000000..843b195 --- /dev/null +++ b/src/Skyrim/Records/FLORRecord.h @@ -0,0 +1,90 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + struct FLORPFPC + { + uint8_t spring, summer, fall, winter; + + FLORPFPC(); + ~FLORPFPC(); + + bool operator ==(const FLORPFPC &other) const; + bool operator !=(const FLORPFPC &other) const; + }; + + + class FLORRecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + VMADRecord VMAD; // VM data + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // ambient + MODEL MODL; //Model + OptSubRecord DEST; // Destruction data + OptCounted, uint32_t, REV32(KSIZ)> KWDA; + ReqSimpleSubRecord PNAM; + LStringRecord RNAM; // Active Text Override + SemiOptSimpleSubRecord FNAM; // Flags + OptSimpleSubRecord PFIG; + OptSimpleSubRecord SNAM; // Sound - Looping + ReqSubRecord PFPC; + + FLORRecord(unsigned char *_recData = NULL); + FLORRecord(FLORRecord *srcRecord); + ~FLORRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const FLORRecord &other) const; + bool operator !=(const FLORRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/FURNRecord.cpp b/src/Skyrim/Records/FURNRecord.cpp new file mode 100644 index 0000000..67166a3 --- /dev/null +++ b/src/Skyrim/Records/FURNRecord.cpp @@ -0,0 +1,311 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "FURNRecord.h" + +namespace Sk +{ + FURNRecord::FURNRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + FURNRecord::FURNRecord(FURNRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + MODL = srcRecord->MODL; + DEST = srcRecord->DEST; + KWDA = srcRecord->KWDA; + PNAM = srcRecord->PNAM; + FNAM = srcRecord->FNAM; + KNAM = srcRecord->KNAM; + MNAM = srcRecord->MNAM; + WBDT = srcRecord->WBDT; + XMRK = srcRecord->XMRK; + NAM1 = srcRecord->NAM1; + ENAM = srcRecord->ENAM; + NAM0 = srcRecord->NAM0; + FNMK = srcRecord->FNMK; + FNPR = srcRecord->FNPR; + + return; + } + + FURNRecord::~FURNRecord() + { + // + } + + uint32_t FURNRecord::GetType() + { + return REV32(FURN); + } + + char * FURNRecord::GetStrType() + { + return "FURN"; + } + + + bool FURNRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //TODO - implement VisitFormIDs for struct GENOBND + + if (DEST.IsLoaded()) { + //TODO - implement VisitFormIDs for struct GENDESTRUCT + } + if (KWDA.IsLoaded()) { + for (uint32_t i = 0; i < KWDA.value.size(); ++i) { + + op.Accept(KWDA.value[i]); + + }; + } + + for (uint32_t x = 0; x < ENAM.value.size(); ++x) + op.Accept(ENAM.value[x]); + for (uint32_t x = 0; x < NAM0.value.size(); ++x) + op.Accept(NAM0.value[x]); + for (uint32_t x = 0; x < FNPR.value.size(); ++x) + op.Accept(FNPR.value[x]); + + return op.Stop(); + } + + + int32_t FURNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(MODL): + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(DEST): + DEST.Read(buffer, subSize); + break; + case REV32(KSIZ): + // Ignore on read + buffer += subSize; + break; + case REV32(KWDA): + KWDA.Read(buffer, subSize); + break; + case REV32(PNAM): + PNAM.Read(buffer, subSize); + break; + case REV32(FNAM): + FNAM.Read(buffer, subSize); + break; + case REV32(KNAM): + KNAM.Read(buffer, subSize); + break; + case REV32(MNAM): + MNAM.Read(buffer, subSize); + break; + case REV32(WBDT): + WBDT.Read(buffer, subSize); + break; + case REV32(XMRK): + XMRK.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(NAM1): + NAM1.Read(buffer, subSize); + break; + case REV32(ENAM): + ENAM.Read(buffer, subSize); + break; + case REV32(NAM0): + NAM0.Read(buffer, subSize); + break; + case REV32(FNMK): + FNMK.Read(buffer, subSize); + break; + case REV32(FNPR): + FNPR.Read(buffer, subSize); + break; + case REV32(MODS): + case REV32(DSTD): + case REV32(DSTF): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t FURNRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + OBND.Unload(); + FULL.Unload(); + DEST.Unload(); + KWDA.Unload(); + PNAM.Unload(); + FNAM.Unload(); + KNAM.Unload(); + MNAM.Unload(); + WBDT.Unload(); + NAM1.Unload(); + ENAM.Unload(); + NAM0.Unload(); + FNMK.Unload(); + FNPR.Unload(); + + return 1; + } + + int32_t FURNRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + WRITE(FULL); + MODL.Write(writer); + WRITE(DEST); + WRITE(KWDA); + WRITE(PNAM); + WRITE(FNAM); + WRITE(KNAM); + WRITE(MNAM); + WRITE(WBDT); + XMRK.Write(writer); + WRITE(NAM1); + WRITE(ENAM); + WRITE(NAM0); + WRITE(FNMK); + WRITE(FNPR); + + return -1; + } + + bool FURNRecord::operator ==(const FURNRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + OBND == other.OBND && + FULL.equalsi(other.FULL) && + MODL == other.MODL && + DEST == other.DEST && + KWDA == other.KWDA && + PNAM == other.PNAM && + FNAM == other.FNAM && + KNAM == other.KNAM && + MNAM == other.MNAM && + WBDT == other.WBDT && + XMRK == other.XMRK && + NAM1 == other.NAM1 && + ENAM == other.ENAM && + NAM0 == other.NAM0 && + FNMK == other.FNMK && + FNPR == other.FNPR); + } + + bool FURNRecord::operator !=(const FURNRecord &other) const + { + return !(*this == other); + } + + bool FURNRecord::equals(Record *other) + { + return *this == *(FURNRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/FURNRecord.h b/src/Skyrim/Records/FURNRecord.h new file mode 100644 index 0000000..351d83c --- /dev/null +++ b/src/Skyrim/Records/FURNRecord.h @@ -0,0 +1,83 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + class FURNRecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + VMADRecord VMAD; // VM data + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // ambient + MODEL MODL; //Model + OptSubRecord DEST; // Destruction data + OptCounted, uint32_t, REV32(KSIZ)> KWDA; + ReqSimpleSubRecord PNAM; + SemiOptSimpleSubRecord FNAM; // Flags + OptSimpleSubRecord KNAM; + ReqSimpleSubRecord MNAM; //Marker Flags + ReqSimpleSubRecord WBDT; + MODEL XMRK; + OptSimpleSubRecord NAM1; + OrderedSparseArray ENAM; + OrderedSparseArray NAM0; + OptSimpleSubRecord FNMK; + OrderedSparseArray FNPR; + + FURNRecord(unsigned char *_recData = NULL); + FURNRecord(FURNRecord *srcRecord); + ~FURNRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const FURNRecord &other) const; + bool operator !=(const FURNRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/GLOBRecord.cpp b/src/Skyrim/Records/GLOBRecord.cpp new file mode 100644 index 0000000..1db56c9 --- /dev/null +++ b/src/Skyrim/Records/GLOBRecord.cpp @@ -0,0 +1,176 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "GLOBRecord.h" + +namespace Sk +{ + GLOBRecord::GLOBRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + GLOBRecord::GLOBRecord(GLOBRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + EDID = srcRecord->EDID; + FNAM = srcRecord->FNAM; + FLTV = srcRecord->FLTV; + + + return; + } + + GLOBRecord::~GLOBRecord() + { + // + } + + uint32_t GLOBRecord::GetType() + { + return REV32(GLOB); + } + + char * GLOBRecord::GetStrType() + { + return "GLOB"; + } + + + bool GLOBRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + + return op.Stop(); + } + + + int32_t GLOBRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(FNAM): + FNAM.Read(buffer, subSize); + break; + case REV32(FLTV): + FLTV.Read(buffer, subSize); + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t GLOBRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + FNAM.Unload(); + FLTV.Unload(); + + return 1; + } + + int32_t GLOBRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(FNAM); + WRITE(FLTV); + return -1; + } + + bool GLOBRecord::operator ==(const GLOBRecord &other) const + { + return (EDID.equalsi(other.EDID) && + FNAM == other.FNAM && + FLTV == other.FLTV); + } + + bool GLOBRecord::operator !=(const GLOBRecord &other) const + { + return !(*this == other); + } + + bool GLOBRecord::equals(Record *other) + { + return *this == *(GLOBRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/GLOBRecord.h b/src/Skyrim/Records/GLOBRecord.h new file mode 100644 index 0000000..a4e535d --- /dev/null +++ b/src/Skyrim/Records/GLOBRecord.h @@ -0,0 +1,69 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + class GLOBRecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + ReqSimpleSubRecord FNAM; + ReqSimpleFloatSubRecord FLTV; + + GLOBRecord(unsigned char *_recData = NULL); + GLOBRecord(GLOBRecord *srcRecord); + ~GLOBRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const GLOBRecord &other) const; + bool operator !=(const GLOBRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/INFORecord.cpp b/src/Skyrim/Records/INFORecord.cpp new file mode 100644 index 0000000..b0c4a70 --- /dev/null +++ b/src/Skyrim/Records/INFORecord.cpp @@ -0,0 +1,406 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +// BaseRecord.h +#include "../../Common.h" +#include "../../GenericChunks.h" +#include "INFORecord.h" +#include + +namespace Sk { + + + INFORecord::INFORecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + INFORecord::INFORecord(INFORecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + EDID = srcRecord->EDID; + DATA = srcRecord->DATA; + ENAM = srcRecord->ENAM; + PNAM = srcRecord->PNAM; + CNAM = srcRecord->CNAM; + TCLT = srcRecord->TCLT; + DNAM = srcRecord->DNAM; + responses = srcRecord->responses; + CTDA = srcRecord->CTDA; + RNAM = srcRecord->RNAM; + ANAM = srcRecord->ANAM; + TWAT = srcRecord->TWAT; + ONAM = srcRecord->ONAM; + VMAD = srcRecord->VMAD; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + + return; + } + + INFORecord::~INFORecord() + { + // + } + + uint32_t INFORecord::GetType() + { + return REV32(INFO); + } + + char * INFORecord::GetStrType() + { + return "INFO"; + } + + + bool INFORecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + + if (PNAM.IsLoaded()) { + op.Accept(PNAM.value); + } + + for (uint32_t ListIndex = 0; ListIndex < TCLT.value.size(); ListIndex++) + op.Accept(TCLT.value[ListIndex]); + + op.Accept(DNAM.value); + + if (RNAM.IsLoaded()) { + op.Accept(RNAM.value); + } + + //REVERT ASAP! + if (ANAM.IsLoaded()) { + op.Accept(ANAM.value); + } + + if (TWAT.IsLoaded()) { + op.Accept(TWAT.value); + } + + if (ONAM.IsLoaded()) { + op.Accept(ONAM.value); + } + + return op.Stop(); + } + + int32_t INFORecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + INFORecordResponse* response = new INFORecordResponse(); + bool isFirst = true; + SKCondition *current_condition = NULL; + + while (buffer < end_buffer){ + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + + case REV32(ENAM): + ENAM.Read(buffer, subSize); + break; + + case REV32(PNAM): + PNAM.Read(buffer, subSize); + break; + + case REV32(CNAM): + CNAM.Read(buffer, subSize); + break; + + case REV32(TCLT): + TCLT.Read(buffer, subSize); + break; + + case REV32(DNAM): + DNAM.Read(buffer, subSize); + break; + + case REV32(VMAD): + VMAD.Load(); + VMAD.value->Read(buffer, subSize, REV32(INFO), CompressedOnDisk); + break; + + case REV32(TRDT): + if (!isFirst) { + this->responses.push_back(response); + INFORecordResponse* response = new INFORecordResponse(); + } + else { + isFirst = false; + } + response->TRDT.Read(buffer, subSize); + break; + + case REV32(NAM1): + if (response == NULL) { + throw std::runtime_error("Wrong responses format in INFO"); + } + response->NAM1.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(NAM2): + if (response == NULL) { + throw std::runtime_error("Wrong responses format in INFO"); + } + response->NAM2.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(NAM3): + if (response == NULL) { + throw std::runtime_error("Wrong responses format in INFO"); + } + response->NAM3.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(SNAM): + if (response == NULL) { + throw std::runtime_error("Wrong responses format in INFO"); + } + response->SNAM.Read(buffer, subSize); + break; + + case REV32(LNAM): + if (response == NULL) { + throw std::runtime_error("Wrong responses format in INFO"); + } + response->LNAM.Read(buffer, subSize); + break; + + case REV32(CTDA): + current_condition = new SKCondition(); + CTDA.value.push_back(current_condition); + current_condition->CTDA.Read(buffer, subSize); + break; + + + case REV32(CIS1): + if (current_condition == NULL) { + printer(" INFO: %08X - Reading CIS1 without current_condition set\n", formID); + CBASH_CHUNK_DEBUG + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + else { + current_condition->CIS1.Read(buffer, subSize, CompressedOnDisk); + } + + break; + + case REV32(CIS2): + if (current_condition == NULL) { + printer(" INFO: %08X - Reading CIS2 without current_condition set\n", formID); + CBASH_CHUNK_DEBUG + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + else { + current_condition->CIS2.Read(buffer, subSize, CompressedOnDisk); + } + + break; + + case REV32(RNAM): + RNAM.Read(buffer, subSize); + break; + + case REV32(ANAM): + ANAM.Read(buffer, subSize); + break; + + case REV32(TWAT): + TWAT.Read(buffer, subSize); + break; + + case REV32(ONAM): + ONAM.Read(buffer, subSize); + break; + + case REV32(SCHR): + // not implemented yet + buffer = end_buffer; + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t INFORecord::Unload() + { + IsChanged(false); + IsLoaded(false); + + + EDID.Unload(); + DATA.Unload(); + ENAM.Unload(); + PNAM.Unload(); + CNAM.Unload(); + TCLT.Unload(); + DNAM.Unload(); + VMAD.Unload(); + + for (uint32_t i = 0; i < responses.size(); ++i) { + + /* + responses[i]->TRDT.Unload(); + */ + responses[i]->NAM1.Unload(); + responses[i]->NAM2.Unload(); + responses[i]->NAM3.Unload(); + responses[i]->SNAM.Unload(); + responses[i]->LNAM.Unload(); + delete responses[i]; + } + + + CTDA.Unload(); + RNAM.Unload(); + ANAM.Unload(); + TWAT.Unload(); + ONAM.Unload(); + return 1; + } + + int32_t INFORecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + + if (VMAD.IsLoaded()) { + VMAD.value->Write(REV32(VMAD), writer); //A bit hacky way to do it. + } + WRITE(DATA); + WRITE(ENAM); + WRITE(PNAM); + WRITE(CNAM); + WRITE(TCLT); + WRITE(DNAM); + + for (uint32_t i = 0; i < responses.size(); ++i) { + + responses[i]->TRDT.Write(REV32(TRDT),writer); + responses[i]->NAM1.Write(REV32(NAM1), writer); + responses[i]->NAM2.Write(REV32(NAM2), writer); + responses[i]->NAM3.Write(REV32(NAM3), writer); + responses[i]->SNAM.Write(REV32(SNAM), writer); + responses[i]->LNAM.Write(REV32(LNAM), writer); + } + + CTDA.Write(writer); + WRITE(RNAM); + WRITE(ANAM); + WRITE(TWAT); + WRITE(ONAM); + return -1; + } + + bool INFORecord::operator ==(const INFORecord &other) const + { + return (EDID.equalsi(other.EDID) && + DATA == other.DATA && + ENAM == other.ENAM && + PNAM == other.PNAM && + CNAM == other.CNAM && + TCLT == other.TCLT && + DNAM == other.DNAM && + responses == other.responses && + CTDA == other.CTDA && + RNAM == other.RNAM && + ANAM == other.ANAM && + TWAT == other.TWAT && + ONAM == other.ONAM + ); + } + + bool INFORecord::operator !=(const INFORecord &other) const + { + return !(*this == other); + } + + bool INFORecord::equals(Record *other) + { + return *this == *(INFORecord *)other; + } + +} \ No newline at end of file diff --git a/src/Skyrim/Records/INFORecord.h b/src/Skyrim/Records/INFORecord.h new file mode 100644 index 0000000..a563321 --- /dev/null +++ b/src/Skyrim/Records/INFORecord.h @@ -0,0 +1,180 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +// BaseRecord.h +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../VMAD/VMAD.h" +#include + +namespace Sk { + + struct INFOPACKENAM { + + uint16_t flags; + uint16_t resetTime; + + INFOPACKENAM() { + this->flags = 0; + this->resetTime = 0; + } + + bool operator ==(const INFOPACKENAM &other) const { + return ( + this->flags == other.flags && + this->resetTime == other.resetTime + ); + } + + bool operator !=(const INFOPACKENAM &other) const + { + return !(*this == other); + } + + ~INFOPACKENAM() {} + + }; + + struct INFOPACKDATA { + + uint16_t dialogueTab; + uint16_t flags; + float resetTime; + + INFOPACKDATA() { + this->dialogueTab = 0; + this->flags = 0; + this->resetTime = 0; + } + + bool operator ==(const INFOPACKDATA &other) const { + return ( + this->dialogueTab == other.dialogueTab && + this->flags == other.flags && + this->resetTime == other.resetTime + ); + } + + bool operator !=(const INFOPACKDATA &other) const + { + return !(*this == other); + } + + ~INFOPACKDATA() {} + + }; + + struct PACKTRDT { + uint32_t emotionType; + uint32_t emotionValue; + uint32_t unk1AlwaysZero; + uint8_t responseNumber; + uint8_t junk[3]; + FORMID soundFile; + uint8_t useEmotionAnimation; + uint8_t junkTwo[3]; + + PACKTRDT() { + this->emotionType = 0; + this->emotionValue = 0; + this->unk1AlwaysZero = 0; + this->responseNumber = 0; + for (uint8_t i = 0; i <= 2; ++i) { junk[i] = 0; } + this->soundFile = 0; + this->useEmotionAnimation = false; + for (uint8_t i = 0; i <= 2; ++i) { junkTwo[i] = 0; } + + }; + ~PACKTRDT() {}; + + }; + + struct INFORecordResponse { + ReqSubRecord TRDT; + StringRecord NAM1; + StringRecord NAM2; + StringRecord NAM3; + OptSimpleSubRecord SNAM; + OptSimpleSubRecord LNAM; + }; + + class INFORecord : public TES5Record { + + public: + StringRecord EDID; //Editor ID + //VMAD + OptSubRecord VMAD; + OptSubRecord DATA; + OptSubRecord ENAM; + OptSimpleSubRecord PNAM; + SemiOptSimpleSubRecord CNAM; + OrderedSparseArray TCLT; //Array of formids to the following topics. + OptSimpleSubRecord DNAM; //Shared dial + + std::vector responses; //Array of formids to the following topics. + UnorderedSparseArray CTDA; //Conditions + + //SCHR + + OptSimpleSubRecord RNAM; + OptSimpleSubRecord ANAM; + OptSimpleSubRecord TWAT; + OptSimpleSubRecord ONAM; + + INFORecord(unsigned char *_recData = NULL); + INFORecord(INFORecord *srcRecord); + ~INFORecord(); + + uint32_t GetType(); + char * GetStrType(); + + bool VisitFormIDs(FormIDOp &op); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + + bool operator ==(const INFORecord &other) const; + bool operator !=(const INFORecord &other) const; + bool equals(Record *other); + + }; + + +} \ No newline at end of file diff --git a/src/Skyrim/Records/INGRRecord.cpp b/src/Skyrim/Records/INGRRecord.cpp new file mode 100644 index 0000000..c3893c0 --- /dev/null +++ b/src/Skyrim/Records/INGRRecord.cpp @@ -0,0 +1,294 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "INGRRecord.h" + +namespace Sk +{ + INGRRecord::INGRRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + INGRRecord::INGRRecord(INGRRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if(!srcRecord->IsChanged()) + return; + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + MODL = srcRecord->MODL; + KWDA = srcRecord->KWDA; + ICON = srcRecord->ICON; + YNAM = srcRecord->YNAM; + ZNAM = srcRecord->ZNAM; + DATA = srcRecord->DATA; + ENIT = srcRecord->ENIT; + effects = srcRecord->effects; + + + return; + } + + INGRRecord::~INGRRecord() + { + // + } + + uint32_t INGRRecord::GetType() + { + return REV32(INGR); + } + + char * INGRRecord::GetStrType() + { + return "INGR"; + } + + + bool INGRRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + if (VMAD.IsLoaded()) { + //TODO - implement VisitFormIDs for struct VMADRecord + } + //TODO - implement VisitFormIDs for struct GENOBND + + if (KWDA.IsLoaded()) { + for (uint32_t i = 0; i < KWDA.value.size(); ++i) { + + op.Accept(KWDA.value[i]); + + }; + } + if (YNAM.IsLoaded()) { + op.Accept(YNAM.value); + } + if (ZNAM.IsLoaded()) { + op.Accept(ZNAM.value); + } + //TODO - implement VisitFormIDs for struct ItemData + + //TODO - implement VisitFormIDs for struct EnchantedItem + + + return op.Stop(); + } + + + int32_t INGRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + SpellEffect *currentEffect = NULL; + while (buffer < end_buffer){ + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(KSIZ): + // Number of KWDAs + buffer += subSize; + break; + case REV32(KWDA): + KWDA.Read(buffer, subSize); + break; + case REV32(MODL): + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODS): + MODL.Textures.Read(buffer, subSize); + break; + case REV32(ICON): + ICON.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(YNAM): + YNAM.Read(buffer, subSize); + break; + case REV32(ZNAM): + ZNAM.Read(buffer, subSize); + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + case REV32(ENIT): + ENIT.Read(buffer, subSize); + break; + case REV32(EFID): + currentEffect = new SpellEffect(); + effects.value.push_back(currentEffect); + currentEffect->EFID.Read(buffer, subSize); + break; + + case REV32(EFIT): + if(currentEffect != NULL) { + currentEffect->EFIT.Read(buffer, subSize); + } else { + printer(" INGR: %08X - EFIT found without an effect initialized\n", formID); + buffer += subSize; + } + + break; + + case REV32(CTDA): + if(currentEffect != NULL) { + currentEffect->CTDA.Read(buffer, subSize); + } else { + printer(" INGR: %08X - CTDA found without an effect initialized\n", formID); + buffer += subSize; + } + + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t INGRRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + OBND.Unload(); + FULL.Unload(); + //MODL.Unload(); + KWDA.Unload(); + ICON.Unload(); + YNAM.Unload(); + ZNAM.Unload(); + DATA.Unload(); + ENIT.Unload(); + //effects.Unload(); + + return 1; + } + + int32_t INGRRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + WRITE(FULL); + WRITE(KWDA); + MODL.Write(writer); + WRITE(ICON); + WRITE(YNAM); + WRITE(ZNAM); + WRITE(DATA); + WRITE(ENIT); + effects.Write(writer); + return -1; + } + + bool INGRRecord::operator ==(const INGRRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + OBND == other.OBND && + FULL.equalsi(other.FULL) && + KWDA == other.KWDA && + MODL == other.MODL && + ICON.equalsi(other.ICON) && + YNAM == other.YNAM && + ZNAM == other.ZNAM && + DATA == other.DATA && + ENIT == other.ENIT && + effects == other.effects); + } + + bool INGRRecord::operator !=(const INGRRecord &other) const + { + return !(*this == other); + } + + bool INGRRecord::equals(Record *other) + { + return *this == *(INGRRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/INGRRecord.h b/src/Skyrim/Records/INGRRecord.h new file mode 100644 index 0000000..9964a96 --- /dev/null +++ b/src/Skyrim/Records/INGRRecord.h @@ -0,0 +1,110 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + struct EnchantedItem { + uint32_t value; + uint32_t flags; + + bool operator == (const EnchantedItem &other) const { + return ( + this->value == other.value && + this->flags == other.flags + ); + } + bool operator != (const EnchantedItem &other) { + return !(*this == other); + } + }; + + struct ItemData { + uint32_t value; + uint32_t weight; + + bool operator == (const ItemData &other) const { + return ( + this->value == other.value && + this->weight == other.weight + ); + } + bool operator != (const ItemData &other) { + return !(*this == other); + } + + }; + + class INGRRecord : public TES5Record // SPELvator record + { + public: + StringRecord EDID; // Editor ID + VMADRecord VMAD; // VM data + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // Full Name + OptCounted, uint32_t, REV32(KSIZ)> KWDA; + FNVMODEL MODL; // Model + StringRecord ICON; + OptSimpleSubRecord YNAM; + OptSimpleSubRecord ZNAM; + ReqSubRecord DATA; + ReqSubRecord ENIT; // Description + UnorderedSparseArray effects; + + INGRRecord(unsigned char *_recData = NULL); + INGRRecord(INGRRecord *srcRecord); + ~INGRRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const INGRRecord &other) const; + bool operator !=(const INGRRecord &other) const; + bool equals(Record *other); + }; + +} // namespace Sk diff --git a/src/Skyrim/Records/KEYMRecord.cpp b/src/Skyrim/Records/KEYMRecord.cpp new file mode 100644 index 0000000..c6f709c --- /dev/null +++ b/src/Skyrim/Records/KEYMRecord.cpp @@ -0,0 +1,241 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "KEYMRecord.h" + +namespace Sk +{ + KEYMRecord::KEYMRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + KEYMRecord::KEYMRecord(KEYMRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + MODL = srcRecord->MODL; + YNAM = srcRecord->YNAM; + ZNAM = srcRecord->ZNAM; + KWDA = srcRecord->KWDA; + DATA = srcRecord->DATA; + + + return; + } + + KEYMRecord::~KEYMRecord() + { + // + } + + uint32_t KEYMRecord::GetType() + { + return REV32(KEYM); + } + + char * KEYMRecord::GetStrType() + { + return "KEYM"; + } + + + bool KEYMRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //TODO - implement VisitFormIDs for struct GENOBND + + if (YNAM.IsLoaded()) { + op.Accept(YNAM.value); + } + if (ZNAM.IsLoaded()) { + op.Accept(ZNAM.value); + } + if (KWDA.IsLoaded()) { + for (uint32_t i = 0; i < KWDA.value.size(); ++i) { + + op.Accept(KWDA.value[i]); + + }; + } + if (DATA.IsLoaded()) { + //TODO - implement VisitFormIDs for struct struct KEYMDATA + } + + return op.Stop(); + } + + + int32_t KEYMRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(MODL): + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(YNAM): + YNAM.Read(buffer, subSize); + break; + case REV32(ZNAM): + ZNAM.Read(buffer, subSize); + break; + case REV32(KWDA): + KWDA.Read(buffer, subSize); + break; + case REV32(KSIZ): + buffer += subSize; + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t KEYMRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + OBND.Unload(); + FULL.Unload(); + YNAM.Unload(); + ZNAM.Unload(); + KWDA.Unload(); + DATA.Unload(); + + return 1; + } + + int32_t KEYMRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + MODL.Write(writer); + WRITE(FULL); + WRITE(YNAM); + WRITE(ZNAM); + WRITE(KWDA); + WRITE(DATA); + return -1; + } + + bool KEYMRecord::operator ==(const KEYMRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + OBND == other.OBND && + MODL == other.MODL && + FULL.equalsi(other.FULL) && + YNAM == other.YNAM && + ZNAM == other.ZNAM && + KWDA == other.KWDA && + DATA == other.DATA); + } + + bool KEYMRecord::operator !=(const KEYMRecord &other) const + { + return !(*this == other); + } + + bool KEYMRecord::equals(Record *other) + { + return *this == *(KEYMRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/KEYMRecord.h b/src/Skyrim/Records/KEYMRecord.h new file mode 100644 index 0000000..6f6cfd3 --- /dev/null +++ b/src/Skyrim/Records/KEYMRecord.h @@ -0,0 +1,88 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The KEYMents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* KEYMributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the KEYMents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + struct KEYMDATA { + uint32_t value; + float weight; + + bool operator ==(const KEYMDATA &other) const { + return value == other.value && + weight == other.weight; + } + bool operator !=(const KEYMDATA &other) const { + return !(*this == other); + } + }; + + class KEYMRecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + VMADRecord VMAD; // VM data + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // ambient + MODEL MODL; //Model + OptSimpleSubRecord YNAM; // Sound open name + OptSimpleSubRecord ZNAM; // Sound close name + OptCounted, uint32_t, REV32(KSIZ)> KWDA; // Keywords + OptSubRecord DATA; + + KEYMRecord(unsigned char *_recData = NULL); + KEYMRecord(KEYMRecord *srcRecord); + ~KEYMRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const KEYMRecord &other) const; + bool operator !=(const KEYMRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/KYWDRecord.cpp b/src/Skyrim/Records/KYWDRecord.cpp index d6210b6..01635c5 100644 --- a/src/Skyrim/Records/KYWDRecord.cpp +++ b/src/Skyrim/Records/KYWDRecord.cpp @@ -100,11 +100,8 @@ int32_t KYWDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer CNAM.Read(buffer, subSize); break; default: - //printer("Filename = %s\n", FileName); - printer(" AACT: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/KYWDRecord.h b/src/Skyrim/Records/KYWDRecord.h index 0997387..3bb611d 100644 --- a/src/Skyrim/Records/KYWDRecord.h +++ b/src/Skyrim/Records/KYWDRecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" -#include "..\SkyrimChunks.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -62,6 +62,7 @@ class KYWDRecord : public TES5Record // Keyword record int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const KYWDRecord &other) const; bool operator !=(const KYWDRecord &other) const; diff --git a/src/Skyrim/Records/LANDRecord.cpp b/src/Skyrim/Records/LANDRecord.cpp index ad35887..69694fb 100644 --- a/src/Skyrim/Records/LANDRecord.cpp +++ b/src/Skyrim/Records/LANDRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LANDRecord.h" #include "CELLRecord.h" @@ -399,11 +399,8 @@ int32_t LANDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer VTEX.Read(buffer, subSize); break; default: - //printer("FileName = %s\n", FileName); - printer(" LAND: %08X - Unknown subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/LANDRecord.h b/src/Skyrim/Records/LANDRecord.h index 3c6396a..79b45d0 100644 --- a/src/Skyrim/Records/LANDRecord.h +++ b/src/Skyrim/Records/LANDRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Sk { diff --git a/src/Skyrim/Records/LIGHRecord.cpp b/src/Skyrim/Records/LIGHRecord.cpp new file mode 100644 index 0000000..5a7d559 --- /dev/null +++ b/src/Skyrim/Records/LIGHRecord.cpp @@ -0,0 +1,277 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "LIGHRecord.h" + +namespace Sk +{ + LIGHDATA::LIGHDATA() : + duration(0), + radius(0), + flags(0), + falloff(0.0f), + fov(0.0f), + value(0), + weight(0.0f) + { + // + } + + LIGHDATA::~LIGHDATA() + { + // + } + + bool LIGHDATA::operator ==(const LIGHDATA &other) const + { + return (duration == other.duration && + radius == other.radius && + color == other.color && + flags == other.flags && + AlmostEqual(falloff, other.falloff, 2) && + AlmostEqual(fov, other.fov, 2) && + value == other.value && + AlmostEqual(weight, other.weight, 2)); + } + + bool LIGHDATA::operator !=(const LIGHDATA &other) const + { + return !(*this == other); + } + + LIGHRecord::LIGHRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + LIGHRecord::LIGHRecord(LIGHRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + MODL = srcRecord->MODL; + DEST = srcRecord->DEST; + ICON = srcRecord->ICON; + MICO = srcRecord->MICO; + DATA = srcRecord->DATA; + FNAM = srcRecord->FNAM; + SNAM = srcRecord->SNAM; + + return; + } + + LIGHRecord::~LIGHRecord() + { + // + } + + uint32_t LIGHRecord::GetType() + { + return REV32(LIGH); + } + + char * LIGHRecord::GetStrType() + { + return "LIGH"; + } + + + bool LIGHRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //TODO - implement VisitFormIDs for struct GENOBND + + if (DEST.IsLoaded()) { + //TODO - implement VisitFormIDs for struct GENDESTRUCT + } + + return op.Stop(); + } + + + int32_t LIGHRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(MODL): + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(DEST): + DEST.Read(buffer, subSize); + break; + case REV32(ICON): + ICON.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MICO): + MICO.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + case REV32(FNAM): + FNAM.Read(buffer, subSize); + break; + case REV32(SNAM): + SNAM.Read(buffer, subSize); + break; + case REV32(MODS): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t LIGHRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + OBND.Unload(); + FULL.Unload(); + DEST.Unload(); + ICON.Unload(); + MICO.Unload(); + DATA.Unload(); + FNAM.Unload(); + SNAM.Unload(); + + return 1; + } + + int32_t LIGHRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + WRITE(FULL); + MODL.Write(writer); + WRITE(DEST); + WRITE(ICON); + WRITE(MICO); + WRITE(DATA); + WRITE(FNAM); + WRITE(SNAM); + + return -1; + } + + bool LIGHRecord::operator ==(const LIGHRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + OBND == other.OBND && + FULL.equalsi(other.FULL) && + MODL == other.MODL && + DEST == other.DEST && + ICON.equalsi(ICON) && + MICO.equalsi(MICO) && + DATA == other.DATA && + FNAM == other.FNAM && + SNAM == other.SNAM); + } + + bool LIGHRecord::operator !=(const LIGHRecord &other) const + { + return !(*this == other); + } + + bool LIGHRecord::equals(Record *other) + { + return *this == *(LIGHRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/LIGHRecord.h b/src/Skyrim/Records/LIGHRecord.h new file mode 100644 index 0000000..0a4d7e2 --- /dev/null +++ b/src/Skyrim/Records/LIGHRecord.h @@ -0,0 +1,92 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + struct LIGHDATA + { + int32_t duration; + uint32_t radius; + GENCLR color; + uint32_t flags; + float falloff, fov; + uint32_t value; + float weight; + + LIGHDATA(); + ~LIGHDATA(); + + bool operator ==(const LIGHDATA &other) const; + bool operator !=(const LIGHDATA &other) const; + }; + class LIGHRecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + VMADRecord VMAD; // VM data + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // ambient + MODEL MODL; //Model + OptSubRecord DEST; // Destruction data + StringRecord ICON; + StringRecord MICO; + ReqSubRecord DATA; //Data + OptSimpleFloatSubRecord FNAM; //Fade value + OptSimpleSubRecord SNAM; //Sound + + LIGHRecord(unsigned char *_recData = NULL); + LIGHRecord(LIGHRecord *srcRecord); + ~LIGHRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const LIGHRecord &other) const; + bool operator !=(const LIGHRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/LTEXRecord.cpp b/src/Skyrim/Records/LTEXRecord.cpp index 259e427..3814fdf 100644 --- a/src/Skyrim/Records/LTEXRecord.cpp +++ b/src/Skyrim/Records/LTEXRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LTEXRecord.h" namespace Sk @@ -152,11 +152,8 @@ int32_t LTEXRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer GNAM.Read(buffer, subSize); break; default: - //printer("FileName = %s\n", FileName); - printer(" LTEX: %08X - Unknown subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/LTEXRecord.h b/src/Skyrim/Records/LTEXRecord.h index d8765c5..956f10c 100644 --- a/src/Skyrim/Records/LTEXRecord.h +++ b/src/Skyrim/Records/LTEXRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Sk { @@ -79,6 +79,7 @@ class LTEXRecord : public TES5Record //Landscape Texture int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const LTEXRecord &other) const; bool operator !=(const LTEXRecord &other) const; diff --git a/src/Skyrim/Records/LVLIRecord.cpp b/src/Skyrim/Records/LVLIRecord.cpp index 05635e8..f6cb7d3 100644 --- a/src/Skyrim/Records/LVLIRecord.cpp +++ b/src/Skyrim/Records/LVLIRecord.cpp @@ -34,7 +34,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LVLIRecord.h" namespace Sk { @@ -182,11 +182,8 @@ int32_t LVLIRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer buffer += subSize; break; default: - //printer("FileName = %s\n", FileName); - printer(" LVLI: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/LVLIRecord.h b/src/Skyrim/Records/LVLIRecord.h index cedaa58..f649415 100644 --- a/src/Skyrim/Records/LVLIRecord.h +++ b/src/Skyrim/Records/LVLIRecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" -#include "..\SkyrimChunks.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -87,6 +87,7 @@ class LVLIRecord : public TES5Record //Leveled Item int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const LVLIRecord &other) const; bool operator !=(const LVLIRecord &other) const; diff --git a/src/Skyrim/Records/LVLNRecord.cpp b/src/Skyrim/Records/LVLNRecord.cpp index 5da3227..ca4c614 100644 --- a/src/Skyrim/Records/LVLNRecord.cpp +++ b/src/Skyrim/Records/LVLNRecord.cpp @@ -34,7 +34,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LVLNRecord.h" namespace Sk { @@ -76,9 +76,7 @@ bool LVLNRecord::VisitFormIDs(FormIDOp &op) for(uint32_t x = 0; x < Entries.value.size(); x++) op.Accept(Entries.value[x]->listId); - if (MODL.IsLoaded()) - if (MODL->Textures.IsLoaded()) - MODL->Textures.VisitFormIDs(op); + MODL.Textures.VisitFormIDs(op); return op.Stop(); } @@ -179,23 +177,21 @@ int32_t LVLNRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer buffer += subSize; break; case REV32(MODL): - MODL.Load(); - MODL->MODL.Read(buffer, subSize, CompressedOnDisk); + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); break; case REV32(MODT): - MODL.Load(); - MODL->MODT.Read(buffer, subSize, CompressedOnDisk); + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); break; case REV32(MODS): - MODL.Load(); - MODL->Textures.Read(buffer, subSize); + MODL.Textures.Read(buffer, subSize); + break; + case REV32(COED): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; break; default: - //printer("FileName = %s\n", FileName); - printer(" LVLN: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -213,7 +209,6 @@ int32_t LVLNRecord::Unload() LVLF.Unload(); LVLG.Unload(); Entries.Unload(); - MODL.Unload(); return 1; } @@ -225,7 +220,7 @@ int32_t LVLNRecord::WriteRecord(FileWriter &writer) WRITE(LVLF); WRITE(LVLG); Entries.Write(writer); - WRITE(MODL); + MODL.Write(writer); return -1; } diff --git a/src/Skyrim/Records/LVLNRecord.h b/src/Skyrim/Records/LVLNRecord.h index 318570e..9eb5d29 100644 --- a/src/Skyrim/Records/LVLNRecord.h +++ b/src/Skyrim/Records/LVLNRecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" -#include "..\SkyrimChunks.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -60,7 +60,7 @@ class LVLNRecord : public TES5Record //Leveled Item OptSimpleSubRecord LVLG; // Global // ReqSimpleSubRecord LLCT; //Count - ignored on read, properly written ReqCounted, uint8_t, REV32(LLCT)> Entries; //Leveled List Entries - OptSubRecord MODL; //Model + FNVMODEL MODL; //Model LVLNRecord(unsigned char *_recData=NULL); LVLNRecord(LVLNRecord *srcRecord); @@ -88,6 +88,7 @@ class LVLNRecord : public TES5Record //Leveled Item int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const LVLNRecord &other) const; bool operator !=(const LVLNRecord &other) const; diff --git a/src/Skyrim/Records/LVSPRecord.cpp b/src/Skyrim/Records/LVSPRecord.cpp index fa35abd..d586a3d 100644 --- a/src/Skyrim/Records/LVSPRecord.cpp +++ b/src/Skyrim/Records/LVSPRecord.cpp @@ -34,7 +34,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "LVSPRecord.h" namespace Sk { @@ -167,11 +167,8 @@ int32_t LVSPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer buffer += subSize; break; default: - //printer("FileName = %s\n", FileName); - printer(" LVSP: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/LVSPRecord.h b/src/Skyrim/Records/LVSPRecord.h index 543ac7e..118273c 100644 --- a/src/Skyrim/Records/LVSPRecord.h +++ b/src/Skyrim/Records/LVSPRecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" -#include "..\SkyrimChunks.h" +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -86,6 +86,7 @@ class LVSPRecord : public TES5Record //Leveled Spell int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const LVSPRecord &other) const; bool operator !=(const LVSPRecord &other) const; diff --git a/src/Skyrim/Records/MATTRecord.cpp b/src/Skyrim/Records/MATTRecord.cpp index a37d6a9..4c03342 100644 --- a/src/Skyrim/Records/MATTRecord.cpp +++ b/src/Skyrim/Records/MATTRecord.cpp @@ -34,7 +34,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "MATTRecord.h" namespace Sk @@ -175,11 +175,8 @@ int32_t MATTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer HNAM.Read(buffer, subSize); break; default: - //printer("FileName = %s\n", FileName); - printer(" MATT: %08X - Unknown subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/MATTRecord.h b/src/Skyrim/Records/MATTRecord.h index 3303a56..9a41b41 100644 --- a/src/Skyrim/Records/MATTRecord.h +++ b/src/Skyrim/Records/MATTRecord.h @@ -35,8 +35,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Sk { @@ -91,6 +91,7 @@ class MATTRecord : public TES5Record //Material Type int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const MATTRecord &other) const; bool operator !=(const MATTRecord &other) const; diff --git a/src/Skyrim/Records/MGEFRecord.cpp b/src/Skyrim/Records/MGEFRecord.cpp new file mode 100644 index 0000000..7b450ff --- /dev/null +++ b/src/Skyrim/Records/MGEFRecord.cpp @@ -0,0 +1,160 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "MGEFRecord.h" + +namespace Sk { + + MGEFRecord::MGEFRecord(unsigned char *_recData) + : TES5Record(_recData) + { + // + } + + MGEFRecord::MGEFRecord(MGEFRecord *srcRecord) + : TES5Record((TES5Record *)srcRecord) + { + if (srcRecord == NULL || !srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + } + + MGEFRecord::~MGEFRecord() + { + // + } + + uint32_t MGEFRecord::GetType() + { + return REV32(MGEF); + } + + char * MGEFRecord::GetStrType() + { + return "MGEF"; + } + + int32_t MGEFRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + while (buffer < end_buffer) + { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + case REV32(FULL): + case REV32(MDOB): + case REV32(KSIZ): + case REV32(KWDA): + case REV32(DATA): + case REV32(SNDD): + case REV32(DNAM): + buffer = end_buffer; + // Not needed atm + break; + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t MGEFRecord::Unload() + { + IsLoaded(false); + IsChanged(false); + EDID.Unload(); + return 1; + } + + int32_t MGEFRecord::WriteRecord(FileWriter &writer) + { + // Not fully implemented, must not ever be written + log_error << "MGEF Record is not fully implemented yet!\n"; + std::abort(); + WRITE(EDID); + return -1; + } + + bool MGEFRecord::operator ==(const MGEFRecord &other) const + { + return (EDID.equalsi(other.EDID) + ); + } + + bool MGEFRecord::operator !=(const MGEFRecord &other) const + { + return !(*this == other); + } + + bool MGEFRecord::equals(Record *other) + { + try + { + return *this == *dynamic_cast(other); + } + catch (...) + { + return false; + } + } + +} // namespace Sk diff --git a/src/Skyrim/Records/MGEFRecord.h b/src/Skyrim/Records/MGEFRecord.h new file mode 100644 index 0000000..ba272b3 --- /dev/null +++ b/src/Skyrim/Records/MGEFRecord.h @@ -0,0 +1,66 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" + +namespace Sk { + + class MGEFRecord : public TES5Record // Action record + { + public: + StringRecord EDID; // Editor ID + + MGEFRecord(unsigned char *_recData = NULL); + MGEFRecord(MGEFRecord *srcRecord); + ~MGEFRecord(); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const MGEFRecord &other) const; + bool operator !=(const MGEFRecord &other) const; + bool equals(Record *other); + }; + +} // namespace Sk diff --git a/src/Skyrim/Records/MISCRecord.cpp b/src/Skyrim/Records/MISCRecord.cpp new file mode 100644 index 0000000..b916b67 --- /dev/null +++ b/src/Skyrim/Records/MISCRecord.cpp @@ -0,0 +1,266 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "MISCRecord.h" + +namespace Sk +{ + MISCRecord::MISCRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + MISCRecord::MISCRecord(MISCRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + MODL = srcRecord->MODL; + ICON = srcRecord->ICON; + MICO = srcRecord->MICO; + DEST = srcRecord->DEST; + YNAM = srcRecord->YNAM; + ZNAM = srcRecord->ZNAM; + KWDA = srcRecord->KWDA; + DATA = srcRecord->DATA; + + + return; + } + + MISCRecord::~MISCRecord() + { + // + } + + uint32_t MISCRecord::GetType() + { + return REV32(MISC); + } + + char * MISCRecord::GetStrType() + { + return "MISC"; + } + + + bool MISCRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //TODO - implement VisitFormIDs for struct GENOBND + + if (DEST.IsLoaded()) { + //TODO - implement VisitFormIDs for struct GENDESTRUCT + } + op.Accept(YNAM.value); + op.Accept(ZNAM.value); + if (KWDA.IsLoaded()) { + for (uint32_t i = 0; i < KWDA.value.size(); ++i) { + + op.Accept(KWDA.value[i]); + + }; + } + if (DATA.IsLoaded()) { + //TODO - implement VisitFormIDs for struct MISCDATA + } + + return op.Stop(); + } + + + int32_t MISCRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(MODL): + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(ICON): + ICON.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MICO): + MICO.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(DEST): + DEST.Read(buffer, subSize); + break; + case REV32(YNAM): + YNAM.Read(buffer, subSize); + break; + case REV32(ZNAM): + ZNAM.Read(buffer, subSize); + break; + case REV32(KSIZ): + // Ignore on read + buffer += subSize; + break; + case REV32(KWDA): + KWDA.Read(buffer, subSize); + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + case REV32(MODS): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t MISCRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + OBND.Unload(); + FULL.Unload(); + ICON.Unload(); + MICO.Unload(); + DEST.Unload(); + YNAM.Unload(); + ZNAM.Unload(); + KWDA.Unload(); + DATA.Unload(); + + return 1; + } + + int32_t MISCRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + WRITE(FULL); + MODL.Write(writer); + WRITE(ICON); + WRITE(MICO); + WRITE(DEST); + WRITE(YNAM); + WRITE(ZNAM); + WRITE(KWDA); + WRITE(DATA); + return -1; + } + + bool MISCRecord::operator ==(const MISCRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + OBND == other.OBND && + FULL.equalsi(other.FULL) && + MODL == other.MODL && + ICON.equalsi(other.ICON) && + MICO.equalsi(other.MICO) && + DEST == other.DEST && + YNAM == other.YNAM && + ZNAM == other.ZNAM && + KWDA == other.KWDA && + DATA == other.DATA); + } + + bool MISCRecord::operator !=(const MISCRecord &other) const + { + return !(*this == other); + } + + bool MISCRecord::equals(Record *other) + { + return *this == *(MISCRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/MISCRecord.h b/src/Skyrim/Records/MISCRecord.h new file mode 100644 index 0000000..60fa8c0 --- /dev/null +++ b/src/Skyrim/Records/MISCRecord.h @@ -0,0 +1,97 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + struct MISCDATA { + + uint32_t value; + float weight; + + bool operator ==(const MISCDATA &other) const { + + return ( + this->value == other.value && + this->weight == other.weight); + + } + + bool operator !=(const MISCDATA &other) const { + return !(*this == other); + } + }; + + + class MISCRecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + VMADRecord VMAD; // VM data + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // ambient + MODEL MODL; //Model + StringRecord ICON; + StringRecord MICO; + OptSubRecord DEST; // Destruction data + ReqSimpleSubRecord YNAM; // Sound - pick up + ReqSimpleSubRecord ZNAM; // Sound - drop + OptCounted, uint32_t, REV32(KSIZ)> KWDA; + OptSubRecord DATA; + + MISCRecord(unsigned char *_recData = NULL); + MISCRecord(MISCRecord *srcRecord); + ~MISCRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const MISCRecord &other) const; + bool operator !=(const MISCRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/NPC_Record.cpp b/src/Skyrim/Records/NPC_Record.cpp new file mode 100644 index 0000000..aa0ad6c --- /dev/null +++ b/src/Skyrim/Records/NPC_Record.cpp @@ -0,0 +1,1199 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ + +#include "../../Common.h" +#include "../../ModFile.h" +#include "NPC_Record.h" + +namespace Sk { + NPC_Record::NPC_Record(unsigned char *_recData): + TES5Record(_recData) + { + // + } + + NPC_Record::NPC_Record(NPC_Record *srcRecord) : + TES5Record(srcRecord) + { + if (srcRecord == NULL || !srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + ACBS = srcRecord->ACBS; + SNAM = srcRecord->SNAM; + INAM = srcRecord->INAM; + VTCK = srcRecord->VTCK; + TPLT = srcRecord->TPLT; + RNAM = srcRecord->RNAM; + SPLO = srcRecord->SPLO; + Destructable = srcRecord->Destructable; + WNAM = srcRecord->WNAM; + ANAM = srcRecord->ANAM; + ATKR = srcRecord->ATKR; + attacks = srcRecord->attacks; + SPOR = srcRecord->SPOR; + OCOR = srcRecord->OCOR; + GWOR = srcRecord->GWOR; + ECOR = srcRecord->ECOR; + PRKR = srcRecord->PRKR; + CNTO = srcRecord->CNTO; + AIDT = srcRecord->AIDT; + PKID = srcRecord->PKID; + KWDA = srcRecord->KWDA; + CNAM = srcRecord->CNAM; + FULL = srcRecord->FULL; + SHRT = srcRecord->SHRT; + DNAM = srcRecord->DNAM; + PNAM = srcRecord->PNAM; + HCLF = srcRecord->HCLF; + ZNAM = srcRecord->ZNAM; + GNAM = srcRecord->GNAM; + NAM5 = srcRecord->NAM5; + NAM6 = srcRecord->NAM6; + NAM7 = srcRecord->NAM7; + NAM8 = srcRecord->NAM8; + CSDT = srcRecord->CSDT; + CSCR = srcRecord->CSCR; + DOFT = srcRecord->DOFT; + SOFT = srcRecord->SOFT; + DPLT = srcRecord->DPLT; + CRIF = srcRecord->CRIF; + FTST = srcRecord->FTST; + QNAM = srcRecord->QNAM; + NAM9 = srcRecord->NAM9; + NAMA = srcRecord->NAMA; + TintLayers = srcRecord->TintLayers; + + } + + NPC_Record::~NPC_Record() + { + // + } + + bool NPC_Record::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) // should this be here? ALCH & LVLI disagree + return false; + + if (SNAM.IsLoaded()) + { + for(uint32_t it = 0; it < SNAM.value.size(); ++it) + { + op.Accept(SNAM.value[it]->faction); + } + } + + if (INAM.IsLoaded()) + { + op.Accept(INAM.value); + } + if (VTCK.IsLoaded() ) { + op.Accept(VTCK.value ); + } + if (TPLT.IsLoaded() ) { + op.Accept(TPLT.value ); + } + if (RNAM.IsLoaded() ) { + op.Accept(RNAM.value ); + } + + for (uint32_t x = 0; x < SPLO.value.size(); ++x) + op.Accept(SPLO.value[x]); + + if (Destructable.IsLoaded()) { + Destructable->VisitFormIDs(op); + } + + if (WNAM.IsLoaded() ) { + op.Accept(WNAM.value ); + } + if (ANAM.IsLoaded() ) { + op.Accept(ANAM.value ); + } + if (ATKR.IsLoaded() ) { + op.Accept(ATKR.value ); + } + + if (attacks.IsLoaded()) + { + for (uint32_t it = 0; it < attacks.value.size(); ++it) + { + GENATTACK *attk = attacks.value[it]; + op.Accept(attk->ATKD.value.attackSpell); + op.Accept(attk->ATKD.value.attackType); + } + } + + if (SPOR.IsLoaded() ) { + op.Accept(SPOR.value ); + } + if (OCOR.IsLoaded() ) { + op.Accept(OCOR.value ); + } + if (GWOR.IsLoaded() ) { + op.Accept(GWOR.value ); + } + if (ECOR.IsLoaded() ) { + op.Accept(ECOR.value ); + } + + if (PRKR.IsLoaded()) + { + for (uint32_t it = 0; it < PRKR.value.size(); ++it) + { + op.Accept(PRKR.value[it]->perk); + } + } + + if (CNTO.IsLoaded()) + { + for (uint32_t it = 0; it < CNTO.value.size(); ++it) + { + op.Accept(CNTO.value[it]->item); + } + } + + if (PKID.IsLoaded()) + { + for (uint32_t it = 0; it < PKID.value.size(); ++it) + { + op.Accept(PKID.value[it]); + } + } + + if (KWDA.IsLoaded()) + { + for (uint32_t it = 0; it < KWDA.value.size(); ++it) + { + op.Accept(KWDA.value[it]); + } + } + + if (CNAM.IsLoaded() ) { + op.Accept(CNAM.value ); + } + + if (PNAM.IsLoaded()) + { + for (uint32_t it = 0; it < PNAM.value.size(); ++it) + { + op.Accept(PNAM.value[it]); + } + } + + if (HCLF.IsLoaded() ) { + op.Accept(HCLF.value ); + } + + if (ZNAM.IsLoaded() ) { + op.Accept(ZNAM.value ); + } + + if (GNAM.IsLoaded() ) { + op.Accept(GNAM.value ); + } + + if (CSDT.IsLoaded()) + { + for (uint32_t it = 0; it < CSDT.value.size(); ++it) + { + SOUNDPACK* csdt = CSDT.value[it]; + for (uint32_t ik = 0; ik < csdt->sounds.value.size(); ++ik) + { + op.Accept(csdt->sounds.value[ik]->CSDI.value); + } + } + } + + if (CSCR.IsLoaded() ) { + op.Accept(CSCR.value ); + } + if (DOFT.IsLoaded() ) { + op.Accept(DOFT.value ); + } + if (SOFT.IsLoaded() ) { + op.Accept(SOFT.value ); + } + if (DPLT.IsLoaded() ) { + op.Accept(DPLT.value ); + } + if (CRIF.IsLoaded() ) { + op.Accept(CRIF.value ); + } + if (FTST.IsLoaded() ) { + op.Accept(FTST.value ); + } + + return op.Stop(); + } + + bool NPC_Record::IsFemale() + { + return (ACBS.value.flags & fFemale); + } + void NPC_Record::IsFemale(bool value) + { + SETBIT(ACBS.value.flags, fFemale, value); + } + + bool NPC_Record::IsEssential() + { + return (ACBS.value.flags & fEssential); + } + void NPC_Record::IsEssential(bool value) + { + SETBIT(ACBS.value.flags, fEssential, value); + } + + bool NPC_Record::IsIsCharGenFacePreset() + { + return (ACBS.value.flags & fIsCharGenFacePreset); + } + void NPC_Record::IsIsCharGenFacePreset(bool value) + { + SETBIT(ACBS.value.flags, fIsCharGenFacePreset, value); + } + + bool NPC_Record::IsRespawn() + { + return (ACBS.value.flags & fRespawn); + } + void NPC_Record::IsRespawn(bool value) + { + SETBIT(ACBS.value.flags, fRespawn, value); + } + + bool NPC_Record::IsAutocalcStats() + { + return (ACBS.value.flags & fAutocalcStats); + } + void NPC_Record::IsAutocalcStats(bool value) + { + SETBIT(ACBS.value.flags, fAutocalcStats, value); + } + + bool NPC_Record::IsUnique() + { + return (ACBS.value.flags & fUnique); + } + void NPC_Record::IsUnique(bool value) + { + SETBIT(ACBS.value.flags, fUnique, value); + } + + bool NPC_Record::IsDoesntAffectStealthMeter() + { + return (ACBS.value.flags & fDoesntAffectStealthMeter); + } + void NPC_Record::IsDoesntAffectStealthMeter(bool value) + { + SETBIT(ACBS.value.flags, fDoesntAffectStealthMeter, value); + } + + bool NPC_Record::IsPCLevelMult() + { + return (ACBS.value.flags & fPCLevelMult); + } + void NPC_Record::IsPCLevelMult(bool value) + { + SETBIT(ACBS.value.flags, fPCLevelMult, value); + } + + bool NPC_Record::IsUseTemplate() + { + return (ACBS.value.flags & fUseTemplate); + } + void NPC_Record::IsUseTemplate(bool value) + { + SETBIT(ACBS.value.flags, fUseTemplate, value); + } + + bool NPC_Record::IsUnknown9() + { + return (ACBS.value.flags & fUnknown9); + } + void NPC_Record::IsUnknown9(bool value) + { + SETBIT(ACBS.value.flags, fUnknown9, value); + } + + bool NPC_Record::IsUnknown10() + { + return (ACBS.value.flags & fUnknown10); + } + void NPC_Record::IsUnknown10(bool value) + { + SETBIT(ACBS.value.flags, fUnknown10, value); + } + + bool NPC_Record::IsProtected() + { + return (ACBS.value.flags & fProtected); + } + void NPC_Record::IsProtected(bool value) + { + SETBIT(ACBS.value.flags, fProtected, value); + } + + bool NPC_Record::IsUnknown12() + { + return (ACBS.value.flags & fUnknown12); + } + void NPC_Record::IsUnknown12(bool value) + { + SETBIT(ACBS.value.flags, fUnknown12, value); + } + + bool NPC_Record::IsUnknown13() + { + return (ACBS.value.flags & fUnknown13); + } + void NPC_Record::IsUnknown13(bool value) + { + SETBIT(ACBS.value.flags, fUnknown13, value); + } + + bool NPC_Record::IsSummonable() + { + return (ACBS.value.flags & fSummonable); + } + void NPC_Record::IsSummonable(bool value) + { + SETBIT(ACBS.value.flags, fSummonable, value); + } + + bool NPC_Record::IsUnknown15() + { + return (ACBS.value.flags & fUnknown15); + } + void NPC_Record::IsUnknown15(bool value) + { + SETBIT(ACBS.value.flags, fUnknown15, value); + } + + bool NPC_Record::IsDoesntBleed() + { + return (ACBS.value.flags & fDoesntBleed); + } + void NPC_Record::IsDoesntBleed(bool value) + { + SETBIT(ACBS.value.flags, fDoesntBleed, value); + } + + bool NPC_Record::IsUnknown17() + { + return (ACBS.value.flags & fUnknown17); + } + void NPC_Record::IsUnknown17(bool value) + { + SETBIT(ACBS.value.flags, fUnknown17, value); + } + + bool NPC_Record::IsBleedoutOverride() + { + return (ACBS.value.flags & fBleedoutOverride); + } + void NPC_Record::IsBleedoutOverride(bool value) + { + SETBIT(ACBS.value.flags, fBleedoutOverride, value); + } + + bool NPC_Record::IsOppositeGenderAnims() + { + return (ACBS.value.flags & fOppositeGenderAnims); + } + void NPC_Record::IsOppositeGenderAnims(bool value) + { + SETBIT(ACBS.value.flags, fOppositeGenderAnims, value); + } + + bool NPC_Record::IsSimpleActor() + { + return (ACBS.value.flags & fSimpleActor); + } + void NPC_Record::IsSimpleActor(bool value) + { + SETBIT(ACBS.value.flags, fSimpleActor, value); + } + + bool NPC_Record::IsLoopedscript() + { + return (ACBS.value.flags & fLoopedscript); + } + void NPC_Record::IsLoopedscript(bool value) + { + SETBIT(ACBS.value.flags, fLoopedscript, value); + } + + bool NPC_Record::IsUnknown22() + { + return (ACBS.value.flags & fUnknown22); + } + void NPC_Record::IsUnknown22(bool value) + { + SETBIT(ACBS.value.flags, fUnknown22, value); + } + + bool NPC_Record::IsUnknown23() + { + return (ACBS.value.flags & fUnknown23); + } + void NPC_Record::IsUnknown23(bool value) + { + SETBIT(ACBS.value.flags, fUnknown23, value); + } + + bool NPC_Record::IsUnknown24() + { + return (ACBS.value.flags & fUnknown24); + } + void NPC_Record::IsUnknown24(bool value) + { + SETBIT(ACBS.value.flags, fUnknown24, value); + } + + bool NPC_Record::IsUnknown25() + { + return (ACBS.value.flags & fUnknown25); + } + void NPC_Record::IsUnknown25(bool value) + { + SETBIT(ACBS.value.flags, fUnknown25, value); + } + + bool NPC_Record::IsUnknown26() + { + return (ACBS.value.flags & fUnknown26); + } + void NPC_Record::IsUnknown26(bool value) + { + SETBIT(ACBS.value.flags, fUnknown26, value); + } + + bool NPC_Record::IsUnknown27() + { + return (ACBS.value.flags & fUnknown27); + } + void NPC_Record::IsUnknown27(bool value) + { + SETBIT(ACBS.value.flags, fUnknown27, value); + } + + bool NPC_Record::IsLoopedAudio() + { + return (ACBS.value.flags & fLoopedAudio); + } + void NPC_Record::IsLoopedAudio(bool value) + { + SETBIT(ACBS.value.flags, fLoopedAudio, value); + } + + bool NPC_Record::IsIsGhost() + { + return (ACBS.value.flags & fIsGhost); + } + void NPC_Record::IsIsGhost(bool value) + { + SETBIT(ACBS.value.flags, fIsGhost, value); + } + + bool NPC_Record::IsUnknown30() + { + return (ACBS.value.flags & fUnknown30); + } + void NPC_Record::IsUnknown30(bool value) + { + SETBIT(ACBS.value.flags, fUnknown30, value); + } + + bool NPC_Record::IsInvulnerable() + { + return (ACBS.value.flags & fInvulnerable); + } + void NPC_Record::IsInvulnerable(bool value) + { + SETBIT(ACBS.value.flags, fInvulnerable, value); + } + + bool NPC_Record::IsFlagMask(uint32_t Mask, bool Exact) const + { + return Exact ? ((ACBS.value.flags & Mask) == Mask) : ((ACBS.value.flags & Mask) != 0); + } + + void NPC_Record::SetFlagMask(uint32_t Mask) + { + ACBS.value.flags = Mask; + } + + uint32_t NPC_Record::GetType() + { + return REV32(NPC_); + } + + char * NPC_Record::GetStrType() + { + return "NPC_"; + } + + int32_t NPC_Record::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) + { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(ACBS): + ACBS.Read(buffer, subSize); + break; + case REV32(SNAM): + SNAM.Read(buffer, subSize); + break; + case REV32(INAM): + INAM.Read(buffer, subSize); + break; + case REV32(VTCK): + VTCK.Read(buffer, subSize); + break; + case REV32(TPLT): + TPLT.Read(buffer, subSize); + break; + case REV32(RNAM): + RNAM.Read(buffer, subSize); + break; + case REV32(SPCT): + // Number of SPLOs + buffer += subSize; + break; + case REV32(SPLO): + SPLO.Read(buffer, subSize); + break; + case REV32(DEST): + Destructable.Load(); + Destructable->DEST.Read(buffer, subSize); + break; + case REV32(DSTD): + Destructable.Load(); + Destructable->Stages.value.push_back(new SKDESTSTAGE); + Destructable->Stages.value.back()->DSTD.Read(buffer, subSize); + break; + case REV32(DMDL): + Destructable.Load(); + if (Destructable->Stages.value.size() == 0) + Destructable->Stages.value.push_back(new SKDESTSTAGE); + Destructable->Stages.value.back()->DMDL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(DMDT): + Destructable.Load(); + if (Destructable->Stages.value.size() == 0) + Destructable->Stages.value.push_back(new SKDESTSTAGE); + Destructable->Stages.value.back()->DMDT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(DMDS): + Destructable.Load(); + if (Destructable->Stages.value.size() == 0) + Destructable->Stages.value.push_back(new SKDESTSTAGE); + Destructable->Stages.value.back()->DMDS.Read(buffer, subSize); + break; + case REV32(DSTF): + //Marks end of a destruction stage + buffer += subSize; + break; + case REV32(WNAM): + WNAM.Read(buffer, subSize); + break; + case REV32(ANAM): + ANAM.Read(buffer, subSize); + break; + case REV32(ATKR): + ATKR.Read(buffer, subSize); + break; + case REV32(ATKD): // attack package + attacks.value.push_back(new GENATTACK); + attacks.value.back()->ATKD.Read(buffer, subSize); + break; + case REV32(ATKE): + if (attacks.value.size() == 0) + attacks.value.push_back(new GENATTACK); // should also report bad data + attacks.value.back()->ATKE.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(SPOR): + SPOR.Read(buffer, subSize); + break; + case REV32(OCOR): + OCOR.Read(buffer, subSize); + break; + case REV32(GWOR): + GWOR.Read(buffer, subSize); + break; + case REV32(ECOR): + ECOR.Read(buffer, subSize); + break; + case REV32(PRKZ): + // number of PRKR + buffer += subSize; + break; + case REV32(PRKR): + PRKR.Read(buffer, subSize); + break; + case REV32(COCT): + // number of CNTO + buffer += subSize; + break; + case REV32(CNTO): + CNTO.Read(buffer, subSize); + break; + case REV32(AIDT): + AIDT.Read(buffer, subSize); + break; + case REV32(PKID): + PKID.Read(buffer, subSize); + break; + case REV32(KSIZ): + // number of KWDA + buffer += subSize; + break; + case REV32(KWDA): + KWDA.Read(buffer, subSize); + break; + case REV32(CNAM): + CNAM.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(SHRT): + SHRT.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(DATA): + // zero size + buffer += subSize; + break; + case REV32(DNAM): + DNAM.Read(buffer, subSize); + break; + case REV32(PNAM): + PNAM.Read(buffer, subSize); + break; + case REV32(HCLF): + HCLF.Read(buffer, subSize); + break; + case REV32(ZNAM): + ZNAM.Read(buffer, subSize); + break; + case REV32(GNAM): + GNAM.Read(buffer, subSize); + break; + case REV32(NAM5): + NAM5.Read(buffer, subSize); + break; + case REV32(NAM6): + NAM6.Read(buffer, subSize); + break; + case REV32(NAM7): + NAM7.Read(buffer, subSize); + break; + case REV32(NAM8): + NAM8.Read(buffer, subSize); + break; + case REV32(CSDT): + CSDT.value.push_back(new SOUNDPACK); + CSDT.value.back()->soundLocation.Read(buffer, subSize); + break; + case REV32(CSDI): + if (CSDT.value.size() == 0) + CSDT.value.push_back(new SOUNDPACK); // report format error + if (CSDT.value.back()->sounds.value.size() == 0) + CSDT.value.back()->sounds.value.push_back(new SOUNDPAIR); // report format error + CSDT.value.back()->sounds.value.back()->CSDI.Read(buffer, subSize); + break; + case REV32(CSDC): + if (CSDT.value.size() == 0) + CSDT.value.push_back(new SOUNDPACK); // report format error + if (CSDT.value.back()->sounds.value.size() == 0) + CSDT.value.back()->sounds.value.push_back(new SOUNDPAIR); // report format error + CSDT.value.back()->sounds.value.back()->CSDC.Read(buffer, subSize); + break; + case REV32(CSCR): + CSCR.Read(buffer, subSize); + break; + case REV32(DOFT): + DOFT.Read(buffer, subSize); + break; + case REV32(SOFT): + SOFT.Read(buffer, subSize); + break; + case REV32(DPLT): + DPLT.Read(buffer, subSize); + break; + case REV32(CRIF): + CRIF.Read(buffer, subSize); + break; + case REV32(FTST): + FTST.Read(buffer, subSize); + break; + case REV32(QNAM): + QNAM.Read(buffer, subSize); + break; + case REV32(NAM9): + NAM9.Read(buffer, subSize); + break; + case REV32(NAMA): + NAMA.Read(buffer, subSize); + break; + case REV32(TINI): + TintLayers.value.push_back(new TINTLAYER); + TintLayers.value.back()->TINI.Read(buffer, subSize); + break; + case REV32(TINC): + if (TintLayers.value.size() == 0) + TintLayers.value.push_back(new TINTLAYER); // report format error + TintLayers.value.back()->TINC.Read(buffer, subSize); + break; + case REV32(TINV): + if (TintLayers.value.size() == 0) + TintLayers.value.push_back(new TINTLAYER); // report format error + TintLayers.value.back()->TINV.Read(buffer, subSize); + break; + case REV32(TIAS): + if (TintLayers.value.size() == 0) + TintLayers.value.push_back(new TINTLAYER); // report format error + TintLayers.value.back()->TIAS.Read(buffer, subSize); + break; + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t NPC_Record::Unload() + { + IsChanged(false); + IsLoaded(false); + + + return 1; + } + + int32_t NPC_Record::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + WRITE(ACBS); + WRITE(SNAM); + WRITE(INAM); + WRITE(VTCK); + WRITE(TPLT); + WRITE(RNAM); + // SPCT skipped + WRITE(SPLO); + Destructable.Write(writer); + WRITE(WNAM); + WRITE(ANAM); + WRITE(ATKR); + attacks.Write(writer); + WRITE(SPOR); + WRITE(OCOR); + WRITE(GWOR); + WRITE(ECOR); + WRITE(PRKR); + WRITE(CNTO); + WRITE(AIDT); + WRITE(PKID); + WRITE(KWDA); + WRITE(CNAM); + WRITE(FULL); + WRITE(SHRT); + WRITEEMPTY(DATA); + WRITE(DNAM); + WRITE(PNAM); + WRITE(HCLF); + WRITE(ZNAM); + WRITE(GNAM); + WRITE(NAM5); + WRITE(NAM6); + WRITE(NAM7); + WRITE(NAM8); + WRITE(CSDT); + WRITE(CSCR); + WRITE(DOFT); + WRITE(SOFT); + WRITE(DPLT); + WRITE(CRIF); + WRITE(FTST); + WRITE(QNAM); + WRITE(NAM9); + WRITE(NAMA); + TintLayers.Write(writer); + return -1; + } + + bool NPC_Record::operator ==(const NPC_Record &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + OBND == other.OBND && + ACBS == other.ACBS && + SNAM == other.SNAM && + INAM == other.INAM && + VTCK == other.VTCK && + TPLT == other.VTCK && + RNAM == other.RNAM && + SPLO == other.SPLO && + Destructable == other.Destructable && + WNAM == other.WNAM && + ANAM == other.ANAM && + ATKR == other.ATKR && + attacks == other.attacks && + SPOR == other.SPOR && + OCOR == other.OCOR && + GWOR == other.GWOR && + ECOR == other.ECOR && + PRKR == other.PRKR && + CNTO == other.CNTO && + AIDT == other.AIDT && + PKID == other.PKID && + KWDA == other.KWDA && + CNAM == other.CNAM && + FULL.equals(other.FULL) && + SHRT.equals(other.SHRT) && + DNAM == other.DNAM && + PNAM == other.PNAM && + HCLF == other.HCLF && + ZNAM == other.ZNAM && + GNAM == other.GNAM && + NAM5 == other.NAM5 && + NAM6 == other.NAM6 && + NAM7 == other.NAM7 && + NAM8 == other.NAM8 && + CSDT == other.CSDT && + CSCR == other.CSCR && + DOFT == other.DOFT && + SOFT == other.SOFT && + DPLT == other.DPLT && + CRIF == other.CRIF && + FTST == other.FTST && + QNAM == other.QNAM && + NAM9 == other.NAM9 && + NAMA == other.NAMA && + TintLayers == other.TintLayers + ); + } + + bool NPC_Record::operator != (const NPC_Record &other) const + { + return !(*this == other); + } + + bool NPC_Record::equals(Record *other) + { + return *this == *(NPC_Record *)other; + } + + NPC_Record::SKDNAM::SKDNAM(): + OneHanded(0), + TwoHanded(0), + Marksman(0), + Block(0), + Smithing(0), + HeavyArmor(0), + LightArmor(0), + Pickpocket(0), + Lockpicking(0), + Sneak(0), + Alchemy(0), + Speechcraft(0), + Alteration(0), + Conjuration(0), + Destruction(0), + Illusion(0), + Restoration(0), + Enchanting(0), + OneHandedOff(0), + TwoHandedOff(0), + MarksmanOff(0), + BlockOff(0), + SmithingOff(0), + HeavyArmorOff(0), + LightArmorOff(0), + PickpocketOff(0), + LockpickingOff(0), + SneakOff(0), + AlchemyOff(0), + SpeechcraftOff(0), + AlterationOff(0), + ConjurationOff(0), + DestructionOff(0), + IllusionOff(0), + RestorationOff(0), + EnchantingOff(0), + health(0), + magicka(0), + stamina(0), + unused1(0), + farAwayModelDistance(0), + gearedUpWeapons(0) + { + memset(&unused2, 0, sizeof(unused2)); + } + + NPC_Record::SKDNAM::~SKDNAM() { + + } + bool NPC_Record::SKDNAM::operator == (const NPC_Record::SKDNAM &other) const + { + return (OneHanded == other.OneHanded && + TwoHanded == other.TwoHanded && + Marksman == other.Marksman && + Block == other.Block && + Smithing == other.Smithing && + HeavyArmor == other.HeavyArmor && + LightArmor == other.LightArmor && + Pickpocket == other.Pickpocket && + Lockpicking == other.Lockpicking && + Sneak == other.Sneak && + Alchemy == other.Alchemy && + Speechcraft == other.Speechcraft && + Alteration == other.Alteration && + Conjuration == other.Conjuration && + Destruction == other.Destruction && + Illusion == other.Illusion && + Restoration == other.Restoration && + Enchanting == other.Enchanting && + OneHandedOff == other.OneHandedOff && + TwoHandedOff == other.TwoHandedOff && + MarksmanOff == other.MarksmanOff && + BlockOff == other.BlockOff && + SmithingOff == other.SmithingOff && + HeavyArmorOff == other.HeavyArmorOff && + LightArmorOff == other.LightArmorOff && + PickpocketOff == other.PickpocketOff && + LockpickingOff == other.LockpickingOff && + SneakOff == other.SneakOff && + AlchemyOff == other.AlchemyOff && + SpeechcraftOff == other.SpeechcraftOff && + AlterationOff == other.AlterationOff && + ConjurationOff == other.ConjurationOff && + DestructionOff == other.DestructionOff && + IllusionOff == other.IllusionOff && + RestorationOff == other.RestorationOff && + EnchantingOff == other.EnchantingOff && + health == other.health && + magicka == other.magicka && + stamina == other.stamina && + farAwayModelDistance == other.farAwayModelDistance && + gearedUpWeapons == other.gearedUpWeapons); + } + + bool NPC_Record::SKDNAM::operator != (const NPC_Record::SKDNAM &other) const + { + return !(*this == other); + } + + + bool NPC_Record::SOUNDPACK::operator == (const NPC_Record::SOUNDPACK &other) const + { + return (soundLocation == other.soundLocation && sounds == other.sounds); + } + + bool NPC_Record::SOUNDPACK::operator != (const NPC_Record::SOUNDPACK &other) const + { + return !(*this == other); + } + + + bool NPC_Record::SOUNDPAIR::operator == (const NPC_Record::SOUNDPAIR &other) const + { + return (CSDI == other.CSDI && CSDC == other.CSDC); + } + + bool NPC_Record::SOUNDPAIR::operator != (const NPC_Record::SOUNDPAIR &other) const + { + return !(*this == other); + } + + bool NPC_Record::QNAMTRIPLE::operator == (const NPC_Record::QNAMTRIPLE &other) const + { + return (red == other.red && green == other.green && blue == other.blue); + } + + bool NPC_Record::QNAMTRIPLE::operator != (const NPC_Record::QNAMTRIPLE &other) const + { + return !(*this == other); + } + + bool NPC_Record::FACEMORPH::operator == (const NPC_Record::FACEMORPH &other) const + { + return (NoseLongShort == other.NoseLongShort && + NoseUpDown == other.NoseUpDown && + JawUpDown == other.JawUpDown && + JawNarrowWide == other.JawNarrowWide && + JawFarwardBack == other.JawFarwardBack && + CheeksUpDown == other.CheeksUpDown && + CheeksFarwardBack == other.CheeksFarwardBack && + EyesUpDown == other.EyesUpDown && + EyesInOut == other.EyesInOut && + BrowsUpDown == other.BrowsUpDown && + BrowsInOut == other.BrowsInOut && + BrowsFarwardBack == other.BrowsFarwardBack && + LipsUpDown == other.LipsUpDown && + LipsInOut == other.LipsInOut && + ChinNarrowWide == other.ChinNarrowWide && + ChinUpDown == other.ChinUpDown && + ChinUnderbiteOverbite == other.ChinUnderbiteOverbite && + EyesFarwardBack == other.EyesFarwardBack); + } + + bool NPC_Record::FACEMORPH::operator != (const NPC_Record::FACEMORPH &other) const + { + return !(*this == other); + } + + bool NPC_Record::FACEPARTS::operator == (const NPC_Record::FACEPARTS &other) const + { + return (nose == other.nose && mouth == other.mouth && eyes == other.eyes); + } + + bool NPC_Record::FACEPARTS::operator != (const NPC_Record::FACEPARTS &other) const + { + return !(*this == other); + } + + bool NPC_Record::TINTLAYER::operator == (const NPC_Record::TINTLAYER &other) const + { + return (TINI == other.TINI && TINC == other.TINC && TINV == other.TINV && TIAS == other.TIAS); + } + + bool NPC_Record::TINTLAYER::operator != (const NPC_Record::TINTLAYER &other) const + { + return !(*this == other); + } + + void NPC_Record::TINTLAYER::Write(FileWriter &writer) + { + WRITE(TINI); + WRITE(TINC); + WRITE(TINV); + WRITE(TIAS); + } + + NPC_Record::TINTLAYER::TINTCOLORS::TINTCOLORS() : + red(0), + green(0), + blue(0) + { + //.. + } + + NPC_Record::TINTLAYER::TINTCOLORS::~TINTCOLORS() { + + } + + bool NPC_Record::TINTLAYER::TINTCOLORS::operator == (const NPC_Record::TINTLAYER::TINTCOLORS &other) const + { + return (red == other.red && green == other.green && blue == other.blue && alpha == other.alpha); + } + + bool NPC_Record::TINTLAYER::TINTCOLORS::operator != (const NPC_Record::TINTLAYER::TINTCOLORS &other) const + { + return !(*this == other); + } + + NPC_Record::SKAIDT::SKAIDT() : + aggression(0) { + + } + + NPC_Record::SKAIDT::~SKAIDT() { + + } + + bool NPC_Record::SKAIDT::operator == (const NPC_Record::SKAIDT &other) const + { + return (aggression == other.aggression && + confidence == other.confidence && + energyLevel == other.energyLevel && + responsibility == other.responsibility && + mood == other.mood && + assistance == other.assistance && + agroRadiusBehavior == other.agroRadiusBehavior && + warn == other.warn && + warnAttack == other.warnAttack && + attack == other.attack + ); + } + + bool NPC_Record::SKAIDT::operator != (const NPC_Record::SKAIDT &other) const + { + return !(*this == other); + } + +} // namespace Sk \ No newline at end of file diff --git a/src/Skyrim/Records/NPC_Record.h b/src/Skyrim/Records/NPC_Record.h new file mode 100644 index 0000000..e252c3f --- /dev/null +++ b/src/Skyrim/Records/NPC_Record.h @@ -0,0 +1,465 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* David "Dienes" Tynan +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ + +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk +{ + + class NPC_Record : public TES5Record // Non-Player Character (Actor) + { + private: + enum fields + { + fIdentifier = 0, + // fSize, handled internally + fMajorFlags, + fFormID, + fVersionControl, + fFormVersion, + fVersionControl2, + fEDIS, + // fVmad, not availible to API + fOBND, + fACBS, + fFactions, + fDeathItem + + + }; + enum FlagFlags + { + fFemale = 0x00000001, + fEssential = 0x00000002, + fIsCharGenFacePreset = 0x00000004, + fRespawn = 0x00000008, + fAutocalcStats = 0x00000010, + fUnique = 0x00000020, + fDoesntAffectStealthMeter = 0x00000040, + fPCLevelMult = 0x00000080, + fUseTemplate = 0x00000100, + fUnknown9 = 0x00000200, + fUnknown10 = 0x00000400, + fProtected = 0x00000800, + fUnknown12 = 0x00001000, + fUnknown13 = 0x00002000, + fSummonable = 0x00004000, + fUnknown15 = 0x00008000, + fDoesntBleed = 0x00010000, + fUnknown17 = 0x00020000, + fBleedoutOverride = 0x00040000, + fOppositeGenderAnims = 0x00080000, + fSimpleActor = 0x00100000, + fLoopedscript = 0x00200000, + fUnknown22 = 0x00400000, + fUnknown23 = 0x00800000, + fUnknown24 = 0x01000000, + fUnknown25 = 0x02000000, + fUnknown26 = 0x04000000, + fUnknown27 = 0x08000000, + fLoopedAudio = 0x10000000, + fIsGhost = 0x20000000, + fUnknown30 = 0x40000000, + fInvulnerable = 0x80000000 + }; + enum TemplateFlags + { + fUseTraits = 0x0001, + fUseStats = 0x0002, + fUseFactions = 0x0004, + fUseSpellList = 0x0008, + fUseAIData = 0x0010, + fUseAIPackages = 0x0020, + fUseModelAnimation = 0x0040, + fUseBaseData = 0x0080, + fUseInventory = 0x0100, + fUseScript = 0x0200, + fUseDefPackList = 0x0400, + fUseAttackData = 0x0800, + fUseKeywords = 0x1000 + }; + enum aggressionTypes + { + eUnaggressive = 0, + eAggressive, + eVeryAggressive, + eFrenzied + }; + + enum confidenceTypes + { + eCowardly = 0, + eCautious, + eAverage, + eBrave, + eFoolhardy + }; + + enum responsibilityTypes + { + eAnyCrime = 0, + eViolenceAgainstEnemies, + ePropertyCrimeOnly, + eNoCrime + }; + + enum moodTypes + { + eNeutral = 0, + eAfraid, + eAnnoyed, + eCocky, + eDrugged, + ePleasant, + eAngry, + eSad + }; + + enum assistanceTypes + { + eHelpsNobody = 0, + eHelpsAllies, + eHelpsFriendsAndAllies + }; + + struct SKAIDT + { + uint8_t aggression, confidence, energyLevel, responsibility, mood, assistance; + uint8_t agroRadiusBehavior, unknown; + uint32_t warn, warnAttack, attack; + enum agroRadiusBehaviorTypes + { + eAggroRadiusBehaviorFalse = 0x00, + eAggroRadiusBehaviorTrue = 0x01 + }; + + SKAIDT(); + ~SKAIDT(); + + bool operator ==(const SKAIDT &other) const; + bool operator !=(const SKAIDT &other) const; + }; + struct SKDNAM + { + // skill values + int8_t OneHanded, TwoHanded, Marksman, Block, Smithing, HeavyArmor, + LightArmor, Pickpocket, Lockpicking, Sneak, Alchemy, Speechcraft, + Alteration, Conjuration, Destruction, Illusion, Restoration, Enchanting; + //skill offsets + int8_t OneHandedOff, TwoHandedOff, MarksmanOff, BlockOff, SmithingOff, HeavyArmorOff, + LightArmorOff, PickpocketOff, LockpickingOff, SneakOff, AlchemyOff, SpeechcraftOff, + AlterationOff, ConjurationOff, DestructionOff, IllusionOff, RestorationOff, EnchantingOff; + uint16_t health, magicka, stamina; // calculated value if auto calculate is set + uint16_t unused1; + float farAwayModelDistance; + uint8_t gearedUpWeapons; + uint8_t unused2[3]; + + SKDNAM(); + ~SKDNAM(); + + bool operator ==(const SKDNAM &other) const; + bool operator !=(const SKDNAM &other) const; + }; + struct SOUNDPAIR { + ReqSubRecord CSDI; // sound form + ReqSubRecord CSDC; // sound chance + + bool operator ==(const SOUNDPAIR &other) const; + bool operator !=(const SOUNDPAIR &other) const; + }; + struct SOUNDPACK + { + enum SoundLocation + { + eLeftFoot = 0, + eRightFoot, + eLeftBackFoot, + eRightBackFoot, + eIdle, + eAware, + eAttack, + eHit, + eDeath, + eWeapon, + eMovementLoop, + eConsciousLoop, + eAuxiliary1, + eAuxiliary2, + eAuxiliary3, + eAuxiliary4, + eAuxiliary5, + eAuxiliary6, + eAuxiliary7, + eAuxiliary8, + eJump, + ePlayRandomLoop + }; + + bool operator ==(const SOUNDPACK &other) const; + bool operator !=(const SOUNDPACK &other) const; + + ReqSimpleSubRecord soundLocation; + UnorderedSparseArray sounds; + }; + + + struct QNAMTRIPLE + { + float red; + float green; + float blue; + + bool operator ==(const QNAMTRIPLE &other) const; + bool operator !=(const QNAMTRIPLE &other) const; + }; + struct FACEMORPH + { + float NoseLongShort; + float NoseUpDown; + float JawUpDown; + float JawNarrowWide; + float JawFarwardBack; + float CheeksUpDown; + float CheeksFarwardBack; + float EyesUpDown; + float EyesInOut; + float BrowsUpDown; + float BrowsInOut; + float BrowsFarwardBack; + float LipsUpDown; + float LipsInOut; + float ChinNarrowWide; + float ChinUpDown; + float ChinUnderbiteOverbite; + float EyesFarwardBack; + float Unknown; + + bool operator ==(const FACEMORPH &other) const; + bool operator !=(const FACEMORPH &other) const; + }; + + struct FACEPARTS + { + uint32_t nose; + int32_t unknown; + uint32_t eyes; + uint32_t mouth; + + bool operator ==(const FACEPARTS &other) const; + bool operator !=(const FACEPARTS &other) const; + }; + + struct TINTLAYER + { + struct TINTCOLORS + { + uint8_t red; + uint8_t green; + uint8_t blue; + uint8_t alpha; + + + bool operator ==(const TINTCOLORS &other) const; + bool operator !=(const TINTCOLORS &other) const; + + TINTCOLORS(); + ~TINTCOLORS(); + }; + + ReqSimpleSubRecord TINI; // tint index + ReqSubRecord TINC; + ReqSimpleSubRecord TINV; // Interpolation Value * 100 + ReqSimpleSubRecord TIAS; // preset + + void Write(FileWriter &writer); + + bool operator ==(const TINTLAYER &other) const; + bool operator !=(const TINTLAYER &other) const; + }; + + public: + StringRecord EDID; //Editor ID + VMADRecord VMAD; // Virtual Machind Data + ReqSubRecord OBND; // Object Bounds + ReqSubRecord ACBS; // configuration + UnorderedSparseArray SNAM; // factions + OptSimpleSubRecord INAM; //death item LVLI + OptSimpleSubRecord VTCK; // voice VTYP + OptSimpleSubRecord TPLT; // template NPC_ or LVLN + OptSimpleSubRecord RNAM; // race RACE + // ignored - SPCT spell count + OptCounted, int32_t, REV32(SPCT)> SPLO; // Actor effects + OptSubRecord Destructable; // destructable + OptSimpleSubRecord WNAM; // skin ARMO + OptSimpleSubRecord ANAM; // far away model + OptSimpleSubRecord ATKR; // attack race + UnorderedSparseArray attacks; // attacks + OptSimpleSubRecord SPOR; // spectator override packages FLST + OptSimpleSubRecord OCOR; // Observe dead body override packages FLST + OptSimpleSubRecord GWOR; // Guard warn override package FLST + OptSimpleSubRecord ECOR; // Combat override package FLST + // ignored - PRKZ perk count + OptCounted, uint32_t, REV32(PRKZ)> PRKR; // perks + // ignored - COCT item count + OptCounted, int32_t, REV32(COCT)> CNTO; // items + ReqSubRecord AIDT; // AI data + UnorderedSparseArray PKID; // packages + // ignored - KSIZ keyword count + OptCounted, uint32_t, REV32(KSIZ)> KWDA; // Keywords + ReqSubRecord CNAM; // class + LStringRecord FULL; // full name + LStringRecord SHRT; // short name + // Data - 0 size + OptSubRecord DNAM; // actor skills + UnorderedSparseArray PNAM; // headparts - HDPT + OptSimpleSubRecord HCLF; // hair color - CLFM + OptSimpleSubRecord ZNAM; // combat style - CSTY + OptSimpleSubRecord GNAM; // gift filter - FLST + ReqSubRecord NAM5; // unknown? + ReqSimpleFloatSubRecord<> NAM6; // Height + ReqSimpleFloatSubRecord<> NAM7; // Weight + ReqSimpleSubRecord NAM8; // sound level - enum 'Loud','Normal','Silent','Very Loud' + UnorderedSparseArray CSDT; // sound package - not present if CSCR exists + OptSimpleSubRecord CSCR; // Inherits Sounds From - NPC_ + OptSimpleSubRecord DOFT; // default outfit - OTFT + OptSimpleSubRecord SOFT; // sleep outfit - OTFT + OptSimpleSubRecord DPLT; // default package list - FLST + OptSimpleSubRecord CRIF; // crime faction - FACT + OptSimpleSubRecord FTST; // face textures - TXST + OptSubRecord QNAM; // texture lighting + OptSubRecord NAM9; // facemorph + OptSubRecord NAMA; // faceparts + UnorderedSparseArray TintLayers; // tint layers + + NPC_Record(unsigned char *_recData = NULL); + NPC_Record(NPC_Record *srcRecord); + ~NPC_Record(); + + bool VisitFormIDs(FormIDOp &op); + + bool IsFemale(); + void IsFemale(bool value); + bool IsEssential(); + void IsEssential(bool value); + bool IsIsCharGenFacePreset(); + void IsIsCharGenFacePreset(bool value); + bool IsRespawn(); + void IsRespawn(bool value); + bool IsAutocalcStats(); + void IsAutocalcStats(bool value); + bool IsUnique(); + void IsUnique(bool value); + bool IsDoesntAffectStealthMeter(); + void IsDoesntAffectStealthMeter(bool value); + bool IsPCLevelMult(); + void IsPCLevelMult(bool value); + bool IsUseTemplate(); + void IsUseTemplate(bool value); + bool IsUnknown9(); + void IsUnknown9(bool value); + bool IsUnknown10(); + void IsUnknown10(bool value); + bool IsProtected(); + void IsProtected(bool value); + bool IsUnknown12(); + void IsUnknown12(bool value); + bool IsUnknown13(); + void IsUnknown13(bool value); + bool IsSummonable(); + void IsSummonable(bool value); + bool IsUnknown15(); + void IsUnknown15(bool value); + bool IsDoesntBleed(); + void IsDoesntBleed(bool value); + bool IsUnknown17(); + void IsUnknown17(bool value); + bool IsBleedoutOverride(); + void IsBleedoutOverride(bool value); + bool IsOppositeGenderAnims(); + void IsOppositeGenderAnims(bool value); + bool IsSimpleActor(); + void IsSimpleActor(bool value); + bool IsLoopedscript(); + void IsLoopedscript(bool value); + bool IsUnknown22(); + void IsUnknown22(bool value); + bool IsUnknown23(); + void IsUnknown23(bool value); + bool IsUnknown24(); + void IsUnknown24(bool value); + bool IsUnknown25(); + void IsUnknown25(bool value); + bool IsUnknown26(); + void IsUnknown26(bool value); + bool IsUnknown27(); + void IsUnknown27(bool value); + bool IsLoopedAudio(); + void IsLoopedAudio(bool value); + bool IsIsGhost(); + void IsIsGhost(bool value); + bool IsUnknown30(); + void IsUnknown30(bool value); + bool IsInvulnerable(); + void IsInvulnerable(bool value); + + bool IsFlagMask(uint32_t Mask, bool Exact = false) const; + void SetFlagMask(uint32_t Mask); + + uint32_t GetFieldAttribute(DEFAULTED_FIELD_IDENTIFIERS, uint32_t WhichAttribute = 0); + void * GetField(DEFAULTED_FIELD_IDENTIFIERS, void **FieldValues = NULL); + bool SetField(DEFAULTED_FIELD_IDENTIFIERS, void *FieldValue = NULL, uint32_t ArraySize = 0); + void DeleteField(DEFAULTED_FIELD_IDENTIFIERS); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const NPC_Record &other) const; + bool operator !=(const NPC_Record &other) const; + bool equals(Record *other); + + + }; +} // namespace Sk \ No newline at end of file diff --git a/src/Skyrim/Records/OTFTRecord.cpp b/src/Skyrim/Records/OTFTRecord.cpp index e7234b3..641c73c 100644 --- a/src/Skyrim/Records/OTFTRecord.cpp +++ b/src/Skyrim/Records/OTFTRecord.cpp @@ -111,11 +111,8 @@ int32_t OTFTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer INAM.Read(buffer, subSize); break; default: - //printer("Filename = %s\n", FileName); - printer(" APPA: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/OTFTRecord.h b/src/Skyrim/Records/OTFTRecord.h index c36063e..84786d5 100644 --- a/src/Skyrim/Records/OTFTRecord.h +++ b/src/Skyrim/Records/OTFTRecord.h @@ -35,7 +35,7 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\GenericRecord.h" +#include "../../GenericRecord.h" namespace Sk { @@ -63,6 +63,7 @@ class OTFTRecord : public TES5Record // Outfit int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const OTFTRecord &other) const; bool operator !=(const OTFTRecord &other) const; diff --git a/src/Skyrim/Records/PACKRecord.cpp b/src/Skyrim/Records/PACKRecord.cpp new file mode 100644 index 0000000..34a9892 --- /dev/null +++ b/src/Skyrim/Records/PACKRecord.cpp @@ -0,0 +1,546 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is CBash code. + * + * The Initial Developer of the Original Code is + * Waruddar. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "PACKRecord.h" +#include "../../Oblivion/Records/PACKRecord.h" + +namespace Sk +{ + +PACKRecord::PACKPKDT::PACKPKDT(): + flags(0), + packageType(0x12), + interruptOverride(0), + preferredSpeed(0), + unused1(0), + interruptFlags(0) + { + } + +PACKRecord::PACKPKDT::~PACKPKDT() + { + // + } + +PACKRecord::PACKPKCU::PACKPKCU(): +dataInputCount(0), +packageTemplate(0), +versionCounter(0) +{ + // +} + +PACKRecord::PACKPKCU::~PACKPKCU() +{ + // +} + + +bool PACKRecord::PACKPKDT::operator ==(const PACKPKDT &other) const + { + return (flags == other.flags && + packageType == other.packageType && + interruptOverride == other.interruptOverride && + interruptOverride == other.interruptOverride && + preferredSpeed == other.preferredSpeed && + interruptFlags == other.interruptFlags); + } + +bool PACKRecord::PACKPKDT::operator !=(const PACKPKDT &other) const + { + return !(*this == other); + } + +PACKRecord::PACKPLDT::PACKPLDT(): + locType(0), + locId(0), + locRadius(0) + { + // + } + +PACKRecord::PACKPLDT::~PACKPLDT() + { + // + } + +bool PACKRecord::PACKPLDT::operator ==(const PACKPLDT &other) const + { + return (locType == other.locType && + locId == other.locId && + locRadius == other.locRadius); + } + +bool PACKRecord::PACKPLDT::operator !=(const PACKPLDT &other) const + { + return !(*this == other); + } + +PACKRecord::PACKPSDT::PACKPSDT(): + month(0), + day(0), + date(0), + hour(0), + minute(0), + duration(0) + { + memset(&unused1[0], 0x00, sizeof(unused1)); + } + +PACKRecord::PACKPSDT::~PACKPSDT() + { + // + } + +bool PACKRecord::PACKPSDT::operator ==(const PACKPSDT &other) const + { + return (month == other.month && + day == other.day && + date == other.date && + hour == other.hour && + minute == other.minute && + duration == other.duration); + } + +bool PACKRecord::PACKPSDT::operator !=(const PACKPSDT &other) const + { + return !(*this == other); + } + +PACKRecord::PACKPTDA::PACKPTDA(): + targetType(0), + targetId(0), + targetCount(0) + { + // + } + +PACKRecord::PACKPTDA::~PACKPTDA() + { + // + } + +bool PACKRecord::PACKPTDA::operator ==(const PACKPTDA &other) const + { + return (targetType == other.targetType && + targetId == other.targetId && + targetCount == other.targetCount); + } + +bool PACKRecord::PACKPTDA::operator !=(const PACKPTDA &other) const + { + return !(*this == other); + } + +PACKRecord::PACKRecord(unsigned char *_recData): + TES5Record(_recData) + { + // + } + +PACKRecord::PACKRecord(PACKRecord *srcRecord): +TES5Record() + { + if(srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + + + recData = srcRecord->recData; + if(!srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + CTDA = srcRecord->CTDA; + PKCU = srcRecord->PKCU; + PKDT = srcRecord->PKDT; + PSDT = srcRecord->PSDT; + XNAM = srcRecord->XNAM; + TDAT = srcRecord->TDAT; + PTRE = srcRecord->PTRE; + PDAT = srcRecord->PDAT; + return; + } + +PACKRecord::PACKRecord(const PACKRecord &srcRecord) { + flags = srcRecord.flags; + formID = srcRecord.formID; + flagsUnk = srcRecord.flagsUnk; + formVersion = srcRecord.formVersion; + versionControl2[0] = srcRecord.versionControl2[0]; + + EDID = srcRecord.EDID; + CTDA = srcRecord.CTDA; + PKCU = srcRecord.PKCU; + PKDT = srcRecord.PKDT; + PSDT = srcRecord.PSDT; + XNAM = srcRecord.XNAM; + CNAM = srcRecord.CNAM; + TDAT = srcRecord.TDAT; + PTRE = srcRecord.PTRE; + PDAT = srcRecord.PDAT; +} + +PACKRecord::~PACKRecord() + { + // + } + +bool PACKRecord::VisitFormIDs(FormIDOp &op) + { + + if(!IsLoaded()) + return false; + + op.Accept(PKCU.value.packageTemplate); + + for(uint32_t ListIndex = 0; ListIndex < CTDA.value.size(); ListIndex++) { + CTDA.value[ListIndex]->VisitFormIDs(op); + } + for(uint32_t ListIndex = 0; ListIndex < TDAT.ANAM.size(); ListIndex++) { + + if (TDAT.ANAM[ListIndex] == "Location") { + + if ((TDAT.cnamData[ListIndex].writtenPLDT.locId == 0x07) || (TDAT.cnamData[ListIndex].writtenPLDT.locId == 0x01000007) || (TDAT.cnamData[ListIndex].writtenPLDT.locId == 0x01000014)) { + TDAT.cnamData[ListIndex].writtenPLDT.locId = 0x14; + } + + op.Accept((TDAT.cnamData[ListIndex].writtenPLDT.locId)); + } + + if (TDAT.ANAM[ListIndex] == "SingleRef" || TDAT.ANAM[ListIndex] == "TargetSelector") { + + if ((TDAT.cnamData[ListIndex].writtenPTDA.targetId == 0x07) || (TDAT.cnamData[ListIndex].writtenPTDA.targetId == 0x01000007) || (TDAT.cnamData[ListIndex].writtenPTDA.targetId == 0x01000014)) { + TDAT.cnamData[ListIndex].writtenPTDA.targetId = 0x14; + } + + op.Accept((TDAT.cnamData[ListIndex].writtenPTDA.targetId)); + } + + } + + return op.Stop(); + } + +bool PACKRecord::isMustComplete() { return (PKDT.value.flags & fMustComplete) != 0; } +bool PACKRecord::isMaintainSpeedAtGoal() { return (PKDT.value.flags & fMaintainSpeedAtGoal) != 0; } +bool PACKRecord::isAtPackageStartUnlockDoors() { return (PKDT.value.flags & fAtPackageStartUnlockDoors) != 0; } +bool PACKRecord::isAtPackageChangeUnlockDoors() { return (PKDT.value.flags & fAtPackageChangeUnlockDoors) != 0; } +bool PACKRecord::isOncePerDay() { return (PKDT.value.flags & fOncePerDay) != 0; } +bool PACKRecord::isPreferredSpeed() { return (PKDT.value.flags & fPreferredSpeed) != 0; } +bool PACKRecord::isAlwaysSneak() { return (PKDT.value.flags & fAlwaysSneak) != 0; } +bool PACKRecord::isAllowSwimming() { return (PKDT.value.flags & fAllowSwimming) != 0; } +bool PACKRecord::isIgnoreCombat() { return (PKDT.value.flags & fIgnoreCombat) != 0; } +bool PACKRecord::isWeaponsUnequipped() { return (PKDT.value.flags & fWeaponsUnequipped) != 0; } +bool PACKRecord::isWeaponDrawn() { return (PKDT.value.flags & fWeaponDrawn) != 0; } +bool PACKRecord::isNoCombatAlert() { return (PKDT.value.flags & fNoCombatAlert) != 0; } +bool PACKRecord::isWearSleepOutfit() { return (PKDT.value.flags & fWearSleepOutfit) != 0; } +/* +bool PACKRecord::isHellosToPlayer() { return (PKDT.value.interruptFlags & PACKRecord::interrupt) != 0; } +bool PACKRecord::isRandomConversations() { return (PKDT.value.interruptFlags & fRandomConversations) != 0; } +bool PACKRecord::isObserveCombatBehavior() { return (PKDT.value.interruptFlags & fObserveCombatBehavior) != 0; } +bool PACKRecord::isGreetCorpseBehavior() { return (PKDT.value.interruptFlags & fGreetCorpseBehavior) != 0; } +bool PACKRecord::isReactionToPlayerActions() { return (PKDT.value.interruptFlags & fReactionToPlayerActions) != 0; } +bool PACKRecord::isFriendlyFireComments() { return (PKDT.value.interruptFlags & fFriendlyFireComments) != 0; } +bool PACKRecord::isAggroRadiusBehavior() { return (PKDT.value.interruptFlags & fAggroRadiusBehavior) != 0; } +bool PACKRecord::isAllowIdleChatter() { return (PKDT.value.interruptFlags & fAllowIdleChatter) != 0; } +bool PACKRecord::isWorldInteractions() { return (PKDT.value.interruptFlags & fWorldInteractions) != 0; } +*/ + +uint32_t PACKRecord::GetType() + { + return REV32(PACK); + } + +char* PACKRecord::GetStrType() + { + return "PACK"; + } + +int32_t PACKRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + bool hasReachedOptionalSection = false; + bool hasReachedTemplateData = false; + bool hasTemplateDataEnded = false; + SKCondition *current_condition = NULL; + + while(buffer < end_buffer){ + subType = *(uint32_t *)buffer; + buffer += 4; + + + switch(subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + + switch(subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(PKDT): + PKDT.Read(buffer, subSize); + break; + case REV32(PSDT): + PSDT.Read(buffer, subSize); + break; + case REV32(PKCU): + PKCU.Read(buffer, subSize); + break; + case REV32(CTDT): + case REV32(CTDA): + current_condition = new SKCondition(); + if (!hasReachedTemplateData) { + CTDA.value.push_back(current_condition); + current_condition->CTDA.Read(buffer, subSize); + } + else { + PTRE.value.back()->CTDA.value.push_back(current_condition); + current_condition->CTDA.Read(buffer, subSize); + } + break; + + + case REV32(CIS1): + if (current_condition == NULL) { + printer(" INFO: %08X - Reading CIS1 without current_condition set\n", formID); + CBASH_CHUNK_DEBUG + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + else { + current_condition->CIS1.Read(buffer, subSize, CompressedOnDisk); + } + + break; + + case REV32(CIS2): + if (current_condition == NULL) { + printer(" INFO: %08X - Reading CIS2 without current_condition set\n", formID); + CBASH_CHUNK_DEBUG + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + else { + current_condition->CIS2.Read(buffer, subSize, CompressedOnDisk); + } + + break; + case REV32(ANAM): + if (!hasReachedTemplateData) { + hasReachedOptionalSection = true; + TDAT.ReadANAM(buffer, subSize); + } + else { + PACKPTRE* ptre = new PACKPTRE(); + ptre->ReadANAM(buffer, subSize); + PTRE.value.push_back(ptre); + } + break; + case REV32(CNAM): + if (hasReachedOptionalSection) { + TDAT.ReadSelector(buffer, subSize); //CNAM is a primitive value for the optional section + } + else { + CNAM.Read(buffer, subSize); //CNAM is a pointer to combat style + } + break; + case REV32(PLDT): + case REV32(PTDA): + TDAT.ReadSelector(buffer, subSize); + break; + case REV32(UNAM): + if (!hasReachedTemplateData) { + TDAT.ReadUNAM(buffer, subSize); + } + else { + PACKPDAT* pdat = new PACKPDAT(); + memcpy(&pdat->UNAM, buffer, subSize); + PDAT.value.push_back(pdat); + buffer += subSize; + hasTemplateDataEnded = true; + } + break; + case REV32(XNAM): + XNAM.Read(buffer, subSize); + hasReachedTemplateData = true; + break; + case REV32(CITC): + memcpy(&PTRE.value.back()->CITC, buffer, subSize); + buffer += subSize; + break; + case REV32(PRCB): + memcpy(&PTRE.value.back()->PRCB.numOfChild, buffer, 4); + memcpy(&PTRE.value.back()->PRCB.flags, buffer, 4); + buffer += subSize; + break; + case REV32(PNAM): + if (hasTemplateDataEnded) { + memcpy(&PDAT.value.back()->PNAM, buffer, subSize); + buffer += subSize; + } + else { + PTRE.value.back()->ReadPNAM(buffer, subSize); + } + break; + case REV32(FNAM): + memcpy(&PTRE.value.back()->FNAM, buffer, subSize); + buffer += subSize; + break; + case REV32(PKC2): + PTRE.value.back()->ReadPKC2(buffer, subSize); + break; + case REV32(BNAM): + PDAT.value.back()->ReadBNAM(buffer, subSize); + break; + case REV32(PFO2): + case REV32(PFOR): + case REV32(POBA): + case REV32(POEA): + case REV32(POCA): + case REV32(INAM): + case REV32(SCHR): + case REV32(TNAM): + case REV32(PDTO): + case REV32(IDLC): + case REV32(IDLA): + case REV32(IDLF): + case REV32(IDLT): + case REV32(QNAM): + case REV32(VMAD): + case REV32(SCTX): + case REV32(TPIC): + case REV32(SCDA): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + +int32_t PACKRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + + EDID.Unload(); + PKDT.Unload(); + PSDT.Unload(); + CTDA.Unload(); + return 1; + } + +int32_t PACKRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(PKDT); + WRITE(PSDT); + CTDA.Write(writer, true); + WRITE(PKCU); + TDAT.Write(writer); + WRITE(XNAM); + PTRE.Write(writer); + PDAT.Write(writer); + + int emptyNumber = 0; + writer.record_write_subheader(REV32(POBA), 0); + writer.record_write_subheader(REV32(INAM), 4); + writer.record_write(&emptyNumber, 4); + writer.record_write_subheader(REV32(PDTO), 8); + writer.record_write(&emptyNumber, 4); + writer.record_write(&emptyNumber, 4); + writer.record_write_subheader(REV32(POEA), 0); + writer.record_write_subheader(REV32(INAM), 4); + writer.record_write(&emptyNumber, 4); + writer.record_write_subheader(REV32(PDTO), 8); + writer.record_write(&emptyNumber, 4); + writer.record_write(&emptyNumber, 4); + writer.record_write_subheader(REV32(POCA), 0); + writer.record_write_subheader(REV32(INAM), 4); + writer.record_write(&emptyNumber, 4); + writer.record_write_subheader(REV32(PDTO), 8); + writer.record_write(&emptyNumber, 4); + writer.record_write(&emptyNumber, 4); + + return -1; + } + +bool PACKRecord::operator ==(const PACKRecord &other) const + { + return (EDID.equalsi(other.EDID) && + PKDT == other.PKDT && + PSDT == other.PSDT && + CTDA == other.CTDA); + } + +bool PACKRecord::operator !=(const PACKRecord &other) const + { + return !(*this == other); + } + +bool PACKRecord::equals(Record *other) + { + return *this == *(PACKRecord *)other; + } + + +} \ No newline at end of file diff --git a/src/Skyrim/Records/PACKRecord.h b/src/Skyrim/Records/PACKRecord.h new file mode 100644 index 0000000..d635b94 --- /dev/null +++ b/src/Skyrim/Records/PACKRecord.h @@ -0,0 +1,515 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is CBash code. + * + * The Initial Developer of the Original Code is + * Waruddar. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../../Oblivion/Records/PACKRecord.h" +#include "../SkyrimChunks.h" + +namespace Sk +{ + class PACKRecord : public TES5Record //Package + { + + + + public: + struct PACKPKCU //Template info + { + uint32_t dataInputCount; + uint32_t packageTemplate; + uint32_t versionCounter; + + PACKPKCU(); + ~PACKPKCU(); + + bool operator ==(const PACKPKCU &other) const; + bool operator !=(const PACKPKCU &other) const; + }; + + + struct PACKPTDA //Target + { + int32_t targetType; + FORMID_OR_UINT32 targetId; + int32_t targetCount; + + PACKPTDA(); + ~PACKPTDA(); + + bool operator ==(const PACKPTDA &other) const; + bool operator !=(const PACKPTDA &other) const; + }; + + struct PACKPLDT //Location + { + int32_t locType; + FORMID_OR_UINT32 locId; + int32_t locRadius; + + PACKPLDT(); + ~PACKPLDT(); + + bool operator ==(const PACKPLDT &other) const; + bool operator !=(const PACKPLDT &other) const; + }; + + struct PACKPRCB { + uint32_t numOfChild = 0; + uint32_t flags = 0; + }; + + + + struct PACKACTIVITY { + + bool writtenBool; + int writtenInt; + float writtenFloat; + PACKPLDT writtenPLDT; + PACKPTDA writtenPTDA; + + }; + + struct PACKTDAT //Template data.. + { + std::vector ANAM; + std::vector cnamData; + std::vector unamData; + + bool ReadANAM(unsigned char *&buffer, const uint32_t &subSize) { + char * name = new char[subSize + 1]; + name[subSize] = 0x00; + memcpy(name, buffer, subSize); + ANAM.push_back(name); + buffer += subSize; + return true; + } + + bool ReadUNAM(unsigned char *&buffer, const uint32_t &subSize) { + uint8_t data; + memcpy(&data, buffer, subSize); + buffer += subSize; + unamData.push_back(data); + return true; + } + + bool ReadSelector(unsigned char *&buffer, const uint32_t &subSize) { + char * lastANAM = ANAM[ANAM.size() - 1]; + PACKACTIVITY p = PACKACTIVITY(); + + if (strcmp(lastANAM, "Bool") == 0) { + assert(subSize == 1); + memcpy(&p.writtenBool, buffer, subSize); + } + + if (strcmp(lastANAM, "Float") == 0) { + assert(subSize == 4); + memcpy(&p.writtenFloat, buffer, subSize); + } + + if (strcmp(lastANAM, "Int") == 0) { + assert(subSize == 4); + memcpy(&p.writtenInt, buffer, subSize); + } + + if (strcmp(lastANAM, "Location") == 0) { + memcpy(&p.writtenPLDT, buffer, subSize); + } + + if (strcmp(lastANAM, "SingleRef") == 0) { + memcpy(&p.writtenPTDA, buffer, subSize); + } + + if (strcmp(lastANAM, "ObjectList") == 0) { + memcpy(&p.writtenFloat, buffer, subSize); + } + + if (strcmp(lastANAM, "TargetSelector") == 0) { + memcpy(&p.writtenPTDA, buffer, subSize); + } + + cnamData.push_back(p); + buffer += subSize; + + return true; + } + + + void Write(FileWriter &writer) { + +// assert(ANAM.size() == cnamData.size() == unamData.size()); + + for (uint32_t i = 0; i < ANAM.size(); ++i) { + std::string stringData = std::string(ANAM[i]); + size_t sizeString = stringData.size() + 1; + + writer.record_write_subheader(REV32(ANAM),sizeString); + writer.record_write(stringData.c_str(), sizeString); + + if (stringData == "Bool") { + writer.record_write_subheader(REV32(CNAM), 1); + writer.record_write(&cnamData[i].writtenBool, 1); + } + + if (stringData == "Float") { + writer.record_write_subheader(REV32(CNAM), 4); + writer.record_write(&cnamData[i].writtenFloat, 4); + } + + if (stringData == "Int") { + writer.record_write_subheader(REV32(CNAM), 4); + writer.record_write(&cnamData[i].writtenInt, 4); + } + + if (stringData == "Location") { + int sizeData = sizeof(cnamData[i].writtenPLDT); + writer.record_write_subheader(REV32(PLDT), sizeData); + writer.record_write(&cnamData[i].writtenPLDT, sizeData); + } + + if (stringData == "SingleRef") { + int sizeData = sizeof(cnamData[i].writtenPTDA); + writer.record_write_subheader(REV32(PTDA), sizeData); + writer.record_write(&cnamData[i].writtenPTDA, sizeData); + } + + if (stringData == "ObjectList") { + writer.record_write_subheader(REV32(CNAM), 4); + writer.record_write(&cnamData[i].writtenFloat, 4); + } + + if (stringData == "TargetSelector") { + int sizeData = sizeof(cnamData[i].writtenPTDA); + writer.record_write_subheader(REV32(PTDA), sizeData); + writer.record_write(&cnamData[i].writtenPTDA, sizeData); + } + + } + + for (uint32_t i = 0; i < unamData.size(); ++i) { + + writer.record_write_subheader(REV32(UNAM), 1); + writer.record_write(&unamData[i], 1); + + } + } + + }; + + struct PACKPKDT //General + { + uint32_t flags; + uint8_t packageType; + uint8_t interruptOverride; + uint8_t preferredSpeed; + uint8_t unused1; + uint32_t interruptFlags; + + PACKPKDT(); + ~PACKPKDT(); + + bool operator ==(const PACKPKDT &other) const; + bool operator !=(const PACKPKDT &other) const; + }; + + struct PACKPSDT //Schedule + { + int8_t month, day; + uint8_t date; + uint8_t hour, minute; + uint8_t unused1[3]; + int32_t duration; + + PACKPSDT(); + ~PACKPSDT(); + + bool operator ==(const PACKPSDT &other) const; + bool operator !=(const PACKPSDT &other) const; + }; + + struct PACKPTRE { + char *ANAM = NULL; + uint32_t CITC; + UnorderedSparseArray CTDA; + PACKPRCB PRCB; + char *PNAM = NULL; + uint32_t FNAM; + std::vector PKC2; + + bool ReadANAM(unsigned char *&buffer, const uint32_t &subSize) { + ANAM = new char[subSize + 1]; + ANAM[subSize] = 0x00; + memcpy(ANAM, buffer, subSize); + buffer += subSize; + return true; + } + + bool ReadPNAM(unsigned char *&buffer, const uint32_t &subSize) { + PNAM = new char[subSize + 1]; + PNAM[subSize] = 0x00; + memcpy(PNAM, buffer, subSize); + buffer += subSize; + return true; + } + + bool ReadPKC2(unsigned char *&buffer, const uint32_t &subSize) { + uint8_t pkc2; + memcpy(&pkc2, buffer, subSize); + buffer += subSize; + PKC2.push_back(pkc2); + return true; + } + + void Write(FileWriter &writer) { + if (ANAM == NULL) + return; + + std::string stringData = std::string(ANAM); + size_t sizeString = stringData.size() + 1; + + writer.record_write_subheader(REV32(ANAM), sizeString); + writer.record_write(stringData.c_str(), sizeString); + + CITC = std::min((int)CITC, (int)CTDA.value.size()); + + writer.record_write_subheader(REV32(CITC), 4); + writer.record_write(&CITC, 4); + + CTDA.Write(writer); + + if (stringData != "Procedure") { + int sizeData = sizeof(PRCB); + writer.record_write_subheader(REV32(PRCB), sizeData); + writer.record_write(&PRCB, sizeData); + } + else { + + if (PNAM != NULL) { + stringData = std::string(PNAM); + sizeString = stringData.size() + 1; + + writer.record_write_subheader(REV32(PNAM), sizeString); + writer.record_write(stringData.c_str(), sizeString); + } + + writer.record_write_subheader(REV32(FNAM), 4); + writer.record_write(&FNAM, 4); + + for (int i = 0; i < PKC2.size(); i++) { + writer.record_write_subheader(REV32(PKC2), 1); + writer.record_write(&PKC2[i], 1); + } + } + } + + PACKPTRE& operator=(const PACKPTRE& other) { + ANAM = new char[std::string(other.ANAM).size() + 1]; + std::strcpy(ANAM, other.ANAM); + CITC = other.CITC; + CTDA = other.CTDA; + PRCB = other.PRCB; + if (other.PNAM != NULL) { + PNAM = new char[std::string(other.PNAM).size() + 1]; + std::strcpy(PNAM, other.PNAM); + } + FNAM = other.FNAM; + PKC2 = other.PKC2; + + return *this; + } + }; + + struct PACKPDAT { + uint8_t UNAM; + char *BNAM = NULL; + uint32_t PNAM; + + bool ReadBNAM(unsigned char *&buffer, const uint32_t &subSize) { + BNAM = new char[subSize + 1]; + BNAM[subSize] = 0x00; + memcpy(BNAM, buffer, subSize); + buffer += subSize; + return true; + } + + void Write(FileWriter &writer) { + writer.record_write_subheader(REV32(UNAM), 1); + writer.record_write(&UNAM, 1); + + if(BNAM == NULL) + writer.record_write_subheader(REV32(BNAM), 0); + else { + std::string stringData = std::string(BNAM); + size_t sizeString = stringData.size() + 1; + + writer.record_write_subheader(REV32(BNAM), sizeString); + writer.record_write(stringData.c_str(), sizeString); + } + + writer.record_write_subheader(REV32(PNAM), 4); + writer.record_write(&PNAM, 4); + } + + PACKPDAT& operator=(const PACKPDAT& other) { + BNAM = new char[std::string(other.BNAM).size() + 1]; + std::strcpy(BNAM, other.BNAM); + UNAM = other.UNAM; + PNAM = other.PNAM; + return *this; + } + }; + + enum interruptFlagsFlags + { + fHellosToPlayer = 0x01, + fRandomConversations = 0x02, + fObserveCombatBehavior = 0x04, + fGreetCorpseBehavior = 0x08, + fReactionToPlayerActions = 0x10, + fFriendlyFireComments = 0x20, + fAggroRadiusBehavior = 0x40, + fAllowIdleChatter = 0x80, + fWorldInteractions = 0x200 + }; + + enum flagsFlags + { + fMustComplete = 0x04, + fMaintainSpeedAtGoal = 0x08, + fAtPackageStartUnlockDoors = 0x40, + fAtPackageChangeUnlockDoors = 0x80, + fOncePerDay = 0x400, + fPreferredSpeed = 0x2000, + fAlwaysSneak = 0x20000, + fAllowSwimming = 0x40000, + fIgnoreCombat = 0x100000, + fWeaponsUnequipped = 0x200000, + fWeaponDrawn = 0x800000, + fNoCombatAlert = 0x8000000, + fWearSleepOutfit = 0x20000000 + }; + + + + enum preferredSpeedTypes + { + tWalk = 0, + tJog = 1, + tRun = 2, + tFastWalk = 3 + }; + + enum locTypeType + { + eLocNearReference = 0, + eLocInCell = 1, + eLocNearCurrentLocation = 2, + eLocNearEditorLocation = 3, + eLocObjectID = 4, + eLocObjectType = 5 + }; + + enum targetTypeType + { + eTargetReference = 0, + eTargetObjectID = 1, + eTargetObjectType = 2 + }; + + public: + StringRecord EDID; //Editor ID + //TODO ADD VMAD + + OrderedSparseArray CTDA; //Conditions + + ReqSubRecord PKCU; //Template Info + ReqSubRecord PKDT; //General + ReqSubRecord PSDT; //Schedule + ReqSimpleSubRecord XNAM; + OptSimpleSubRecord CNAM; //Combat style + PACKTDAT TDAT; //Template data. + + UnorderedSparseArray PTRE; // Procedure tree + UnorderedSparseArray PDAT; // Procedure data + + PACKRecord(unsigned char *_recData=NULL); + PACKRecord(PACKRecord *srcRecord); + PACKRecord(const PACKRecord &srcRecord); + ~PACKRecord(); + + bool VisitFormIDs(FormIDOp &op); + + bool isMustComplete(); + bool isMaintainSpeedAtGoal(); + bool isAtPackageStartUnlockDoors(); + bool isAtPackageChangeUnlockDoors(); + bool isOncePerDay(); + bool isPreferredSpeed(); + bool isAlwaysSneak(); + bool isAllowSwimming(); + bool isIgnoreCombat(); + bool isWeaponsUnequipped(); + bool isWeaponDrawn(); + bool isNoCombatAlert(); + bool isWearSleepOutfit(); + void addLocationTemplateSetting(PACKPLDT location, int unamRecordIndex); + void addBoolTemplateSetting(bool setting, int unamRecordIndex); + void addIntTemplateSetting(int setting, int unamRecordIndex); + void addFloatTemplateSetting(float setting, int unamRecordIndex); + void addTargetTemplateSetting(char * name, PACKPTDA target, int unamRecordIndex); + void addObjectListTemplateSetting(float setting, int unamRecordIndex); + + + //uint32_t GetFieldAttribute(DEFAULTED_FIELD_IDENTIFIERS, uint32_t WhichAttribute=0); + //void * GetField(DEFAULTED_FIELD_IDENTIFIERS, void **FieldValues=NULL); + //bool SetField(DEFAULTED_FIELD_IDENTIFIERS, void *FieldValue=NULL, uint32_t ArraySize=0); + //void DeleteField(DEFAULTED_FIELD_IDENTIFIERS); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const PACKRecord &other) const; + bool operator !=(const PACKRecord &other) const; + bool equals(Record *other); + + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/QUSTRecord.cpp b/src/Skyrim/Records/QUSTRecord.cpp new file mode 100644 index 0000000..012d5d6 --- /dev/null +++ b/src/Skyrim/Records/QUSTRecord.cpp @@ -0,0 +1,766 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +// BaseRecord.h +#include "../../Common.h" +#include "../../GenericChunks.h" +#include "../../ModFile.h" +#include "QUSTRecord.h" +#include + +namespace Sk { + + + QUSTRecord::QUSTRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + QUSTRecord::QUSTRecord(QUSTRecord *srcRecord) : + TES5Record() + { + + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + FULL = srcRecord->FULL; + DNAM = srcRecord->DNAM; + ENAM = srcRecord->ENAM; + QTGL = srcRecord->QTGL; + FLTR = srcRecord->FLTR; + QDCTDA = srcRecord->QDCTDA; + NEXT = srcRecord->NEXT; + QECTDA = srcRecord->QECTDA; + questStages = srcRecord->questStages; + questObjectives = srcRecord->questObjectives; + ANAM = srcRecord->ANAM; + questAliases = srcRecord->questAliases; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + + return; + } + + QUSTRecord::~QUSTRecord() + { + // + } + + uint32_t QUSTRecord::GetType() + { + return REV32(QUST); + } + + char * QUSTRecord::GetStrType() + { + return "QUST"; + } + + + bool QUSTRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + + for (uint32_t p = 0; p < QTGL.value.size(); p++) + op.Accept(QTGL.value[p]); + + for (uint32_t p = 0; p < QDCTDA.value.size(); p++) + QDCTDA.value[p]->VisitFormIDs(op); + + for (uint32_t p = 0; p < QECTDA.value.size(); p++) + QECTDA.value[p]->VisitFormIDs(op); + + for (uint32_t p = 0; p < questStages.value.size(); p++) { + for (uint32_t k = 0; k < questStages.value[p]->LOGS.value.size(); k++) { + if (questStages.value[p]->LOGS.value[k]->NAM0.IsLoaded()) { + op.Accept(questStages.value[p]->LOGS.value[k]->NAM0.value); + } + + for (uint32_t u = 0; u < questStages.value[p]->LOGS.value[k]->CTDA.value.size(); u++) { + questStages.value[p]->LOGS.value[k]->CTDA.value[u]->VisitFormIDs(op); + } + } + } + + for (uint32_t p = 0; p < questObjectives.value.size(); p++) { + for (uint32_t k = 0; k < questObjectives.value[p]->TGTS.value.size(); k++) { + for (uint32_t u = 0; u < questObjectives.value[p]->TGTS.value[k]->CTDA.value.size(); u++) { + questObjectives.value[p]->TGTS.value[k]->CTDA.value[u]->VisitFormIDs(op); + } + } + } + + for (uint32_t p = 0; p < questAliases.value.size(); p++) { + if (questAliases.value[p]->aliasType != NULL) + questAliases.value[p]->aliasType->VisitFormIDs(op); + + for (uint32_t k = 0; k < questAliases.value[p]->CTDA.value.size(); k++) { + questAliases.value[p]->CTDA.value[k]->VisitFormIDs(op); + } + + for (uint32_t k = 0; k < questAliases.value[p]->KWDA.value.size(); k++) { + op.Accept(questAliases.value[p]->KWDA.value[k]); + } + + for (uint32_t k = 0; k < questAliases.value[p]->CNTO.value.size(); k++) { + op.Accept(questAliases.value[p]->CNTO.value[k].itemID); + } + + if (questAliases.value[p]->SPOR.IsLoaded()) { + op.Accept(questAliases.value[p]->SPOR.value); + } + + if (questAliases.value[p]->OCOR.IsLoaded()) { + op.Accept(questAliases.value[p]->OCOR.value); + } + + if (questAliases.value[p]->GWOR.IsLoaded()) { + op.Accept(questAliases.value[p]->GWOR.value); + } + + if (questAliases.value[p]->ECOR.IsLoaded()) { + op.Accept(questAliases.value[p]->ECOR.value); + } + + if (questAliases.value[p]->ALDN.IsLoaded()) { + op.Accept(questAliases.value[p]->ALDN.value); + } + + for (uint32_t k = 0; k < questAliases.value[p]->ALSP.value.size(); k++) { + op.Accept(questAliases.value[p]->ALSP.value[k]); + } + + for (uint32_t k = 0; k < questAliases.value[p]->ALFC.value.size(); k++) { + op.Accept(questAliases.value[p]->ALFC.value[k]); + } + + for (uint32_t k = 0; k < questAliases.value[p]->ALPC.value.size(); k++) { + op.Accept(questAliases.value[p]->ALPC.value[k]); + } + + if (questAliases.value[p]->VTCK.IsLoaded()) { + op.Accept(questAliases.value[p]->VTCK.value); + } + + } + + + + return op.Stop(); + } + + int32_t QUSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + bool isFirst = true; + bool isQE = false; + QUSTParseMode mode = QUSTParseMode::QUSTParseNormal; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + + SKCondition *current_condition = NULL; + + while (buffer < end_buffer){ + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + + + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(VMAD): + VMAD.Load(); + VMAD.value->Read(buffer, subSize, REV32(QUST), CompressedOnDisk); + break; + + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(DNAM): + DNAM.Read(buffer, subSize); + break; + + case REV32(ENAM): + ENAM.Read(buffer, subSize); + break; + + case REV32(QTGL): + QTGL.Read(buffer, subSize); + break; + + case REV32(FLTR): + FLTR.Read(buffer, subSize); + break; + + case REV32(CTDA): { + current_condition = new SKCondition(); + switch (mode) { + case QUSTParseMode::QUSTParseNormal: + if (isQE) { + QECTDA.value.push_back(current_condition); + } + else { + QDCTDA.value.push_back(current_condition); + } + break; + + case QUSTParseMode::QUSTParseStages: + this->questStages.value.back()->LOGS.value.back()->CTDA.value.push_back(current_condition); + break; + + case QUSTParseMode::QUSTParseObjectives: + this->questObjectives.value.back()->TGTS.value.back()->CTDA.value.push_back(current_condition); + break; + + case QUSTParseMode::QUSTParseAliases: + this->questAliases.value.back()->CTDA.value.push_back(current_condition); + } + + current_condition->CTDA.Read(buffer, subSize); + break; + } + + case REV32(CIS1): + if (current_condition == NULL) { + printer(" INFO: %08X - Reading CIS1 without current_condition set\n", formID); + CBASH_CHUNK_DEBUG + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + else { + current_condition->CIS1.Read(buffer, subSize, CompressedOnDisk); + } + + break; + + case REV32(CIS2): + if (current_condition == NULL) { + printer(" INFO: %08X - Reading CIS2 without current_condition set\n", formID); + CBASH_CHUNK_DEBUG + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + else { + current_condition->CIS2.Read(buffer, subSize, CompressedOnDisk); + } + + break; + + case REV32(NEXT): + NEXT.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(ANAM): + ANAM.Read(buffer, subSize); + break; + + case REV32(FNAM): { + switch (mode) { + + case QUSTParseMode::QUSTParseObjectives: + this->questObjectives.value.back()->FNAM.Read(buffer, subSize); + break; + + case QUSTParseMode::QUSTParseAliases: + this->questAliases.value.back()->FNAM.Read(buffer, subSize); + + uint32_t allowedBitmask; + if (this->questAliases.value.back()->isLocation == true) { + allowedBitmask = 0x1030B; + } + else { + allowedBitmask = 0x2FFFF; + } + + if ((this->questAliases.value.back()->FNAM.value & (~allowedBitmask)) > 0) { + log_error << "(" << (EDID.IsLoaded() ? EDID.value : "") << ") QUSTRecord::ParseRecords() - FNAM Alias bitmask is wrong ( has unsupported flags ).\n"; + } + + break; + + } + break; + } + + //QUSTParseObjectives, parsing objectives. + case REV32(QOBJ): { + mode = QUSTParseMode::QUSTParseObjectives; + QUSTOBJECTIVE* objective = new QUSTOBJECTIVE(); + objective->QOBJ.Read(buffer, subSize); + this->questObjectives.value.push_back(objective); + break; + } + + + case REV32(NNAM): { + + if (mode != QUSTParseMode::QUSTParseObjectives) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected NNAM."); + } + + this->questObjectives.value.back()->NNAM.Read(buffer, subSize, CompressedOnDisk); + break; + } + + case REV32(QSTA): { + + if (mode != QUSTParseMode::QUSTParseObjectives) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected QSTA."); + } + + QUSTCONDITIONALTARGET *newTarget = new QUSTCONDITIONALTARGET(); + newTarget->QSTA.Read(buffer, subSize); + this->questObjectives.value.back()->TGTS.value.push_back(newTarget); + break; + } + + + + + //QUSTParseStages mode, parsing stages. + + case REV32(INDX): { + mode = QUSTParseMode::QUSTParseStages; + QUSTSTAGE* stage = new QUSTSTAGE(); + stage->INDX.Read(buffer, subSize); + this->questStages.value.push_back(stage); + break; + } + + case REV32(CNAM): { + + if (mode != QUSTParseMode::QUSTParseStages) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected CNAM."); + } + + this->questStages.value.back()->LOGS.value.back()->CNAM.Read(buffer, subSize, CompressedOnDisk); + break; + } + + case REV32(NAM0): { + + if (mode != QUSTParseMode::QUSTParseStages) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected NAM0."); + } + + this->questStages.value.back()->LOGS.value.back()->NAM0.Read(buffer, subSize); + break; + } + + case REV32(QSDT): { + + if (mode != QUSTParseMode::QUSTParseStages) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected QSDT."); + } + + QUSTLOGENTRY* questLogEntry = new QUSTLOGENTRY(); + questLogEntry->QSDT.Read(buffer, subSize); + + this->questStages.value.back()->LOGS.value.push_back(questLogEntry); + + break; + } + + //QUSTParseAliases mode. + + case REV32(ALST): { + + mode = QUSTParseMode::QUSTParseAliases; + QUSTALIAS *alias = new QUSTALIAS(); + alias->aliasID.Read(buffer, subSize); + alias->isLocation = false; + this->questAliases.value.push_back(alias); + break; + } + + case REV32(ALLS): { + mode = QUSTParseMode::QUSTParseAliases; + QUSTALIAS *alias = new QUSTALIAS(); + alias->aliasID.Read(buffer, subSize); + alias->isLocation = true; + this->questAliases.value.push_back(alias); + break; + } + + case REV32(ALID): { + if (mode != QUSTParseMode::QUSTParseAliases) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected ALID."); + } + + this->questAliases.value.back()->ALID.Read(buffer, subSize, CompressedOnDisk); + break; + } + + case REV32(ALFI): { + if (mode != QUSTParseMode::QUSTParseAliases) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected ALFI."); + } + + this->questAliases.value.back()->ALFI.Read(buffer, subSize); + break; + } + + case REV32(ALCO): { + if (mode != QUSTParseMode::QUSTParseAliases) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected ALCO."); + } + + this->questAliases.value.back()->aliasType = new ALCOAliasFillType(); + buffer += subSize; // Not implemented, skip sub record + break; + } + + case REV32(ALEQ): { + if (mode != QUSTParseMode::QUSTParseAliases) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected ALEQ."); + } + + this->questAliases.value.back()->aliasType = new ALEQAliasFillType(); + buffer += subSize; // Not implemented, skip sub record + break; + } + + case REV32(ALFA): { + if (mode != QUSTParseMode::QUSTParseAliases) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected ALFA."); + } + + if (this->questAliases.value.back()->isLocation == true) { + this->questAliases.value.back()->aliasType = new LocALFAAliasFillType(); + } + else { + this->questAliases.value.back()->aliasType = new RefALFAAliasFillType(); + } + + buffer += subSize; // Not implemented, skip sub record + break; + } + + case REV32(ALFE): { + if (mode != QUSTParseMode::QUSTParseAliases) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected ALFE."); + } + + this->questAliases.value.back()->aliasType = new ALFEAliasFillType(); + buffer += subSize; // Not implemented, skip sub record + break; + } + + case REV32(ALFL): { + if (mode != QUSTParseMode::QUSTParseAliases) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected ALFL."); + } + + this->questAliases.value.back()->aliasType = new ALFLAliasFillType(); + buffer += subSize; // Not implemented, skip sub record + break; + } + + case REV32(ALFR): { + if (mode != QUSTParseMode::QUSTParseAliases) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected ALFR."); + } + + this->questAliases.value.back()->aliasType = new ALFRAliasFillType(); + buffer += subSize; // Not implemented, skip sub record + break; + } + + case REV32(ALNA): { + if (mode != QUSTParseMode::QUSTParseAliases) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected ALNA."); + } + + this->questAliases.value.back()->aliasType = new ALNAAliasFillType(); + buffer += subSize; // Not implemented, skip sub record + break; + + } + + case REV32(ALUA): { + if (mode != QUSTParseMode::QUSTParseAliases) { + throw std::runtime_error("QUSTRecord::ParseRecords() - Unexpected ALFL."); + } + + this->questAliases.value.back()->aliasType = new ALUAAliasFillType(); + buffer += subSize; // Not implemented, skip sub record + break; + } + + case REV32(KWDA): { + this->questAliases.value.back()->KWDA.Read(buffer, subSize); + break; + } + + case REV32(CNTO): { + this->questAliases.value.back()->CNTO.Read(buffer, subSize); + break; + } + case REV32(SPOR): { + this->questAliases.value.back()->SPOR.Read(buffer, subSize); + break; + } + + case REV32(OCOR): { + this->questAliases.value.back()->OCOR.Read(buffer, subSize); + break; + } + + case REV32(GWOR): { + this->questAliases.value.back()->GWOR.Read(buffer, subSize); + break; + } + + case REV32(ECOR): { + this->questAliases.value.back()->ECOR.Read(buffer, subSize); + break; + } + + case REV32(ALDN): { + this->questAliases.value.back()->ALDN.Read(buffer, subSize); + break; + } + + case REV32(ALSP): { + this->questAliases.value.back()->ALSP.Read(buffer, subSize); + break; + } + + case REV32(ALFC): { + this->questAliases.value.back()->ALFC.Read(buffer, subSize); + break; + } + + case REV32(ALPC): { + this->questAliases.value.back()->ALPC.Read(buffer, subSize); + break; + } + + case REV32(VTCK): { + this->questAliases.value.back()->VTCK.Read(buffer, subSize); + break; + } + + case REV32(ALED): + case REV32(COCT): + case REV32(KSIZ): { + buffer += subSize; + break; //This is not maintained in memory, just written based on KWDA/CNTO. ALED is just a EOF. + } + + case REV32(SCHR): + case REV32(SCTX): + case REV32(QNAM): { + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + } + + default: + + if (mode == QUSTParseMode::QUSTParseAliases) { + //Try to proxy the reading to the quest alias type implementation. + bool result = this->questAliases.value.back()->aliasType->ParseRecord(buffer, subType, subSize, CompressedOnDisk); + + if (result == true) { + buffer += subSize; // Not implemented, skip sub record + break; + } + } + + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t QUSTRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + + + return 1; + } + + int32_t QUSTRecord::WriteRecord(FileWriter &writer) + { + + + WRITE(EDID); //Editor ID + VMAD.value->Write(REV32(VMAD), writer); //A bit hacky way to do it. + WRITE(FULL); + WRITE(DNAM); + WRITE(ENAM); + WRITE(QTGL); + WRITE(FLTR); + QDCTDA.Write(writer); + WRITEEMPTY(NEXT); + QECTDA.Write(writer); + questStages.Write(writer); + questObjectives.Write(writer); + WRITE(ANAM); + questAliases.Write(writer); + return -1; + } + + bool QUSTRecord::operator ==(const QUSTRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + FULL.equalsi(other.FULL) && + DNAM == other.DNAM && + ENAM == other.ENAM && + QTGL == other.QTGL && + FLTR.equalsi(other.FLTR) && + QDCTDA == other.QDCTDA && + QECTDA == other.QECTDA && + ANAM == other.ANAM /* && + TODO, no time for implementing this.. + questStages == other.questStages && + questObjectives == other.questObjectives && + questAliases == other.questAliases + */ + ); + } + + bool QUSTRecord::operator !=(const QUSTRecord &other) const + { + return !(*this == other); + } + + bool QUSTRecord::equals(Record *other) + { + return *this == *(QUSTRecord *)other; + } + + int32_t QUSTSTAGE::Write(FileWriter &writer) { + WRITE(INDX); + LOGS.Write(writer); + return -1; + } + + int32_t QUSTLOGENTRY::Write(FileWriter &writer) { + WRITE(QSDT); + CTDA.Write(writer); + WRITE(CNAM); + WRITE(NAM0); + return -1; + } + + int32_t QUSTOBJECTIVE::Write(FileWriter &writer) { + WRITE(QOBJ); + WRITE(FNAM); + WRITE(NNAM); + TGTS.Write(writer); + return -1; + } + + int32_t QUSTCONDITIONALTARGET::Write(FileWriter &writer) { + WRITE(QSTA); + CTDA.Write(writer); + return -1; + } + + int32_t QUSTALIAS::Write(FileWriter &writer) { + + if (isLocation == true) { + writer.record_write_subheader(REV32(ALLS), 4); + } + else { + writer.record_write_subheader(REV32(ALST), 4); + } + + writer.record_write(&aliasID, 4); + + WRITE(ALID); + WRITE(FNAM); + WRITE(ALFI); + aliasType->WriteRecord(writer); + CTDA.Write(writer); + WRITE(KWDA); + WRITE(CNTO); + WRITE(SPOR); + WRITE(OCOR); + WRITE(GWOR); + WRITE(ECOR); + WRITE(ALDN); + WRITE(ALSP); + WRITE(ALFC); + WRITE(ALPC); + WRITE(VTCK); + writer.record_write_subheader(REV32(ALED), 0); // alias end + + return -1; + } + +} \ No newline at end of file diff --git a/src/Skyrim/Records/QUSTRecord.h b/src/Skyrim/Records/QUSTRecord.h new file mode 100644 index 0000000..98e5625 --- /dev/null +++ b/src/Skyrim/Records/QUSTRecord.h @@ -0,0 +1,495 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +// BaseRecord.h +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" +#include "../VMAD/VMAD.h" +#include + +namespace Sk { + + enum QUSTParseMode { + QUSTParseNormal = 0, + QUSTParseStages = 1, + QUSTParseObjectives = 2, + QUSTParseAliases = 3 + }; + + class IAliasFillType { + + public: + virtual void ParseHead(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) = 0; + virtual bool ParseRecord(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) = 0; + virtual void VisitFormIDs(FormIDOp& op) = 0; + virtual void WriteRecord(FileWriter &writer) = 0; + }; + + class ALCOAliasFillType : public IAliasFillType { + + ReqSimpleSubRecord ALCO; + OptSimpleSubRecord ALCA; + OptSimpleSubRecord ALCL; + + void ParseHead(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + this->ALCO.Read(buffer, subSize); + + } + + bool ParseRecord(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + switch (subType) { + + case REV32(ALCA): + this->ALCA.Read(buffer, subSize); + break; + + case REV32(ALCL): + this->ALCL.Read(buffer, subSize); + break; + + default: + return false; + + } + + return true; + + } + void VisitFormIDs(FormIDOp& op) { + op.Accept(this->ALCO.value); + + } + void WriteRecord(FileWriter &writer) { + WRITE(ALCO); + WRITE(ALCA); + WRITE(ALCL); + } + }; + + class ALEQAliasFillType : public IAliasFillType { + + ReqSimpleSubRecord ALEQ; + OptSimpleSubRecord ALEA; + void ParseHead(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + this->ALEQ.Read(buffer, subSize); + + } + + bool ParseRecord(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + switch (subType) { + + case REV32(ALEA): + this->ALEA.Read(buffer, subSize); + break; + + default: + return false; + + } + + return true; + + } + void VisitFormIDs(FormIDOp& op) { + op.Accept(this->ALEQ.value); + + } + void WriteRecord(FileWriter &writer) { + WRITE(ALEQ); + WRITE(ALEA); + } + }; + class LocALFAAliasFillType : public IAliasFillType { + + ReqSimpleSubRecord ALFA; + OptSimpleSubRecord KNAM; + void ParseHead(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + this->ALFA.Read(buffer, subSize); + + } + + bool ParseRecord(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + switch (subType) { + + case REV32(KNAM): + this->KNAM.Read(buffer, subSize); + break; + + default: + return false; + + } + + return true; + + } + void VisitFormIDs(FormIDOp& op) { + op.Accept(this->KNAM.value); + + } + void WriteRecord(FileWriter &writer) { + WRITE(ALFA); + WRITE(KNAM); + } + }; + class RefALFAAliasFillType : public IAliasFillType { + + ReqSimpleSubRecord ALFA; + OptSimpleSubRecord ALRT; + void ParseHead(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + this->ALFA.Read(buffer, subSize); + + } + + bool ParseRecord(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + switch (subType) { + + case REV32(ALRT): + this->ALRT.Read(buffer, subSize); + break; + + default: + return false; + + } + + return true; + + } + void VisitFormIDs(FormIDOp& op) { + op.Accept(this->ALRT.value); + + } + void WriteRecord(FileWriter &writer) { + WRITE(ALFA); + WRITE(ALRT); + } + }; + class ALFEAliasFillType : public IAliasFillType { + + ReqSimpleSubRecord ALFE; + OptSimpleSubRecord ALFD; + void ParseHead(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + this->ALFE.Read(buffer, subSize); + + } + + bool ParseRecord(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + switch (subType) { + + case REV32(ALFD): + this->ALFD.Read(buffer, subSize); + break; + + default: + return false; + + } + + return true; + + } + void VisitFormIDs(FormIDOp& op) { + //Empty. + } + void WriteRecord(FileWriter &writer) { + WRITE(ALFE); + WRITE(ALFD); + } + }; + class ALFLAliasFillType : public IAliasFillType { + + ReqSimpleSubRecord ALFL; + void ParseHead(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + this->ALFL.Read(buffer, subSize); + + } + + bool ParseRecord(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + return false; + + } + void VisitFormIDs(FormIDOp& op) { + op.Accept(this->ALFL.value); + //Empty. + } + void WriteRecord(FileWriter &writer) { + WRITE(ALFL); + } + }; + class ALFRAliasFillType : public IAliasFillType { + public: + ReqSimpleSubRecord ALFR; + void ParseHead(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + this->ALFR.Read(buffer, subSize); + + } + + bool ParseRecord(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + return false; + + } + void VisitFormIDs(FormIDOp& op) { + op.Accept(this->ALFR.value); + //Empty. + } + void WriteRecord(FileWriter &writer) { + WRITE(ALFR); + } + }; + class ALNAAliasFillType : public IAliasFillType { + + ReqSimpleSubRecord ALNA; + OptSimpleSubRecord ALNT; + void ParseHead(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + this->ALNA.Read(buffer, subSize); + + } + + bool ParseRecord(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + switch (subType) { + + case REV32(ALNT): + this->ALNT.Read(buffer, subSize); + break; + + default: + return false; + + } + + return true; + + } + void VisitFormIDs(FormIDOp& op) { + //Empty + } + void WriteRecord(FileWriter &writer) { + WRITE(ALNA); + WRITE(ALNT); + } + }; + class ALUAAliasFillType : public IAliasFillType { + + ReqSimpleSubRecord ALUA; + void ParseHead(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + this->ALUA.Read(buffer, subSize); + + } + + bool ParseRecord(unsigned char *buffer, uint32_t subType, uint32_t subSize, bool CompressedOnDisk = false) { + + return false; + + } + void VisitFormIDs(FormIDOp& op) { + op.Accept(this->ALUA.value); + //Empty. + } + void WriteRecord(FileWriter &writer) { + WRITE(ALUA); + } + }; + + struct QUSTDATA { + uint8_t encounterFlags; + uint8_t generalFlags; + uint8_t priority; + uint8_t unknownUsuallyZero; + int32_t unknownAlwaysZero; + uint32_t questType; + + bool operator ==(const QUSTDATA &other) const { + + return (this->encounterFlags == other.encounterFlags && + this->generalFlags == other.generalFlags && + this->priority == other.priority && + this->unknownAlwaysZero == other.unknownAlwaysZero && + this->unknownUsuallyZero == other.unknownUsuallyZero && + this->questType == other.questType + ); + + } + bool operator !=(const QUSTDATA &other) const { + return !(*this == other); + } + + }; + + struct QUSTTARGET { + int32_t targetAlias; + int32_t flags; + }; + + struct QUSTCONDITIONALTARGET { + + ReqSubRecord QSTA; + OrderedSparseArray CTDA; + + int32_t Write(FileWriter &writer); + }; + + struct QUSTOBJECTIVE { + ReqSimpleSubRecord QOBJ; + ReqSimpleSubRecord FNAM; + StringRecord NNAM; + UnorderedSparseArray TGTS; + + int32_t Write(FileWriter &writer); + }; + + struct QUSTINDEX { + + int16_t journalIndex; + int8_t flags; + int8_t unknown; + + }; + + struct QUSTLOGENTRY { + ReqSimpleSubRecord QSDT; + OrderedSparseArray CTDA; + StringRecord CNAM; + OptSimpleSubRecord NAM0; + int32_t Write(FileWriter &writer); + }; + + struct QUSTSTAGE { + + ReqSubRecord INDX; + UnorderedSparseArray LOGS; + int32_t Write(FileWriter &writer); + }; + + struct QUSTALIAS { + + ReqSimpleSubRecord aliasID; + + bool isLocation; + StringRecord ALID; + + ReqSimpleSubRecord FNAM; + OptSimpleSubRecord ALFI; + IAliasFillType* aliasType; + + UnorderedSparseArray CTDA; + + OptCounted, uint32_t, REV32(KSIZ)> KWDA; + + OptCounted, uint32_t, REV32(COCT)> CNTO; + + OptSimpleSubRecord SPOR; + OptSimpleSubRecord OCOR; + OptSimpleSubRecord GWOR; + OptSimpleSubRecord ECOR; + OptSimpleSubRecord ALDN; + + UnorderedSparseArray ALSP; + UnorderedSparseArray ALFC; + UnorderedSparseArray ALPC; + OptSimpleSubRecord VTCK; + RawRecord ALED; + + int32_t Write(FileWriter &writer); + + }; + + class QUSTRecord : public TES5Record { + + public: + StringRecord EDID; //Editor ID + //VMAD + OptSubRecord VMAD; + StringRecord FULL; + ReqSubRecord DNAM; + OptSubRecord ENAM; + UnorderedSparseArray QTGL; + UnorderedPackedStrings FLTR; + UnorderedSparseArray QDCTDA; + RawRecord NEXT; + UnorderedSparseArray QECTDA; + + UnorderedSparseArray questStages; + UnorderedSparseArray questObjectives; + + ReqSimpleSubRecord ANAM; + + UnorderedSparseArray questAliases; + + //SCHR + + QUSTRecord(unsigned char *_recData = NULL); + QUSTRecord(QUSTRecord *srcRecord); + ~QUSTRecord(); + + uint32_t GetType(); + char * GetStrType(); + + bool VisitFormIDs(FormIDOp &op); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + + bool operator ==(const QUSTRecord &other) const; + bool operator !=(const QUSTRecord &other) const; + bool equals(Record *other); + + }; + + +} \ No newline at end of file diff --git a/src/Skyrim/Records/REFRRecord.cpp b/src/Skyrim/Records/REFRRecord.cpp new file mode 100644 index 0000000..3d3bee3 --- /dev/null +++ b/src/Skyrim/Records/REFRRecord.cpp @@ -0,0 +1,667 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "REFRRecord.h" + +namespace Sk +{ + REFRRecord::REFRRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + REFRRecord::REFRRecord(REFRRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + EDID = srcRecord->EDID; //Editor ID + VMAD = srcRecord->VMAD; + NAME = srcRecord->NAME; + XMBO = srcRecord->XMBO; + XPRM = srcRecord->XPRM; //Primitive + XPOD = srcRecord->XPOD; //Portal Data + Room = srcRecord->Room; //Room Data + LNAM = srcRecord->LNAM; //Light Inherit Flags + INAM = srcRecord->INAM; //Light Inherit Flags + XRGD = srcRecord->XRGD; //Ragdoll Data + XRDS = srcRecord->XRDS; //Radius + XEMI = srcRecord->XEMI; + XLIG = srcRecord->XLIG; + XESP = srcRecord->XESP; + XALP = srcRecord->XALP; + XNDP = srcRecord->XNDP; + XTEL = srcRecord->XTEL; + XSCL = srcRecord->XSCL; + XAPD = srcRecord->XAPD; + XAPR = srcRecord->XAPR; + XLIB = srcRecord->XLIB; + XLKR = srcRecord->XLKR; + XLOC = srcRecord->XLOC; + XLRT = srcRecord->XLRT; + XOWN = srcRecord->XOWN; + XRNK = srcRecord->XRNK; + XCNT = srcRecord->XCNT; + XCVL = srcRecord->XCVL; + XCVR = srcRecord->XCVR; + XCZA = srcRecord->XCZA; + XCZC = srcRecord->XCZC; + XEZN = srcRecord->XEZN; + XFVC = srcRecord->XFVC; + FNAM = srcRecord->FNAM; + FULL = srcRecord->FULL; + TNAM = srcRecord->TNAM; + XHTW = srcRecord->XHTW; + //XIS2 + XLCM = srcRecord->XLCM; + XMBR = srcRecord->XMBR; + XMRK = srcRecord->XMRK; + //XOCP + XPWR = srcRecord->XPWR; + XTRI = srcRecord->XTRI; + openByDefault = srcRecord->openByDefault; + XACT = srcRecord->XACT; + XATR = srcRecord->XATR; + XWCU = srcRecord->XWCU; + DATA = srcRecord->DATA; //Position/Rotation + XTNM = srcRecord->XTNM; + XIS2 = srcRecord->XIS2; + XWCN = srcRecord->XWCN; + + XPRD = srcRecord->XPRD; + + if (!srcRecord->IsChanged()) + return; + + return; + } + + REFRRecord::~REFRRecord() + { + // + } + + uint32_t REFRRecord::GetType() + { + return REV32(REFR); + } + + char * REFRRecord::GetStrType() + { + return "REFR"; + } + + + bool REFRRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //REVERT ASAP + op.Accept(NAME.value); + if (XPOD.IsLoaded()) { + op.Accept(XPOD.value->room1); + op.Accept(XPOD.value->room2); + } + + if (LNAM.IsLoaded()) { + op.Accept(LNAM.value); + } + + if (INAM.IsLoaded()) { + op.Accept(INAM.value); + } + + if (Room.IsLoaded()) { + for (uint32_t i = 0; i < Room.value->XLRM.value.size(); ++i) { + op.Accept(Room.value->XLRM.value[i]); + } + } + + if (XEMI.IsLoaded()) { + op.Accept(XEMI.value); + } + + if (XESP.IsLoaded()) { + op.Accept(XESP.value->parent); + } + + if (XNDP.IsLoaded()) { + op.Accept(XNDP.value->navMesh); + } + + if (XTEL.IsLoaded()) { + op.Accept(XTEL.value->destinationFid); + } + + if (XAPR.IsLoaded()) { + op.Accept(XAPR.value->reference); + } + + if (XLIB.IsLoaded()) { + op.Accept(XLIB.value); + } + + if (XLKR.IsLoaded()) { + op.Accept(XLKR.value->kywd); + op.Accept(XLKR.value->formid); + } + + if (XLOC.IsLoaded()) { + op.Accept(XLOC.value->key); + } + + if (XLRT.IsLoaded()) { + for (uint32_t i = 0; i < XLRT.value.size(); ++i) { + op.Accept(XLRT.value[i]); + } + } + + if (XOWN.IsLoaded()) { + op.Accept(XOWN.value); + } + + if (XEZN.IsLoaded()) { + op.Accept(XEZN.value); + } + + if (XMBR.IsLoaded()) { + op.Accept(XMBR.value); + } + + if (XPWR.IsLoaded()) { + for (uint32_t i = 0; i < XPWR.value.size(); ++i) { + op.Accept(XPWR.value[i]); + } + } + + if (XATR.IsLoaded()) { + op.Accept(XATR.value); + } + + return op.Stop(); + } + + + int32_t REFRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + while (buffer < end_buffer){ + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(VMAD): + VMAD.Load(); + VMAD.value->Read(buffer, subSize, REV32(REFR), CompressedOnDisk); + break; + + case REV32(NAME): + NAME.Read(buffer, subSize); + break; + + case REV32(XMBO): + XMBO.Read(buffer, subSize); + break; + + case REV32(XPRM): + XPRM.Read(buffer, subSize); + break; + + case REV32(XPOD): + XPOD.Read(buffer, subSize); + break; + + case REV32(XLRM): + Room.Load(); + Room.value->XLRM.Read(buffer, subSize); + break; + + case REV32(XRMR): + Room.Load(); + Room.value->XRMR.Read(buffer, subSize); + break; + + case REV32(LNAM): + LNAM.Read(buffer, subSize); + break; + + case REV32(INAM): + INAM.Read(buffer, subSize); + break; + + case REV32(XRGD): + XRGD.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(XRDS): + XRDS.Read(buffer, subSize); + break; + + case REV32(XEMI): + XEMI.Read(buffer, subSize); + break; + + case REV32(XLIG): + XLIG.Read(buffer, subSize); + break; + + case REV32(XESP): + XESP.Read(buffer, subSize); + break; + + case REV32(XALP): + XALP.Read(buffer, subSize); + break; + + case REV32(XNDP): + XNDP.Read(buffer, subSize); + break; + + case REV32(XTEL): + XTEL.Read(buffer, subSize); + break; + + case REV32(XSCL): + XSCL.Read(buffer, subSize); + break; + + case REV32(XAPD): + XAPD.Read(buffer, subSize); + break; + + case REV32(XAPR): + XAPR.Read(buffer, subSize); + break; + + case REV32(XLIB): + XLIB.Read(buffer, subSize); + break; + + case REV32(XLKR): + XLKR.Read(buffer, subSize); + break; + + case REV32(XLOC): + XLOC.Read(buffer, subSize); + break; + + case REV32(XLRT): + XLRT.Read(buffer, subSize); + break; + + case REV32(XOWN): + XOWN.Read(buffer, subSize); + break; + + case REV32(XRNK): + XRNK.Read(buffer, subSize); + break; + + case REV32(XCNT): + XCNT.Read(buffer, subSize); + break; + + case REV32(XCVL): + XCVL.Read(buffer, subSize); + break; + + case REV32(XCVR): + XCVR.Read(buffer, subSize); + break; + + case REV32(XCZA): + XCZA.Read(buffer, subSize); + break; + + case REV32(XCZC): + XCZC.Read(buffer, subSize); + break; + + case REV32(XEZN): + XEZN.Read(buffer, subSize); + break; + + case REV32(XFVC): + XFVC.Read(buffer, subSize); + break; + + case REV32(FNAM): + FNAM.Read(buffer, subSize); + break; + + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(TNAM): + TNAM.Read(buffer, subSize); + break; + + case REV32(XHTW): + XHTW.Read(buffer, subSize); + break; + + case REV32(ONAM): + openByDefault = true; + break; + + + case REV32(XLCM): + XLCM.Read(buffer, subSize); + break; + + case REV32(XMBR): + XMBR.Read(buffer, subSize); + break; + + + case REV32(XPWR): + XPWR.Read(buffer, subSize); + break; + + case REV32(XTRI): + XTRI.Read(buffer, subSize); + break; + + + case REV32(XACT): + XACT.Read(buffer, subSize); + break; + + case REV32(XATR): + XATR.Read(buffer, subSize); + break; + + case REV32(XWCU): + XWCU.Read(buffer, subSize); + break; + + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + + case REV32(XMRK): + XMRK.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(XTNM): + XTNM.Read(buffer, subSize); + break; + + case REV32(XIS2): + XIS2.Read(buffer, subSize, CompressedOnDisk); + break; + + case REV32(XWCN): + XWCN.Read(buffer, subSize); + break; + + case REV32(XPRD): + XPRD.Read(buffer, subSize); + break; + + case REV32(XPPA): + //Marker + buffer += subSize; + break; + + case REV32(PDTO): + //Not reversed, @TODO add to the code + buffer += subSize; + break; + + case REV32(XSPC): + case REV32(XMBP): + case REV32(XOCP): + case REV32(XRGB): + case REV32(SCHR): + case REV32(XLCN): + case REV32(XLTW): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t REFRRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + NAME.Unload(); + XMBO.Unload(); + XPRM.Unload(); + XPOD.Unload(); + Room.Unload(); + LNAM.Unload(); + INAM.Unload(); + XRGD.Unload(); + XRDS.Unload(); + XEMI.Unload(); + XLIG.Unload(); + XESP.Unload(); + XALP.Unload(); + XNDP.Unload(); + XTEL.Unload(); + XSCL.Unload(); + XAPD.Unload(); + XAPR.Unload(); + XLIB.Unload(); + XLKR.Unload(); + XLOC.Unload(); + XLRT.Unload(); + XOWN.Unload(); + XRNK.Unload(); + XCNT.Unload(); + XCVL.Unload(); + XCVR.Unload(); + XCZA.Unload(); + XCZC.Unload(); + XEZN.Unload(); + XFVC.Unload(); + FNAM.Unload(); + FULL.Unload(); + TNAM.Unload(); + XHTW.Unload(); + XLCM.Unload(); + XMBR.Unload(); + XMRK.Unload(); + XPWR.Unload(); + XTRI.Unload(); + XACT.Unload(); + XATR.Unload(); + XWCU.Unload(); + DATA.Unload(); + XTNM.Unload(); + XIS2.Unload(); + XWCN.Unload(); + XPRD.Unload(); + return 1; + } + + int32_t REFRRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(NAME); + WRITE(XMRK); + WRITE(XMBO); + WRITE(XPRM); + WRITE(XPOD); + Room.Write(writer); + WRITE(LNAM); + WRITE(INAM); + WRITE(XRGD); + WRITE(XRDS); + WRITE(XEMI); + WRITE(XLIG); + WRITE(XESP); + WRITE(XALP); + WRITE(XNDP); + WRITE(XTEL); + WRITE(XSCL); + WRITE(XAPD); + WRITE(XAPR); + WRITE(XLIB); + WRITE(XLKR); + WRITE(XLOC); + WRITE(XLRT); + WRITE(XOWN); + WRITE(XRNK); + WRITE(XCNT); + WRITE(XCVL); + WRITE(XCVR); + WRITE(XCZA); + WRITE(XCZC); + WRITE(XEZN); + WRITE(XFVC); + WRITE(FNAM); + WRITE(FULL); + WRITE(TNAM); + WRITE(XHTW); + WRITE(XIS2); + WRITE(XLCM); + WRITE(XMBR); + WRITE(XPWR); + WRITE(XTRI); + WRITE(XACT); + + if (openByDefault) { + writer.record_write_subrecord(REV32(ONAM), NULL, 0); + } + + WRITE(XATR); + //Todo convert to OptCounted .. + WRITE(XWCN); + WRITE(XWCU); + //Todo patrol data + WRITE(XPRD); + WRITE(DATA); + return -1; + } + + bool REFRRecord::operator ==(const REFRRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + NAME == other.NAME && + XMBO == other.XMBO && + XPRM == other.XPRM && + XPOD == other.XPOD && + Room == other.Room && + LNAM == other.LNAM && + INAM == other.INAM && + XRGD == other.XRGD && + XRDS == other.XRDS && + XEMI == other.XEMI && + XLIG == other.XLIG && + XESP == other.XESP && + XALP == other.XALP && + XNDP == other.XNDP && + XTEL == other.XTEL && + XSCL == other.XSCL && + XAPD == other.XAPD && + XAPR == other.XAPR && + XLIB == other.XLIB && + XLKR == other.XLKR && + XLOC == other.XLOC && + XLRT == other.XLRT && + XOWN == other.XOWN && + XRNK == other.XRNK && + XCNT == other.XCNT && + XCVL == other.XCVL && + XCVR == other.XCVR && + XCZA == other.XCZA && + XCZC == other.XCZC && + XEZN == other.XEZN && + XFVC == other.XFVC && + FNAM == other.FNAM && + FULL.equalsi(other.FULL) && + TNAM == other.TNAM && + XHTW == other.XHTW && + XLCM == other.XLCM && + XMBR == other.XMBR && + XMRK == other.XMRK && + XPWR == other.XPWR && + XTRI == other.XTRI && + XACT == other.XACT && + openByDefault == other.openByDefault && + XATR == other.XATR && + XWCU == other.XWCU && + DATA == other.DATA + ); + } + + bool REFRRecord::operator !=(const REFRRecord &other) const + { + return !(*this == other); + } + + bool REFRRecord::equals(Record *other) + { + return *this == *(REFRRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/REFRRecord.h b/src/Skyrim/Records/REFRRecord.h new file mode 100644 index 0000000..fa1710a --- /dev/null +++ b/src/Skyrim/Records/REFRRecord.h @@ -0,0 +1,159 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is CBash code. + * + * The Initial Developer of the Original Code is + * Waruddar. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../VMAD/VMAD.h" +#include "../SkyrimChunks.h" + +namespace Sk +{ + +struct GenXLIG { + float fov; + float fade; + float endDistance; + float shadowDepth; + uint32_t unk; + bool operator ==(const GenXLIG &other) const { + return (this->fov == other.fov && + this->fade == other.fade && + this->endDistance == other.endDistance && + this->shadowDepth == other.shadowDepth + ); + } + bool operator !=(const GenXLIG &other) const { + return !(*this == other); + } +}; + +struct GenXALP { + uint8_t alphaCutoff; + uint8_t defaultAlphaCutoff; + bool operator ==(const GenXALP &other) const { + return (this->alphaCutoff == other.alphaCutoff && + this->defaultAlphaCutoff == other.defaultAlphaCutoff); + } + bool operator !=(const GenXALP &other) const { + return !(*this == other); + } +}; + + +class REFRRecord : public TES5Record //Texture Set + { + + public: + StringRecord EDID; //Editor ID + OptSubRecord VMAD; + ReqSimpleSubRecord NAME; + OptSubRecord XMBO; + OptSubRecord XPRM; //Primitive + OptSubRecord XPOD; //Portal Data + OptSubRecord Room; //Room Data + OptSimpleSubRecord LNAM; //Light Inherit Flags + OptSimpleSubRecord INAM; //Light Inherit Flags + RawRecord XRGD; //Ragdoll Data + OptSimpleFloatSubRecord XRDS; //Radius + OptSimpleSubRecord XEMI; + OptSubRecord XLIG; + OptSubRecord XESP; + OptSubRecord XALP; + OptSubRecord XNDP; + OptSubRecord XTEL; + OptSimpleFloatSubRecord XSCL; + SemiOptSimpleSubRecord XAPD; + OptSubRecord XAPR; + OptSimpleSubRecord XLIB; + OptSubRecord XLKR; + OptSubRecord XLOC; + UnorderedSparseArray XLRT; + OptSimpleSubRecord XOWN; + OptSimpleSubRecord XRNK; + OptSimpleSubRecord XCNT; + OptSubRecord XCVL; + OptSubRecord XCVR; + OptSimpleSubRecord XCZA; + OptSimpleSubRecord XCZC; + OptSimpleSubRecord XEZN; + OptSimpleFloatSubRecord XFVC; + SemiOptSimpleSubRecord FNAM; + NonNullStringRecord FULL; + OptSimpleSubRecord TNAM; + OptSimpleFloatSubRecord XHTW; + //XIS2 + SemiOptSimpleSubRecord XLCM; + OptSimpleSubRecord XMBR; + RawRecord XMRK; + //XOCP + UnorderedSparseArray XPWR; + SemiOptSimpleSubRecord XTRI; + //ONAM + OptSimpleSubRecord XACT; + OptSimpleSubRecord XTNM; + RawRecord XIS2; + SemiOptSimpleSubRecord XWCN; + + OptSimpleFloatSubRecord XPRD; + + bool openByDefault = false; //ONAM set + + OptSimpleSubRecord XATR; + + OptCounted, uint32_t, REV32(XWCN)> XWCU; // Keywords + + OptSubRecord DATA; //Position/Rotation + + REFRRecord(unsigned char *_recData = NULL); + REFRRecord(REFRRecord *srcRecord); + ~REFRRecord(); + + uint32_t GetType(); + char * GetStrType(); + + bool VisitFormIDs(FormIDOp &op); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + + bool operator ==(const REFRRecord &other) const; + bool operator !=(const REFRRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/SCENRecord.cpp b/src/Skyrim/Records/SCENRecord.cpp new file mode 100644 index 0000000..fb2fc8c --- /dev/null +++ b/src/Skyrim/Records/SCENRecord.cpp @@ -0,0 +1,392 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "SCENRecord.h" + +namespace Sk +{ + SCENRecord::SCENRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + SCENRecord::SCENRecord(SCENRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + FNAM = srcRecord->FNAM; + PNAM = srcRecord->PNAM; + INAM = srcRecord->INAM; + VNAM = srcRecord->VNAM; + CTDA = srcRecord->CTDA; + + + return; + } + + SCENRecord::~SCENRecord() + { + // + } + + uint32_t SCENRecord::GetType() + { + return REV32(SCEN); + } + + char * SCENRecord::GetStrType() + { + return "SCEN"; + } + + + bool SCENRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + if (VMAD.IsLoaded()) { + //TODO - implement VisitFormIDs for struct VMADRecord + } + op.Accept(PNAM.value); + //TODO - implement VisitFormIDs for struct struct SCENBehaviorSettings + + if (CTDA.IsLoaded()) { + //TODO - implement VisitFormIDs for struct SKCondition* + } + + return op.Stop(); + } + + + int32_t SCENRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + + struct SCENPhase *current_phase = NULL; + struct SCENActor *current_actor = NULL; + struct SCENAction *current_action = NULL; + + bool hasReadStartPhase = false; + + uint32_t parsingPhase = 0; //0 = before phases, 1 = phases, 2 = actors, 3 = actions, 4 = after actions + uint32_t phasePhase = 0; //0 = phase start, 1 = first NEXT, 2 = second next + + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Load(); + VMAD.value->Read(buffer, subSize, REV32(SCEN), CompressedOnDisk); + break; + case REV32(FNAM): + if (parsingPhase == 0) { + FNAM.Read(buffer, subSize); + } + else if (parsingPhase == 3) { + current_action->FNAM.Read(buffer, subSize); + } + else { + printer("SCEN: %08X - Unknown parsing_phase for subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + break; + case REV32(PNAM): + if (parsingPhase == 0) { + PNAM.Read(buffer, subSize); + } + else if (parsingPhase == 3) { + //PNAM for the action data + current_action->actionData->Read(REV32(PNAM), buffer, subSize); + } + else { + printer("SCEN: %08X - Unknown parsing_phase for subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + break; + case REV32(INAM): + if (parsingPhase == 3) { + current_action->INAM.Read(buffer, subSize); + } + else if (parsingPhase == 4) { + INAM.Read(buffer, subSize); + } + else { + printer("SCEN: %08X - Unknown parsing_phase for subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + break; + case REV32(HNAM): + { + if (parsingPhase < 1) { + parsingPhase = 1; + } + + current_phase = new SCENPhase(); + phasePhase = 0; + phases.push_back(current_phase); + + } + case REV32(NAM0): { + + if (parsingPhase == 1) { + current_phase->NAM0.Read(buffer, subSize, CompressedOnDisk); + } + else if(parsingPhase == 3) { + current_action->NAM0.Read(buffer, subSize, CompressedOnDisk); + } + else { + printer("SCEN: %08X - Unknown parsing_phase for subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + + break; + } + case REV32(CTDA): { + if (parsingPhase == 0) { + CTDA.Read(buffer, subSize); + } + else if (parsingPhase == 1) { + if (phasePhase == 0) { + current_phase->SCTDA.Read(buffer, subSize); + } + else if (phasePhase == 1) { + current_phase->CCTDA.Read(buffer, subSize); + } + else { + printer("SCEN: %08X - Unknown phasePhase for subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + + } + else { + printer("SCEN: %08X - Unknown parsing_phase for subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + break; + } + case REV32(WNAM): { + current_phase->WNAM.Read(buffer, subSize); + break; + } + case REV32(ALID): { + if (parsingPhase < 2) { + parsingPhase = 2; + } + + if (parsingPhase == 2) { + current_actor = new SCENActor(); + actors.push_back(current_actor); + } + else if (parsingPhase == 3) { + current_action->ALID.Read(buffer, subSize); + } + else { + printer("SCEN: %08X - Unknown parsing_phase for subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + printer(" Size = %i\n", subSize); + printer(" CurPos = %08x\n\n", buffer - 6); + buffer = end_buffer; + } + break; + } + case REV32(LNAM): { + current_actor->LNAM.Read(buffer, subSize); + break; + } + case REV32(DNAM): { + current_actor->DNAM.Read(buffer, subSize); + break; + } + case REV32(ANAM): { + if (parsingPhase < 3) { + parsingPhase = 3; + } + + hasReadStartPhase = false; + current_action = new SCENAction(); + current_action->ANAM.Read(buffer, subSize); + + switch (current_action->ANAM.value) { + case 0: { + current_action->actionData = new DialogueSCENActionData(); + break; + } + case 1: { + current_action->actionData = new PackageSCENActionData(); + break; + } + case 2: { + current_action->actionData = new TimerSCENActionData(); + break; + } + } + + break; + } + case REV32(NEXT): { + phasePhase++; + break; + } + case REV32(SNAM): + if (!hasReadStartPhase) { + current_action->SNAM.Read(buffer, subSize); + hasReadStartPhase = true; + } + else { + current_action->actionData->Read(REV32(SNAM), buffer, subSize); + } + break; + case REV32(ENAM): + current_action->ENAM.Read(buffer, subSize); + break; + case REV32(VNAM): + VNAM.Read(buffer, subSize); + break; + case REV32(DATA): + case REV32(HTID): + case REV32(DMAX): + case REV32(DMIN): + case REV32(DEMO): + case REV32(DEVA): { + current_action->actionData->Read(subType, buffer, subSize); + } + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t SCENRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + FNAM.Unload(); + PNAM.Unload(); + INAM.Unload(); + VNAM.Unload(); + CTDA.Unload(); + + return 1; + } + + int32_t SCENRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(FNAM); + WRITE(PNAM); + WRITE(INAM); + WRITE(VNAM); + WRITE(CTDA); + return -1; + } + + bool SCENRecord::operator ==(const SCENRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + FNAM == other.FNAM && + PNAM == other.PNAM && + INAM == other.INAM && + VNAM == other.VNAM && + CTDA == other.CTDA); + } + + bool SCENRecord::operator !=(const SCENRecord &other) const + { + return !(*this == other); + } + + bool SCENRecord::equals(Record *other) + { + return *this == *(SCENRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/SCENRecord.h b/src/Skyrim/Records/SCENRecord.h new file mode 100644 index 0000000..f79470a --- /dev/null +++ b/src/Skyrim/Records/SCENRecord.h @@ -0,0 +1,200 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + class SCENRecord : public TES5Record // Acoustic Space Record + { + public: + + struct SCENPhase { + RawRecord SHNAM; + StringRecord NAM0; + OrderedSparseArray SCTDA; + OrderedSparseArray CCTDA; + ReqSimpleSubRecord WNAM; + RawRecord EHNAM; + //Conditions + }; + + struct SCENActor { + ReqSimpleSubRecord ALID; + OptSimpleSubRecord LNAM; + OptSimpleSubRecord DNAM; + + }; + + struct SCENActionData { + virtual bool Read(uint32_t type, unsigned char *&buffer, const uint32_t &subSize) = 0; + }; + + struct DialogueSCENActionData : SCENActionData { + ReqSimpleSubRecord DATA; + OptSimpleSubRecord HTID; + OptSimpleFloatSubRecord DMAX; + OptSimpleFloatSubRecord DMIN; + OptSimpleSubRecord DEMO; + OptSimpleSubRecord DEVA; + + bool Read(uint32_t type, unsigned char *&buffer, const uint32_t &subSize) { + switch (type) + { + case REV32(DATA): { + DATA.Read(buffer, subSize); + break; + } + case REV32(HTID): { + HTID.Read(buffer, subSize); + break; + } + case REV32(DMAX): { + DMAX.Read(buffer, subSize); + break; + } + case REV32(DMIN): { + DMIN.Read(buffer, subSize); + break; + } + case REV32(DEMO): { + DEMO.Read(buffer, subSize); + break; + } + case REV32(DEVA): { + DEVA.Read(buffer, subSize); + break; + } + } + + return true; + } + }; + + struct PackageSCENActionData : SCENActionData { + UnorderedSparseArray PNAM; //Might be packed + bool Read(uint32_t type, unsigned char *&buffer, const uint32_t &subSize) { + switch (type) { + case REV32(PNAM): { + PNAM.Read(buffer, subSize); + break; + } + } + return true; + + } + }; + + struct TimerSCENActionData : SCENActionData { + + ReqSimpleFloatSubRecord SNAM; + bool Read(uint32_t type, unsigned char *&buffer, const uint32_t &subSize) { + switch (type) { + case REV32(SNAM): { + SNAM.Read(buffer, subSize); + break; + } + } + + return true; + + } + }; + + struct SCENAction { + ReqSimpleSubRecord ANAM; + StringRecord NAM0; + ReqSimpleSubRecord ALID; + ReqSimpleSubRecord INAM; + OptSimpleSubRecord FNAM; + ReqSimpleSubRecord SNAM; + ReqSimpleSubRecord ENAM; + SCENActionData *actionData; + }; + + struct SCENBehaviorSettings { + uint32_t setAllNormal; + uint32_t setAllPause; + uint32_t setAllEnd; + uint32_t dontSetAll; + + bool operator ==(const SCENBehaviorSettings &other) const + { + return (setAllNormal == other.setAllNormal && + setAllPause == other.setAllPause && + setAllEnd == other.setAllEnd && + dontSetAll == other.dontSetAll + ); + } + }; + + + StringRecord EDID; // Editor ID + OptSubRecord VMAD; + ReqSimpleSubRecord FNAM; + std::vector phases; + std::vector actors; + std::vector actions; + ReqSimpleSubRecord PNAM; //Parent quest + ReqSimpleSubRecord INAM; + ReqSubRecord VNAM; + OrderedSparseArray CTDA; //Conditions + + + ReqSimpleFloatSubRecord FLTV; + + SCENRecord(unsigned char *_recData = NULL); + SCENRecord(SCENRecord *srcRecord); + ~SCENRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const SCENRecord &other) const; + bool operator !=(const SCENRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/SCRLRecord.cpp b/src/Skyrim/Records/SCRLRecord.cpp new file mode 100644 index 0000000..a2be059 --- /dev/null +++ b/src/Skyrim/Records/SCRLRecord.cpp @@ -0,0 +1,166 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "SCRLRecord.h" + +namespace Sk { + + SCRLRecord::SCRLRecord(unsigned char *_recData) + : TES5Record(_recData) + { + // + } + + SCRLRecord::SCRLRecord(SCRLRecord *srcRecord) + : TES5Record((TES5Record *)srcRecord) + { + if (srcRecord == NULL || !srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + } + + SCRLRecord::~SCRLRecord() + { + // + } + + uint32_t SCRLRecord::GetType() + { + return REV32(SCRL); + } + + char * SCRLRecord::GetStrType() + { + return "SCRL"; + } + + int32_t SCRLRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + while (buffer < end_buffer) + { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(OBND): + case REV32(FULL): + case REV32(MDOB): + case REV32(KSIZ): + case REV32(KWDA): + case REV32(DATA): + case REV32(ETYP): + case REV32(DESC): + case REV32(MODL): + case REV32(MODT): + case REV32(MODS): + case REV32(SPIT): + case REV32(EFID): + case REV32(EFIT): + buffer = end_buffer; + // Not needed atm + break; + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t SCRLRecord::Unload() + { + IsLoaded(false); + IsChanged(false); + EDID.Unload(); + return 1; + } + + int32_t SCRLRecord::WriteRecord(FileWriter &writer) + { + // Not fully implemented, must not ever be written + log_error << "SCRL Record is not fully implemented yet!\n"; + std::abort(); + WRITE(EDID); + return -1; + } + + bool SCRLRecord::operator ==(const SCRLRecord &other) const + { + return (EDID.equalsi(other.EDID) + ); + } + + bool SCRLRecord::operator !=(const SCRLRecord &other) const + { + return !(*this == other); + } + + bool SCRLRecord::equals(Record *other) + { + try + { + return *this == *dynamic_cast(other); + } + catch (...) + { + return false; + } + } + +} // namespace Sk diff --git a/src/Skyrim/Records/SCRLRecord.h b/src/Skyrim/Records/SCRLRecord.h new file mode 100644 index 0000000..3f98e0c --- /dev/null +++ b/src/Skyrim/Records/SCRLRecord.h @@ -0,0 +1,66 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" + +namespace Sk { + + class SCRLRecord : public TES5Record // Action record + { + public: + StringRecord EDID; // Editor ID + + SCRLRecord(unsigned char *_recData = NULL); + SCRLRecord(SCRLRecord *srcRecord); + ~SCRLRecord(); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const SCRLRecord &other) const; + bool operator !=(const SCRLRecord &other) const; + bool equals(Record *other); + }; + +} // namespace Sk diff --git a/src/Skyrim/Records/SHOURecord.cpp b/src/Skyrim/Records/SHOURecord.cpp index c869a0e..16c0d4f 100644 --- a/src/Skyrim/Records/SHOURecord.cpp +++ b/src/Skyrim/Records/SHOURecord.cpp @@ -35,7 +35,7 @@ * * ***** END LICENSE BLOCK ***** */ #include "SHOURecord.h" -#include "..\..\ModFile.h" +#include "../../ModFile.h" namespace Sk { @@ -153,12 +153,13 @@ int32_t SHOURecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer case REV32(SNAM): SNAM.Read(buffer, subSize); break; + case REV32(DESC): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; default: - //printer("Filename = %s\n", FileName); - printer(" AACT: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/SHOURecord.h b/src/Skyrim/Records/SHOURecord.h index 475fa92..cec6764 100644 --- a/src/Skyrim/Records/SHOURecord.h +++ b/src/Skyrim/Records/SHOURecord.h @@ -35,9 +35,9 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\GenericRecord.h" -#include "..\SkyrimCommon.h" -#include "..\SkyrimChunks.h" +#include "../../GenericRecord.h" +#include "../SkyrimCommon.h" +#include "../SkyrimChunks.h" namespace Sk { @@ -80,6 +80,7 @@ class SHOURecord : public TES5Record // Shout record int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const SHOURecord &other) const; bool operator !=(const SHOURecord &other) const; diff --git a/src/Skyrim/Records/SLGMRecord.cpp b/src/Skyrim/Records/SLGMRecord.cpp new file mode 100644 index 0000000..548b0d1 --- /dev/null +++ b/src/Skyrim/Records/SLGMRecord.cpp @@ -0,0 +1,162 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "SLGMRecord.h" + +namespace Sk { + + SLGMRecord::SLGMRecord(unsigned char *_recData) + : TES5Record(_recData) + { + // + } + + SLGMRecord::SLGMRecord(SLGMRecord *srcRecord) + : TES5Record((TES5Record *)srcRecord) + { + if (srcRecord == NULL || !srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + } + + SLGMRecord::~SLGMRecord() + { + // + } + + uint32_t SLGMRecord::GetType() + { + return REV32(SLGM); + } + + char * SLGMRecord::GetStrType() + { + return "SLGM"; + } + + int32_t SLGMRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + while (buffer < end_buffer) + { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(OBND): + case REV32(FULL): + case REV32(KSIZ): + case REV32(KWDA): + case REV32(DATA): + case REV32(MODL): + case REV32(MODT): + case REV32(MODS): + case REV32(SOUL): + case REV32(SLCP): + buffer = end_buffer; + // Not needed atm + break; + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t SLGMRecord::Unload() + { + IsLoaded(false); + IsChanged(false); + EDID.Unload(); + return 1; + } + + int32_t SLGMRecord::WriteRecord(FileWriter &writer) + { + // Not fully implemented, must not ever be written + log_error << "SLGM Record is not fully implemented yet!\n"; + std::abort(); + WRITE(EDID); + return -1; + } + + bool SLGMRecord::operator ==(const SLGMRecord &other) const + { + return (EDID.equalsi(other.EDID) + ); + } + + bool SLGMRecord::operator !=(const SLGMRecord &other) const + { + return !(*this == other); + } + + bool SLGMRecord::equals(Record *other) + { + try + { + return *this == *dynamic_cast(other); + } + catch (...) + { + return false; + } + } + +} // namespace Sk diff --git a/src/Skyrim/Records/SLGMRecord.h b/src/Skyrim/Records/SLGMRecord.h new file mode 100644 index 0000000..8bc1677 --- /dev/null +++ b/src/Skyrim/Records/SLGMRecord.h @@ -0,0 +1,66 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" + +namespace Sk { + + class SLGMRecord : public TES5Record // Action record + { + public: + StringRecord EDID; // Editor ID + + SLGMRecord(unsigned char *_recData = NULL); + SLGMRecord(SLGMRecord *srcRecord); + ~SLGMRecord(); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const SLGMRecord &other) const; + bool operator !=(const SLGMRecord &other) const; + bool equals(Record *other); + }; + +} // namespace Sk diff --git a/src/Skyrim/Records/SPELRecord.cpp b/src/Skyrim/Records/SPELRecord.cpp new file mode 100644 index 0000000..1e360a5 --- /dev/null +++ b/src/Skyrim/Records/SPELRecord.cpp @@ -0,0 +1,248 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "SPELRecord.h" + +namespace Sk +{ + SPELRecord::SPELRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + SPELRecord::SPELRecord(SPELRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if(!srcRecord->IsChanged()) + return; + EDID = srcRecord->EDID; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + DESC = srcRecord->DESC; + MDOB = srcRecord->MDOB; + ETYP = srcRecord->ETYP; + SPIT = srcRecord->SPIT; + effects = srcRecord->effects; + + return; + } + + SPELRecord::~SPELRecord() + { + // + } + + uint32_t SPELRecord::GetType() + { + return REV32(SPEL); + } + + char * SPELRecord::GetStrType() + { + return "SPEL"; + } + + + bool SPELRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //TODO - implement VisitFormIDs for struct GENOBND + + if (MDOB.IsLoaded()) { + op.Accept(MDOB.value); + } + op.Accept(ETYP.value); + + return op.Stop(); + } + + + int32_t SPELRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + + SpellEffect *currentEffect = NULL; + + while (buffer < end_buffer){ + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(MDOB): + MDOB.Read(buffer, subSize); + break; + case REV32(ETYP): + ETYP.Read(buffer, subSize); + break; + case REV32(DESC): + DESC.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(SPIT): + SPIT.Read(buffer, subSize); + break; + case REV32(EFID): + currentEffect = new SpellEffect(); + effects.value.push_back(currentEffect); + currentEffect->EFID.Read(buffer, subSize); + break; + + case REV32(EFIT): + if(currentEffect != NULL) { + currentEffect->EFIT.Read(buffer, subSize); + } else { + printer(" SPEL: %08X - EFIT found without an effect initialized\n", formID); + buffer += subSize; + } + + break; + + case REV32(CTDA): + if(currentEffect != NULL) { + currentEffect->CTDA.Read(buffer, subSize); + } else { + printer(" SPEL: %08X - CTDA found without an effect initialized\n", formID); + buffer += subSize; + } + + break; + + case REV32(CIS2): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + + + + return 0; + } + + int32_t SPELRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + OBND.Unload(); + FULL.Unload(); + DESC.Unload(); + MDOB.Unload(); + ETYP.Unload(); + //effects.Unload(); + + return 1; + } + + int32_t SPELRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(OBND); + WRITE(FULL); + WRITE(MDOB); + WRITE(ETYP); + WRITE(DESC); + WRITE(SPIT); + effects.Write(writer); + return -1; + } + + bool SPELRecord::operator ==(const SPELRecord &other) const + { + return (EDID.equalsi(other.EDID) && + OBND == other.OBND && + FULL.equalsi(other.FULL) && + MDOB == other.MDOB && + ETYP == other.ETYP && + SPIT == other.SPIT && + DESC.equalsi(other.DESC) && + effects == other.effects); + } + + bool SPELRecord::operator !=(const SPELRecord &other) const + { + return !(*this == other); + } + + bool SPELRecord::equals(Record *other) + { + return *this == *(SPELRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/SPELRecord.h b/src/Skyrim/Records/SPELRecord.h new file mode 100644 index 0000000..7109823 --- /dev/null +++ b/src/Skyrim/Records/SPELRecord.h @@ -0,0 +1,105 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + struct SpellInfo { + uint32_t spellCost; + uint32_t flags; + uint32_t type; + float chargeTime; + uint32_t castType; + uint32_t delivery; + float castDuration; + float range; + FORMID halfcostPerk; + + + bool operator == (const SpellInfo &other) const { + return ( + this->spellCost == other.spellCost && + this->flags == other.flags && + this->type == other.type && + this->chargeTime == other.chargeTime && + this->castType == other.castType && + this->delivery == other.delivery && + this->castDuration == other.castDuration && + this->range == other.range && + this->halfcostPerk == other.halfcostPerk + ); + } + bool operator != (const SpellInfo &other) { + return !(*this == other); + } + }; + + class SPELRecord : public TES5Record // SPELvator record + { + public: + StringRecord EDID; // Editor ID + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // Full Name + OptSimpleSubRecord MDOB; + ReqSimpleSubRecord ETYP; + LStringRecord DESC; + ReqSubRecord SPIT; // Description + UnorderedSparseArray effects; + + SPELRecord(unsigned char *_recData = NULL); + SPELRecord(SPELRecord *srcRecord); + ~SPELRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const SPELRecord &other) const; + bool operator !=(const SPELRecord &other) const; + bool equals(Record *other); + }; + +} // namespace Sk diff --git a/src/Skyrim/Records/TXSTRecord.cpp b/src/Skyrim/Records/TXSTRecord.cpp index 45bab68..d572e6e 100644 --- a/src/Skyrim/Records/TXSTRecord.cpp +++ b/src/Skyrim/Records/TXSTRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "TXSTRecord.h" namespace Sk @@ -211,11 +211,8 @@ int32_t TXSTRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DNAM.Read(buffer, subSize); break; default: - //printer("FileName = %s\n", FileName); - printer(" TXST: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/TXSTRecord.h b/src/Skyrim/Records/TXSTRecord.h index 6ffa9c6..8e1faa4 100644 --- a/src/Skyrim/Records/TXSTRecord.h +++ b/src/Skyrim/Records/TXSTRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Sk { @@ -98,6 +98,7 @@ class TXSTRecord : public TES5Record //Texture Set int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const TXSTRecord &other) const; bool operator !=(const TXSTRecord &other) const; diff --git a/src/Skyrim/Records/VTYPRecord.cpp b/src/Skyrim/Records/VTYPRecord.cpp index 2bf4e3a..7c15400 100644 --- a/src/Skyrim/Records/VTYPRecord.cpp +++ b/src/Skyrim/Records/VTYPRecord.cpp @@ -130,11 +130,8 @@ int32_t VTYPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer DNAM.Read(buffer, subSize); break; default: - //printer("Filename = %s\n", FileName); - printer(" APPA: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/VTYPRecord.h b/src/Skyrim/Records/VTYPRecord.h index 204ab29..af1326b 100644 --- a/src/Skyrim/Records/VTYPRecord.h +++ b/src/Skyrim/Records/VTYPRecord.h @@ -35,7 +35,7 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\GenericRecord.h" +#include "../../GenericRecord.h" namespace Sk { @@ -74,6 +74,7 @@ class VTYPRecord : public TES5Record // Word of Power Record int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const VTYPRecord &other) const; bool operator !=(const VTYPRecord &other) const; diff --git a/src/Skyrim/Records/WEAPRecord.cpp b/src/Skyrim/Records/WEAPRecord.cpp new file mode 100644 index 0000000..608a749 --- /dev/null +++ b/src/Skyrim/Records/WEAPRecord.cpp @@ -0,0 +1,439 @@ +#pragma once +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "../../ModFile.h" +#include "WEAPRecord.h" + +namespace Sk +{ + WEAPRecord::WEAPRecord(unsigned char *_recData) : + TES5Record(_recData) + { + // + } + + WEAPRecord::WEAPRecord(WEAPRecord *srcRecord) : + TES5Record() + { + if (srcRecord == NULL) + return; + + flags = srcRecord->flags; + formID = srcRecord->formID; + flagsUnk = srcRecord->flagsUnk; + formVersion = srcRecord->formVersion; + versionControl2[0] = srcRecord->versionControl2[0]; + versionControl2[1] = srcRecord->versionControl2[1]; + + recData = srcRecord->recData; + if (!srcRecord->IsChanged()) + return; + EDID = srcRecord->EDID; + VMAD = srcRecord->VMAD; + OBND = srcRecord->OBND; + FULL = srcRecord->FULL; + MODL = srcRecord->MODL; + EITM = srcRecord->EITM; + EAMT = srcRecord->EAMT; + DEST = srcRecord->DEST; + ETYP = srcRecord->ETYP; + BIDS = srcRecord->BIDS; + BAMT = srcRecord->BAMT; + YNAM = srcRecord->YNAM; + ZNAM = srcRecord->ZNAM; + KWDA = srcRecord->KWDA; + DESC = srcRecord->DESC; + INAM = srcRecord->INAM; + WNAM = srcRecord->WNAM; + SNAM = srcRecord->SNAM; + XNAM = srcRecord->XNAM; + NAM7 = srcRecord->NAM7; + TNAM = srcRecord->TNAM; + UNAM = srcRecord->UNAM; + NAM9 = srcRecord->NAM9; + NAM8 = srcRecord->NAM8; + DATA = srcRecord->DATA; + DNAM = srcRecord->DNAM; + CRDT = srcRecord->CRDT; + VNAM = srcRecord->VNAM; + CNAM = srcRecord->CNAM; + + + return; + } + + WEAPRecord::~WEAPRecord() + { + // + } + + uint32_t WEAPRecord::GetType() + { + return REV32(WEAP); + } + + char * WEAPRecord::GetStrType() + { + return "WEAP"; + } + + + bool WEAPRecord::VisitFormIDs(FormIDOp &op) + { + if (!IsLoaded()) + return false; + //TODO - implement VisitFormIDs for struct GENOBND + + if (EITM.IsLoaded()) { + op.Accept(EITM.value); + } + if (DEST.IsLoaded()) { + //TODO - implement VisitFormIDs for struct GENDESTRUCT + } + if (ETYP.IsLoaded()) { + op.Accept(ETYP.value); + } + if (BIDS.IsLoaded()) { + op.Accept(BIDS.value); + } + if (BAMT.IsLoaded()) { + op.Accept(BAMT.value); + } + if (YNAM.IsLoaded()) { + op.Accept(YNAM.value); + } + if (ZNAM.IsLoaded()) { + op.Accept(ZNAM.value); + } + if (KWDA.IsLoaded()) { + for (uint32_t i = 0; i < KWDA.value.size(); ++i) { + + op.Accept(KWDA.value[i]); + + }; + } + if (INAM.IsLoaded()) { + op.Accept(INAM.value); + } + if (WNAM.IsLoaded()) { + op.Accept(WNAM.value); + } + if (SNAM.IsLoaded()) { + op.Accept(SNAM.value); + } + if (XNAM.IsLoaded()) { + op.Accept(XNAM.value); + } + if (NAM7.IsLoaded()) { + op.Accept(NAM7.value); + } + if (TNAM.IsLoaded()) { + op.Accept(TNAM.value); + } + if (UNAM.IsLoaded()) { + op.Accept(UNAM.value); + } + if (NAM9.IsLoaded()) { + op.Accept(NAM9.value); + } + if (NAM8.IsLoaded()) { + op.Accept(NAM8.value); + } + if (DATA.IsLoaded()) { + //TODO - implement VisitFormIDs for struct WEAPDATA + } + if (DNAM.IsLoaded()) { + //TODO - implement VisitFormIDs for struct WEAPDNAM + } + if (CRDT.IsLoaded()) { + //TODO - implement VisitFormIDs for struct WEAPCRDT + } + if (CNAM.IsLoaded()) { + op.Accept(CNAM.value); + } + + return op.Stop(); + } + + + int32_t WEAPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + StringLookups *LookupStrings = GetParentMod()->TES4.LookupStrings; + while (buffer < end_buffer) { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(VMAD): + VMAD.Read(buffer, subSize, GetType(), CompressedOnDisk); + break; + case REV32(OBND): + OBND.Read(buffer, subSize); + break; + case REV32(FULL): + FULL.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(MODL): + MODL.MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(EITM): + EITM.Read(buffer, subSize); + break; + case REV32(EAMT): + EAMT.Read(buffer, subSize); + break; + case REV32(DEST): + DEST.Read(buffer, subSize); + break; + case REV32(ETYP): + ETYP.Read(buffer, subSize); + break; + case REV32(BIDS): + BIDS.Read(buffer, subSize); + break; + case REV32(BAMT): + BAMT.Read(buffer, subSize); + break; + case REV32(YNAM): + YNAM.Read(buffer, subSize); + break; + case REV32(ZNAM): + ZNAM.Read(buffer, subSize); + break; + case REV32(KSIZ): + // Ignore on read + buffer += subSize; + break; + case REV32(KWDA): + KWDA.Read(buffer, subSize); + break; + case REV32(DESC): + DESC.Read(buffer, subSize, CompressedOnDisk, LookupStrings); + break; + case REV32(INAM): + INAM.Read(buffer, subSize); + break; + case REV32(WNAM): + WNAM.Read(buffer, subSize); + break; + case REV32(SNAM): + SNAM.Read(buffer, subSize); + break; + case REV32(XNAM): + XNAM.Read(buffer, subSize); + break; + case REV32(NAM7): + NAM7.Read(buffer, subSize); + break; + case REV32(TNAM): + TNAM.Read(buffer, subSize); + break; + case REV32(UNAM): + UNAM.Read(buffer, subSize); + break; + case REV32(NAM9): + NAM9.Read(buffer, subSize); + break; + case REV32(NAM8): + NAM8.Read(buffer, subSize); + break; + case REV32(DATA): + DATA.Read(buffer, subSize); + break; + case REV32(DNAM): + DNAM.Read(buffer, subSize); + break; + case REV32(CRDT): + CRDT.Read(buffer, subSize); + break; + case REV32(VNAM): + VNAM.Read(buffer, subSize); + break; + case REV32(CNAM): + CNAM.Read(buffer, subSize); + break; + case REV32(MODS): + case REV32(NNAM): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; + + default: + CBASH_SUBTYPE_UNKNOWN + CBASH_CHUNK_DEBUG + buffer = end_buffer; + break; + } + }; + return 0; + } + + int32_t WEAPRecord::Unload() + { + IsChanged(false); + IsLoaded(false); + EDID.Unload(); + VMAD.Unload(); + OBND.Unload(); + FULL.Unload(); + EITM.Unload(); + EAMT.Unload(); + DEST.Unload(); + ETYP.Unload(); + BIDS.Unload(); + BAMT.Unload(); + YNAM.Unload(); + ZNAM.Unload(); + KWDA.Unload(); + DESC.Unload(); + INAM.Unload(); + WNAM.Unload(); + SNAM.Unload(); + XNAM.Unload(); + NAM7.Unload(); + TNAM.Unload(); + UNAM.Unload(); + NAM9.Unload(); + NAM8.Unload(); + DATA.Unload(); + DNAM.Unload(); + CRDT.Unload(); + VNAM.Unload(); + CNAM.Unload(); + + return 1; + } + + int32_t WEAPRecord::WriteRecord(FileWriter &writer) + { + WRITE(EDID); + WRITE(VMAD); + WRITE(OBND); + WRITE(FULL); + MODL.Write(writer); + WRITE(EITM); + WRITE(EAMT); + WRITE(DEST); + WRITE(ETYP); + WRITE(BIDS); + WRITE(BAMT); + WRITE(YNAM); + WRITE(ZNAM); + WRITE(KWDA); + WRITE(DESC); + WRITE(INAM); + WRITE(WNAM); + WRITE(SNAM); + WRITE(XNAM); + WRITE(NAM7); + WRITE(TNAM); + WRITE(UNAM); + WRITE(NAM9); + WRITE(NAM8); + WRITE(DATA); + WRITE(DNAM); + WRITE(CRDT); + WRITE(VNAM); + WRITE(CNAM); + return -1; + } + + bool WEAPRecord::operator ==(const WEAPRecord &other) const + { + return (EDID.equalsi(other.EDID) && + VMAD == other.VMAD && + OBND == other.OBND && + FULL.equalsi(other.FULL) && + MODL == other.MODL && + EITM == other.EITM && + EAMT == other.EAMT && + DEST == other.DEST && + ETYP == other.ETYP && + BIDS == other.BIDS && + BAMT == other.BAMT && + YNAM == other.YNAM && + ZNAM == other.ZNAM && + KWDA == other.KWDA && + DESC.equalsi(other.DESC) && + INAM == other.INAM && + WNAM == other.WNAM && + SNAM == other.SNAM && + XNAM == other.XNAM && + NAM7 == other.NAM7 && + TNAM == other.TNAM && + UNAM == other.UNAM && + NAM9 == other.NAM9 && + NAM8 == other.NAM8 && + DATA == other.DATA && + DNAM == other.DNAM && + CRDT == other.CRDT && + VNAM == other.VNAM && + CNAM == other.CNAM); + } + + bool WEAPRecord::operator !=(const WEAPRecord &other) const + { + return !(*this == other); + } + + bool WEAPRecord::equals(Record *other) + { + return *this == *(WEAPRecord *)other; + } +} \ No newline at end of file diff --git a/src/Skyrim/Records/WEAPRecord.h b/src/Skyrim/Records/WEAPRecord.h new file mode 100644 index 0000000..4ae6751 --- /dev/null +++ b/src/Skyrim/Records/WEAPRecord.h @@ -0,0 +1,204 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" +#include "../SkyrimCommon.h" + +namespace Sk { + + struct WEAPDATA { + uint32_t value; + float weight; + int16_t damage; + + bool operator ==(const WEAPDATA &other) const { + + return ( + this->value == other.value && + this->weight == other.weight && + this->damage == other.damage); + + } + + bool operator !=(const WEAPDATA &other) const { + return !(*this == other); + } + }; + + struct WEAPDNAM { + uint32_t animType; + float speed; + float reach; + uint32_t flags; + float sightFOV; + uint32_t unk14; + uint32_t unk18; + float minRange; + float maxRange; + uint32_t unk24; + uint32_t moreFlags; + float unk2C; + float unk30; + float rumbleLeft; + float rumbleRight; + float rumbleDuration; + uint32_t unk40; + uint32_t unk44; + uint32_t unk48; + uint32_t governingSkill; + uint32_t unk50; + uint32_t unk54; + uint32_t resist; + uint32_t unk5C; + float stagger; + + + bool operator ==(const WEAPDNAM &other) const { + + return ( + this->animType == other.animType && + this->speed == other.speed && + this->reach == other.reach && + this->flags == other.flags && + this->sightFOV == other.sightFOV && + this->unk14 == other.unk14 && + this->unk18 == other.unk18 && + this->minRange == other.minRange && + this->maxRange == other.maxRange && + this->unk24 == other.unk24 && + this->moreFlags == other.moreFlags && + this->unk2C == other.unk2C && + this->unk30 == other.unk30 && + this->rumbleLeft == other.rumbleLeft && + this->rumbleRight == other.rumbleRight && + this->rumbleDuration == other.rumbleDuration && + this->unk40 == other.unk40 && + this->unk44 == other.unk44 && + this->unk48 == other.unk48 && + this->governingSkill == other.governingSkill && + this->unk50 == other.unk50 && + this->unk54 == other.unk54 && + this->resist == other.resist && + this->unk5C == other.unk5C && + this->stagger == other.stagger); + + } + + bool operator !=(const WEAPDNAM &other) const { + return !(*this == other); + } + }; + + + struct WEAPCRDT { + uint16_t criticalDamage; + uint16_t unk2; + float criticalMultiplier; + uint32_t flags; + FORMID spellEffect; + + bool operator ==(const WEAPCRDT &other) const { + + return ( + this->criticalDamage == other.criticalDamage && + this->unk2 == other.unk2 && + this->criticalMultiplier == other.criticalMultiplier && + this->flags == other.flags && + this->spellEffect == other.spellEffect); + + } + + bool operator !=(const WEAPCRDT &other) const { + return !(*this == other); + } + }; + + class WEAPRecord : public TES5Record // Acoustic Space Record + { + public: + StringRecord EDID; // Editor ID + VMADRecord VMAD; // VM data + ReqSubRecord OBND; // Object Bounds + LStringRecord FULL; // ambient + MODEL MODL; + OptSimpleSubRecord EITM; // Enchantment + OptSimpleSubRecord EAMT; // Enchantment Amount + OptSubRecord DEST; // Destruction data + OptSimpleSubRecord ETYP; // Enchantment + OptSimpleSubRecord BIDS; // Enchantment + OptSimpleSubRecord BAMT; // Enchantment + OptSimpleSubRecord YNAM; // Sound - pick up + OptSimpleSubRecord ZNAM; // Sound - drop + OptCounted, uint32_t, REV32(KSIZ)> KWDA; + LStringRecord DESC; // Description + OptSimpleSubRecord INAM; + OptSimpleSubRecord WNAM; + OptSimpleSubRecord SNAM; + OptSimpleSubRecord XNAM; + OptSimpleSubRecord NAM7; + OptSimpleSubRecord TNAM; + OptSimpleSubRecord UNAM; + OptSimpleSubRecord NAM9; + OptSimpleSubRecord NAM8; + OptSubRecord DATA; + OptSubRecord DNAM; + OptSubRecord CRDT; + ReqSimpleSubRecord VNAM; + OptSimpleSubRecord CNAM; + + + + WEAPRecord(unsigned char *_recData = NULL); + WEAPRecord(WEAPRecord *srcRecord); + ~WEAPRecord(); + + bool VisitFormIDs(FormIDOp &op); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const WEAPRecord &other) const; + bool operator !=(const WEAPRecord &other) const; + bool equals(Record *other); + }; +} \ No newline at end of file diff --git a/src/Skyrim/Records/WOOPRecord.cpp b/src/Skyrim/Records/WOOPRecord.cpp index 93ace1f..16a652e 100644 --- a/src/Skyrim/Records/WOOPRecord.cpp +++ b/src/Skyrim/Records/WOOPRecord.cpp @@ -35,7 +35,7 @@ * * ***** END LICENSE BLOCK ***** */ #include "WOOPRecord.h" -#include "..\..\ModFile.h" +#include "../../ModFile.h" namespace Sk { @@ -106,11 +106,8 @@ int32_t WOOPRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer TNAM.Read(buffer, subSize, CompressedOnDisk, LookupStrings); break; default: - //printer("Filename = %s\n", FileName); - printer(" APPA: %08X - Unknown subType = %04x\n", formID, subType); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n", buffer - 6); buffer = end_buffer; break; } diff --git a/src/Skyrim/Records/WOOPRecord.h b/src/Skyrim/Records/WOOPRecord.h index e76c664..d870f79 100644 --- a/src/Skyrim/Records/WOOPRecord.h +++ b/src/Skyrim/Records/WOOPRecord.h @@ -35,8 +35,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\SkyrimCommon.h" -#include "..\..\GenericRecord.h" +#include "../SkyrimCommon.h" +#include "../../GenericRecord.h" namespace Sk { @@ -63,6 +63,7 @@ class WOOPRecord : public TES5Record // Word of Power Record int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const WOOPRecord &other) const; bool operator !=(const WOOPRecord &other) const; diff --git a/src/Skyrim/Records/WRLDRecord.cpp b/src/Skyrim/Records/WRLDRecord.cpp index 3c3d744..d315eac 100644 --- a/src/Skyrim/Records/WRLDRecord.cpp +++ b/src/Skyrim/Records/WRLDRecord.cpp @@ -33,7 +33,7 @@ * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ -#include "..\..\Common.h" +#include "../../Common.h" #include "WRLDRecord.h" namespace Sk @@ -55,12 +55,14 @@ WRLDRecord::WRLDRecord(WRLDRecord *srcRecord): EDID = srcRecord->EDID; FULL = srcRecord->FULL; XEZN = srcRecord->XEZN; + XLCN = srcRecord->XLCN; WNAM = srcRecord->WNAM; PNAM = srcRecord->PNAM; CNAM = srcRecord->CNAM; NAM2 = srcRecord->NAM2; NAM3 = srcRecord->NAM3; NAM4 = srcRecord->NAM4; + MODL = srcRecord->MODL; DNAM = srcRecord->DNAM; ICON = srcRecord->ICON; MICO = srcRecord->MICO; @@ -99,12 +101,18 @@ bool WRLDRecord::VisitFormIDs(FormIDOp &op) if(XEZN.IsLoaded()) op.Accept(XEZN.value); + if (XLCN.IsLoaded()) + op.Accept(XLCN.value); if(WNAM.IsLoaded()) op.Accept(WNAM.value); if(CNAM.IsLoaded()) op.Accept(CNAM.value); op.Accept(NAM2.value); op.Accept(NAM3.value); + + if (MODL.IsLoaded()) + MODL->Textures.VisitFormIDs(op); + if(INAM.IsLoaded()) op.Accept(INAM.value); if(ZNAM.IsLoaded()) @@ -342,6 +350,9 @@ int32_t WRLDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer case REV32(XEZN): XEZN.Read(buffer, subSize); break; + case REV32(XLCN): + XLCN.Read(buffer, subSize); + break; case REV32(WNAM): WNAM.Read(buffer, subSize); break; @@ -418,12 +429,26 @@ int32_t WRLDRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer case REV32(UNAM): // 53 bytes, Data\Textures\Landscape\Mountains\MountainSlab02_N.dds UNAM.Read(buffer, subSize, CompressedOnDisk); break; + case REV32(MODL): + MODL.Load(); + MODL->MODL.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODT): + MODL.Load(); + MODL->MODT.Read(buffer, subSize, CompressedOnDisk); + break; + case REV32(MODS): + MODL.Load(); + MODL->Textures.Read(buffer, subSize); + break; + case REV32(MHDT): + case REV32(WCTR): + CBASH_SUBTYPE_NOT_IMPLEMENTED + buffer += subSize; + break; default: - //printer("FileName = %s\n", FileName); - printer(" WRLD: %08X - Unknown subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); + CBASH_SUBTYPE_UNKNOWN CBASH_CHUNK_DEBUG - printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -438,12 +463,14 @@ int32_t WRLDRecord::Unload() EDID.Unload(); FULL.Unload(); XEZN.Unload(); + XLCN.Unload(); WNAM.Unload(); PNAM.Unload(); CNAM.Unload(); NAM2.Unload(); NAM3.Unload(); NAM4.Unload(); + MODL.Unload(); DNAM.Unload(); ICON.Unload(); MICO.Unload(); @@ -471,12 +498,14 @@ int32_t WRLDRecord::WriteRecord(FileWriter &writer) WRITE(EDID); WRITE(FULL); WRITE(XEZN); + WRITE(XLCN); WRITE(WNAM); WRITE(PNAM); WRITE(CNAM); WRITE(NAM2); WRITE(NAM3); WRITE(NAM4); + MODL.Write(writer); WRITE(DNAM); WRITE(ICON); WRITE(MICO); @@ -503,6 +532,7 @@ int32_t WRLDRecord::WriteRecord(FileWriter &writer) bool WRLDRecord::operator ==(const WRLDRecord &other) const { return (XEZN == other.XEZN && + XLCN == other.XLCN && WNAM == other.WNAM && PNAM == other.PNAM && CNAM == other.CNAM && @@ -510,6 +540,7 @@ bool WRLDRecord::operator ==(const WRLDRecord &other) const NAM3 == other.NAM3 && NAM4 == other.NAM4 && DNAM == other.DNAM && + MODL == other.MODL && MNAM == other.MNAM && ONAM == other.ONAM && INAM == other.INAM && diff --git a/src/Skyrim/Records/WRLDRecord.h b/src/Skyrim/Records/WRLDRecord.h index 85724c9..4b2ad2e 100644 --- a/src/Skyrim/Records/WRLDRecord.h +++ b/src/Skyrim/Records/WRLDRecord.h @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ #pragma once -#include "..\..\Common.h" -#include "..\..\GenericRecord.h" +#include "../../Common.h" +#include "../../GenericRecord.h" namespace Sk { @@ -68,7 +68,8 @@ class WRLDRecord : public TES5Record //Worldspace StringRecord EDID; //Editor ID StringRecord FULL; //Name OptSimpleSubRecord XEZN; //Encounter Zone - OptSimpleSubRecord WNAM; //Parent Worldspace + OptSimpleSubRecord XLCN; //Unknown (Skyrim) -> LCTN + OptSimpleSubRecord WNAM; //Parent Worldspace OptSimpleSubRecord PNAM; //Parent Flags OptSimpleSubRecord CNAM; //Climate ReqSimpleSubRecord NAM2; //Water @@ -91,6 +92,7 @@ class WRLDRecord : public TES5Record //Worldspace RawRecord OFST; //Unknown RawRecord RNAM; //Unknown (Skyrim) RawRecord NAMA; //Unknown (Skyrim) + OptSubRecord MODL; // Model StringRecord TNAM; //Texture Filename (Skyrim) StringRecord UNAM; //Normal Texture Filename (Skyrim) @@ -155,6 +157,7 @@ class WRLDRecord : public TES5Record //Worldspace int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk=false); int32_t Unload(); int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } bool operator ==(const WRLDRecord &other) const; bool operator !=(const WRLDRecord &other) const; diff --git a/src/Skyrim/Records/WTHRRecord.cpp b/src/Skyrim/Records/WTHRRecord.cpp new file mode 100644 index 0000000..9551aea --- /dev/null +++ b/src/Skyrim/Records/WTHRRecord.cpp @@ -0,0 +1,148 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#include "../../Common.h" +#include "WTHRRecord.h" + +namespace Sk { + + WTHRRecord::WTHRRecord(unsigned char *_recData) + : TES5Record(_recData) + { + // + } + + WTHRRecord::WTHRRecord(WTHRRecord *srcRecord) + : TES5Record((TES5Record *)srcRecord) + { + if (srcRecord == NULL || !srcRecord->IsChanged()) + return; + + EDID = srcRecord->EDID; + } + + WTHRRecord::~WTHRRecord() + { + // + } + + uint32_t WTHRRecord::GetType() + { + return REV32(WTHR); + } + + char * WTHRRecord::GetStrType() + { + return "WTHR"; + } + + int32_t WTHRRecord::ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk) + { + uint32_t subType = 0; + uint32_t subSize = 0; + while (buffer < end_buffer) + { + subType = *(uint32_t *)buffer; + buffer += 4; + switch (subType) + { + case REV32(XXXX): + buffer += 2; + subSize = *(uint32_t *)buffer; + buffer += 4; + subType = *(uint32_t *)buffer; + buffer += 6; + break; + default: + subSize = *(uint16_t *)buffer; + buffer += 2; + break; + } + switch (subType) + { + case REV32(EDID): + EDID.Read(buffer, subSize, CompressedOnDisk); + break; + default: + buffer = end_buffer; + // Not needed atm + break; + } + }; + return 0; + } + + int32_t WTHRRecord::Unload() + { + IsLoaded(false); + IsChanged(false); + EDID.Unload(); + return 1; + } + + int32_t WTHRRecord::WriteRecord(FileWriter &writer) + { + // Not fully implemented, must not ever be written + log_error << "WTHR Record is not fully implemented yet!\n"; + std::abort(); + WRITE(EDID); + return -1; + } + + bool WTHRRecord::operator ==(const WTHRRecord &other) const + { + return (EDID.equalsi(other.EDID) + ); + } + + bool WTHRRecord::operator !=(const WTHRRecord &other) const + { + return !(*this == other); + } + + bool WTHRRecord::equals(Record *other) + { + try + { + return *this == *dynamic_cast(other); + } + catch (...) + { + return false; + } + } + +} // namespace Sk diff --git a/src/Skyrim/Records/WTHRRecord.h b/src/Skyrim/Records/WTHRRecord.h new file mode 100644 index 0000000..4ab055c --- /dev/null +++ b/src/Skyrim/Records/WTHRRecord.h @@ -0,0 +1,66 @@ +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is CBash code. +* +* The Initial Developer of the Original Code is +* Waruddar. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Jacob "Lojack" Lojewski +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ +#pragma once +#include "../../Common.h" +#include "../../GenericRecord.h" +#include "../SkyrimChunks.h" + +namespace Sk { + + class WTHRRecord : public TES5Record // Action record + { + public: + StringRecord EDID; // Editor ID + + WTHRRecord(unsigned char *_recData = NULL); + WTHRRecord(WTHRRecord *srcRecord); + ~WTHRRecord(); + + uint32_t GetType(); + char * GetStrType(); + + int32_t ParseRecord(unsigned char *buffer, unsigned char *end_buffer, bool CompressedOnDisk = false); + int32_t Unload(); + int32_t WriteRecord(FileWriter &writer); + char *GetEditorIDKey() { return EDID.value; } + + bool operator ==(const WTHRRecord &other) const; + bool operator !=(const WTHRRecord &other) const; + bool equals(Record *other); + }; + +} // namespace Sk diff --git a/src/Skyrim/SkyrimChunks.cpp b/src/Skyrim/SkyrimChunks.cpp index e79e70a..b0f3887 100644 --- a/src/Skyrim/SkyrimChunks.cpp +++ b/src/Skyrim/SkyrimChunks.cpp @@ -237,7 +237,7 @@ bool SKCTDA::VisitFormIDs(FormIDOp &op) if (IsUseGlobal()) op.Accept(compValue); - if (curCTDAFunction != SKFunction_Arguments.end()) + if (curCTDAFunction != SKFunction_Arguments.end()) { const FunctionArguments &CTDAFunction = curCTDAFunction->second; if (CTDAFunction.first == eFORMID) @@ -549,6 +549,8 @@ void SKCondition::Write(FileWriter &writer) WRITE(CTDA); WRITE(CIS1); WRITE(CIS2); + //CIS1.Write(REV32(CIS1), writer); + //CIS2.Write(REV32(CIS2), writer); } bool SKCondition::operator == (const SKCondition &other) const @@ -618,4 +620,79 @@ bool SKEffect::operator != (const SKEffect &other) const return !(*this == other); } +void GENATTACK::Write(FileWriter &writer) +{ + WRITE(ATKD); + WRITE(ATKE); +} + +bool GENATTACK::operator == (const GENATTACK &other) const +{ + return (ATKD == other.ATKD && ATKE.equals(other.ATKE)); +} + +bool GENATTACK::operator != (const GENATTACK &other) const +{ + return !(*this == other); +} + +bool GENATTACK::ATTACKDATA::operator == (const GENATTACK::ATTACKDATA &other) const +{ + return (damageMult == other.damageMult && + attackChance == other.attackChance && + attackSpell == other.attackSpell && + flags == other.flags && + attackAngle == other.attackAngle && + strikeAngle == other.strikeAngle && + stagger == other.stagger && + attackType == other.attackType && + knockdown == other.knockdown && + recoveryTime == other.recoveryTime && + fatigueMult == other.fatigueMult); +} + +bool GENATTACK::ATTACKDATA::operator != (const GENATTACK::ATTACKDATA &other) const +{ + return !(*this == other); +} + + +bool SKCNTOCOED::operator == (const SKCNTOCOED &other) const +{ + return (CNTO == other.CNTO && COED == other.COED); +} + +bool SKCNTOCOED::operator != (const SKCNTOCOED &other) const +{ + return !(*this == other); +} + + +void GENPRKR::Write(FileWriter &writer) +{ + writer.record_write_subrecord(REV32(PRKR), this, sizeof(this)); +} + +bool GENPRKR::operator == (const GENPRKR &other) const +{ + return (perk == other.perk && rank == other.rank); +} + +bool GENPRKR::operator != (const GENPRKR &other) const +{ + return !(*this == other); +} + +GENPRKR::GENPRKR() : + perk(0), + rank(0) +{ + memset(&unused1, 0, sizeof(unused1)); +} + +GENPRKR::~GENPRKR() +{ + // +} + } // namespace Sk diff --git a/src/Skyrim/SkyrimChunks.h b/src/Skyrim/SkyrimChunks.h index 7c9f149..849e3e7 100644 --- a/src/Skyrim/SkyrimChunks.h +++ b/src/Skyrim/SkyrimChunks.h @@ -75,6 +75,21 @@ struct SKLVLOCOED bool operator !=(const SKLVLOCOED &other) const; }; +// CNTO/COED pair for NPC_ records +struct SKCNTOCOED + { + ReqSubRecord CNTO; + OptSubRecord COED; + + bool IsGlobal() const; + bool IsRank() const; + + void Write(FileWriter &writer); + + bool operator ==(const SKCNTOCOED &other) const; + bool operator !=(const SKCNTOCOED &other) const; + }; + struct MODEL { StringRecord MODL; // Model Filename @@ -282,5 +297,175 @@ struct SKEffect bool operator !=(const SKEffect &other) const; }; +struct GENATTACK +{ + struct ATTACKDATA + { + + float damageMult; + float attackChance; + FORMID attackSpell; + uint32_t flags; + /* + 0x01 - Ignore Weapon + 0x02 - Bash Attack + 0x04 - Power Attack + 0x08 - Left Attack + 0x10 - Rotating Attack + */ + + float attackAngle; + float strikeAngle; + float stagger; + FORMID attackType; + float knockdown; + float recoveryTime; + float fatigueMult; + + + bool operator ==(const ATTACKDATA &other) const; + bool operator !=(const ATTACKDATA &other) const; + + }; + ReqSubRecord ATKD; // attack data + StringRecord ATKE; // attack event + + void Write(FileWriter &writer); + + bool operator ==(const GENATTACK &other) const; + bool operator !=(const GENATTACK &other) const; +}; + +struct GENPRKR +{ + FORMID perk; + uint8_t rank, unused1[3]; + + GENPRKR(); + ~GENPRKR(); + + void Write(FileWriter &writer); + + bool operator ==(const GENPRKR &other) const; + bool operator !=(const GENPRKR &other) const; +}; + + +struct XWCU { + float x, y, z, unk; + + bool operator ==(const XWCU &other) const { + return (this->x == other.x && + this->y == other.y && + this->z == other.z); + } + bool operator !=(const XWCU &other) const { + return !(*this == other); + } +}; + +struct GenXLKR { + FORMID kywd; + FORMID formid; + bool operator ==(const GenXLKR &other) const { + return (this->kywd == other.kywd && + this->formid == other.formid); + } + bool operator !=(const GenXLKR &other) const { + return !(*this == other); + } +}; + +struct GenXLOC { + uint32_t difficulty; + FORMID key; + uint32_t flags; + uint8_t zeros[8]; + + bool operator ==(const GenXLOC &other) const { + return (this->difficulty == other.difficulty && + this->key == other.key && + this->flags == other.flags); + } + bool operator !=(const GenXLOC &other) const { + return !(*this == other); + } +}; + +/** +* When not lazy to wait for compilation - move to common +*/ +struct COORDINATES { + float x, y, z; + bool operator ==(const COORDINATES &other) const { + return (this->x == other.x && + this->y == other.y && + this->z == other.z + ); + } + bool operator !=(const COORDINATES &other) const { + return !(*this == other); + } +}; + +struct ContainerItems { + FORMID itemID; + uint32_t itemCount; + + bool operator ==(const ContainerItems &other) const { + + return ( + this->itemID == other.itemID && + this->itemCount == other.itemCount); + + } + + bool operator !=(const ContainerItems &other) const { + return !(*this == other); + } +}; + + +struct EffectItem { + float magnitude; + uint32_t areaOfEffect; + uint32_t duration; + + bool operator == (const EffectItem &other) const { + return ( + this->magnitude == other.magnitude && + this->areaOfEffect == other.areaOfEffect && + this->duration == other.duration + ); + } + bool operator != (const EffectItem &other) const { + return !(*this == other); + } +}; + +struct SpellEffect { + + ReqSimpleSubRecord EFID; + ReqSubRecord EFIT; + UnorderedSparseArray CTDA; + + bool operator == (const SpellEffect &other) const { + return ( + this->EFID == other.EFID && + this->EFIT == other.EFIT && + this->CTDA == other.CTDA + ); + } + bool operator != (const SpellEffect &other) { + return !(*this == other); + } + + void Write(FileWriter &writer) + { + WRITE(EFID); + WRITE(EFIT); + WRITE(CTDA); + } +}; } // namespace Sk diff --git a/src/Skyrim/SkyrimCommon.cpp b/src/Skyrim/SkyrimCommon.cpp index 4be398b..3fac4ad 100644 --- a/src/Skyrim/SkyrimCommon.cpp +++ b/src/Skyrim/SkyrimCommon.cpp @@ -96,7 +96,8 @@ bool StringLookups::Open(char * ModName) delete [] StringsFileName; delete [] DLStringsFileName; delete [] ILStringsFileName; - throw; + return false; + //throw; } delete [] StringsFileName; diff --git a/src/Skyrim/TES5File.cpp b/src/Skyrim/TES5File.cpp index 1ed9c25..cdeeac1 100644 --- a/src/Skyrim/TES5File.cpp +++ b/src/Skyrim/TES5File.cpp @@ -230,7 +230,7 @@ int32_t TES5File::Load(RecordOp &read_parser, RecordOp &indexer, std::vectorINFO.push_back(DIAL.info_pool.construct(SourceRecord, ParentRecord, false)); return ((Sk::DIALRecord *)ParentRecord)->INFO.back(); + /* case REV32(ACHR): if(ParentRecord == NULL || ParentRecord->GetType() != REV32(CELL)) { @@ -1433,12 +1449,16 @@ Record * TES5File::CreateRecord(const uint32_t &RecordType, char * const &Record ((Sk::CELLRecord *)ParentRecord)->NAVM.push_back(CELL.navm_pool.construct(SourceRecord, ParentRecord, false)); return ((Sk::CELLRecord *)ParentRecord)->NAVM.back(); + */ case REV32(QUST): return QUST.pool.construct(SourceRecord, this, true); + /* case REV32(IDLE): return IDLE.pool.construct(SourceRecord, this, true); + */ case REV32(PACK): return PACK.pool.construct(SourceRecord, this, true); + /* case REV32(CSTY): return CSTY.pool.construct(SourceRecord, this, true); case REV32(LSCR): @@ -1587,12 +1607,10 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); ALCH.pool.destroy(curRecord); return 1; - /* case REV32(AMMO): deindexer.Accept(curRecord); AMMO.pool.destroy(curRecord); return 1; - */ case REV32(ANIO): deindexer.Accept(curRecord); ANIO.pool.destroy(curRecord); @@ -1607,12 +1625,10 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) ARMA.pool.destroy(curRecord); return 1; */ - /* case REV32(ARMO): deindexer.Accept(curRecord); ARMO.pool.destroy(curRecord); return 1; - */ case REV32(ARTO): deindexer.Accept(curRecord); ARTO.pool.destroy(curRecord); @@ -1630,10 +1646,12 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); AVIF.pool.destroy(curRecord); return 1; + */ case REV32(BOOK): deindexer.Accept(curRecord); BOOK.pool.destroy(curRecord); return 1; + /* case REV32(BPTD): deindexer.Accept(curRecord); BPTD.pool.destroy(curRecord); @@ -1763,12 +1781,12 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); COLL.pool.destroy(curRecord); return 1; - /* case REV32(CONT): deindexer.Accept(curRecord); CONT.pool.destroy(curRecord); return 1; - case REV32(CPTH): + /* + case REV32(CPTH): deindexer.Accept(curRecord); CPTH.pool.destroy(curRecord); return 1; @@ -1780,6 +1798,7 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); DEBR.pool.destroy(curRecord); return 1; + */ case REV32(DIAL): { Sk::DIALRecord *dial_record = (Sk::DIALRecord *)curRecord; @@ -1797,7 +1816,8 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); DLBR.pool.destroy(curRecord); return 1; - case REV32(DLVW): + /* + case REV32(DLVW): deindexer.Accept(curRecord); DLVW.pool.destroy(curRecord); return 1; @@ -1805,11 +1825,13 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); DOBJ.pool.destroy(curRecord); return 1; - case REV32(DOOR): + */ + case REV32(DOOR): deindexer.Accept(curRecord); DOOR.pool.destroy(curRecord); return 1; - case REV32(DUAL): + /* + case REV32(DUAL): deindexer.Accept(curRecord); DUAL.pool.destroy(curRecord); return 1; @@ -1839,14 +1861,16 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); EYES.pool.destroy(curRecord); return 1; - case REV32(FACT): + */ + case REV32(FACT): deindexer.Accept(curRecord); FACT.pool.destroy(curRecord); return 1; - case REV32(FLOR): + case REV32(FLOR): deindexer.Accept(curRecord); FLOR.pool.destroy(curRecord); return 1; + /* case REV32(FLST): deindexer.Accept(curRecord); FLST.pool.destroy(curRecord); @@ -1859,6 +1883,7 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); FSTS.pool.destroy(curRecord); return 1; + */ case REV32(FURN): deindexer.Accept(curRecord); FURN.pool.destroy(curRecord); @@ -1867,7 +1892,8 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); GLOB.pool.destroy(curRecord); return 1; - case REV32(GMST): + /* + case REV32(GMST): deindexer.Accept(curRecord); GMST.pool.destroy(curRecord); return 1; @@ -1895,6 +1921,7 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); IMGS.pool.destroy(curRecord); return 1; + */ case REV32(INFO): { Sk::DIALRecord *dial_record = (Sk::DIALRecord *)curRecord->GetParentRecord(); @@ -1922,7 +1949,8 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); INGR.pool.destroy(curRecord); return 1; - case REV32(IPCT): + /* + case REV32(IPCT): deindexer.Accept(curRecord); IPCT.pool.destroy(curRecord); return 1; @@ -1930,11 +1958,11 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); IPDS.pool.destroy(curRecord); return 1; - case REV32(KEYM): + */ + case REV32(KEYM): deindexer.Accept(curRecord); KEYM.pool.destroy(curRecord); return 1; - */ case REV32(KYWD): deindexer.Accept(curRecord); KYWD.pool.destroy(curRecord); @@ -1967,10 +1995,12 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); LGTM.pool.destroy(curRecord); return 1; + */ case REV32(LIGH): deindexer.Accept(curRecord); LIGH.pool.destroy(curRecord); return 1; + /* case REV32(LSCR): deindexer.Accept(curRecord); LSCR.pool.destroy(curRecord); @@ -2012,11 +2042,13 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); MGEF.pool.destroy(curRecord); return 1; + */ case REV32(MISC): deindexer.Accept(curRecord); MISC.pool.destroy(curRecord); return 1; - case REV32(MOVT): + /* + case REV32(MOVT): deindexer.Accept(curRecord); MOVT.pool.destroy(curRecord); return 1; @@ -2059,20 +2091,21 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) CELL.navm_pool.destroy(curRecord); } return 1; - case REV32(NPC_): + */ + case REV32(NPC_): deindexer.Accept(curRecord); NPC_.pool.destroy(curRecord); return 1; - */ + case REV32(OTFT): deindexer.Accept(curRecord); OTFT.pool.destroy(curRecord); return 1; - /* case REV32(PACK): deindexer.Accept(curRecord); PACK.pool.destroy(curRecord); return 1; + /* case REV32(PERK): deindexer.Accept(curRecord); PERK.pool.destroy(curRecord); @@ -2108,11 +2141,12 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); PROJ.pool.destroy(curRecord); return 1; + */ case REV32(QUST): deindexer.Accept(curRecord); QUST.pool.destroy(curRecord); return 1; - case REV32(RACE): +/* case REV32(RACE): deindexer.Accept(curRecord); RACE.pool.destroy(curRecord); return 1; @@ -2201,11 +2235,12 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); SOUN.pool.destroy(curRecord); return 1; - case REV32(SPEL): + */ + case REV32(SPEL): deindexer.Accept(curRecord); SPEL.pool.destroy(curRecord); return 1; - case REV32(SPGD): + /*case REV32(SPGD): deindexer.Accept(curRecord); SPGD.pool.destroy(curRecord); return 1; @@ -2235,11 +2270,11 @@ int32_t TES5File::DeleteRecord(Record *&curRecord, RecordOp &deindexer) deindexer.Accept(curRecord); WATR.pool.destroy(curRecord); return 1; - case REV32(WEAP): + */ + case REV32(WEAP): deindexer.Accept(curRecord); WEAP.pool.destroy(curRecord); return 1; - */ case REV32(WOOP): deindexer.Accept(curRecord); WOOP.pool.destroy(curRecord); @@ -2360,7 +2395,7 @@ int32_t TES5File::Save(char * const &SaveName, std::vector &Ex FileWriter writer(SaveName, BUFFERSIZE); if(writer.open() == -1) - throw std::exception("TES5File::Save: Error - Unable to open temporary file for writing\n"); + throw std::runtime_error("TES5File::Save: Error - Unable to open temporary file for writing\n"); uint32_t formCount = 0; FormIDResolver expander(FormIDHandler.ExpandTable, FormIDHandler.FileStart, FormIDHandler.FileEnd); @@ -2376,9 +2411,9 @@ int32_t TES5File::Save(char * const &SaveName, std::vector &Ex // formCount += LCRT.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); formCount += AACT.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); formCount += TXST.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += GLOB.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += GLOB.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += CLAS.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += FACT.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += FACT.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += HDPT.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // HAIR - Skyrim.esm has an empty GRUP for these // formCount += EYES.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); @@ -2389,17 +2424,17 @@ int32_t TES5File::Save(char * const &SaveName, std::vector &Ex // SCPT - Skyrim.esm has an empty GRUP for these formCount += LTEX.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += ENCH.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += SPEL.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += SPEL.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += SCRL.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); formCount += ACTI.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += TACT.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += ARMO.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += BOOK.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += CONT.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += DOOR.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += INGR.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += LIGH.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += MISC.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += ARMO.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += BOOK.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += CONT.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += DOOR.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += INGR.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += LIGH.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += MISC.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); formCount += APPA.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += STAT.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // SCOL - Skyrim.esm has an empty GRUP for these @@ -2408,11 +2443,11 @@ int32_t TES5File::Save(char * const &SaveName, std::vector &Ex // formCount += GRAS.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += TREE.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // CLDC - Skyrim.esm has an empty GRUP for these - // formCount += FLOR.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += FURN.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += WEAP.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += AMMO.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += NPC_.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += FLOR.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += FURN.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += WEAP.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += AMMO.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += NPC_.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); formCount += LVLN.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += KEYM.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); formCount += ALCH.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); @@ -2430,10 +2465,10 @@ int32_t TES5File::Save(char * const &SaveName, std::vector &Ex // formCount += NAVI.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); formCount += CELL.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); formCount += WRLD.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod, FormIDHandler, CELL, indexer); - // formCount += DIAL.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += QUST.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += DIAL.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += QUST.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += IDLE.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += PACK.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += PACK.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += CSTY.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += LSCR.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); formCount += LVSP.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); @@ -2468,7 +2503,7 @@ int32_t TES5File::Save(char * const &SaveName, std::vector &Ex // formCount += SMBN.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += SMQN.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += SMEN.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); - // formCount += DLBR.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); + formCount += DLBR.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += MUST.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); // formCount += DLVW.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); formCount += WOOP.Write(writer, Expanders, expander, collapser, bMastersChanged, CloseMod); @@ -2517,24 +2552,24 @@ void TES5File::VisitAllRecords(RecordOp &op) ACTI.pool.VisitRecords(op); ADDN.pool.VisitRecords(op); ALCH.pool.VisitRecords(op); - // AMMO.pool.VisitRecords(op); + AMMO.pool.VisitRecords(op); ANIO.pool.VisitRecords(op); APPA.pool.VisitRecords(op); // ARMA.pool.VisitRecords(op); - // ARMO.pool.VisitRecords(op); + ARMO.pool.VisitRecords(op); ARTO.pool.VisitRecords(op); ASPC.pool.VisitRecords(op); ASTP.pool.VisitRecords(op); // AVIF.pool.VisitRecords(op); - // BOOK.pool.VisitRecords(op); + BOOK.pool.VisitRecords(op); // BPTD.pool.VisitRecords(op); // CAMS.pool.VisitRecords(op); // CELL { - // CELL.achr_pool.VisitRecords(op); + CELL.achr_pool.VisitRecords(op); // CELL.navm_pool.VisitRecords(op); // CELL.pgre_pool.VisitRecords(op); - // CELL.refr_pool.VisitRecords(op); + CELL.refr_pool.VisitRecords(op); CELL.cell_pool.VisitRecords(op); } // CLAS.pool.VisitRecords(op); @@ -2542,19 +2577,19 @@ void TES5File::VisitAllRecords(RecordOp &op) // CLMT.pool.VisitRecords(op); // COBJ.pool.VisitRecords(op); COLL.pool.VisitRecords(op); - // CONT.pool.VisitRecords(op); + CONT.pool.VisitRecords(op); // CPTH.pool.VisitRecords(op); // CSTY.pool.VisitRecords(op); // DEBR.pool.VisitRecords(op); // DIAL { - // DIAL.info_pool.VisitRecords(op); - // DIAL.dial_pool.VisitRecords(op); + DIAL.info_pool.VisitRecords(op); + DIAL.dial_pool.VisitRecords(op); } - // DLBR.pool.VisitRecords(op); + DLBR.pool.VisitRecords(op); // DLVW.pool.VisitRecords(op); // DOBJ.pool.VisitRecords(op); - // DOOR.pool.VisitRecords(op); + DOOR.pool.VisitRecords(op); // DUAL.pool.VisitRecords(op); // ECZN.pool.VisitRecords(op); // EFSH.pool.VisitRecords(op); @@ -2562,13 +2597,13 @@ void TES5File::VisitAllRecords(RecordOp &op) EQUP.pool.VisitRecords(op); // EXPL.pool.VisitRecords(op); // EYES.pool.VisitRecords(op); - // FACT.pool.VisitRecords(op); - // FLOT.pool.VisitRecords(op); + FACT.pool.VisitRecords(op); + FLOR.pool.VisitRecords(op); // FLST.pool.VisitRecords(op); // FSTP.pool.VisitRecords(op); // FSTS.pool.VisitRecords(op); - // FURN.pool.VisitRecords(op); - // GLOB.pool.VisitRecords(op); + FURN.pool.VisitRecords(op); + GLOB.pool.VisitRecords(op); // GMST.pool.VisitRecords(op); // GRAS.pool.VisitRecords(op); // HAZD.pool.VisitRecords(op); @@ -2577,7 +2612,7 @@ void TES5File::VisitAllRecords(RecordOp &op) // IMAD.pool.VisitRecords(op); // IMGS.pool.VisitRecords(op); // INFO - in DIAL - // INGR.pool.VisitRecords(op); + INGR.pool.VisitRecords(op); // IPCT.pool.VisitRecords(op); // IPDS.pool.VisitRecords(op); // KEYM.pool.VisitRecords(op); @@ -2586,7 +2621,7 @@ void TES5File::VisitAllRecords(RecordOp &op) // LCRT.pool.VisitRecords(op); // LCTN.pool.VisitRecords(op); // LGTM.pool.VisitRecords(op); - // LIGH.pool.VisitRecords(op); + LIGH.pool.VisitRecords(op); // LSCR.pool.VisitRecords(op); LTEX.pool.VisitRecords(op); LVLI.pool.VisitRecords(op); @@ -2596,21 +2631,21 @@ void TES5File::VisitAllRecords(RecordOp &op) MATT.pool.VisitRecords(op); // MESG.pool.VisitRecords(op); // MGEF.pool.VisitRecords(op); - // MISC.pool.VisitRecords(op); + MISC.pool.VisitRecords(op); // MOVT.pool.VisitRecords(op); // MSTT.pool.VisitRecords(op); // MUSC.pool.VisitRecords(op); // MUST.pool.VisitRecords(op); // NAVI.pool.VisitRecords(op); // NAVM - in CELL - // NPC_.pool.VisitRecords(op); + NPC_.pool.VisitRecords(op); OTFT.pool.VisitRecords(op); - // PACK.pool.VisitRecords(op); + PACK.pool.VisitRecords(op); // PERK.pool.VisitRecords(op); // PGRE - in CELL // PHZD.pool.VisitRecords(op); // in CELL? // PROJ.pool.VisitRecords(op); - // QUST.pool.VisitRecords(op); + QUST.pool.VisitRecords(op); // RACE.pool.VisitRecords(op); // REFR - in CELL // REGN.pool.VisitRecords(op); @@ -2628,7 +2663,7 @@ void TES5File::VisitAllRecords(RecordOp &op) // SNDR.pool.VisitRecords(op); // SOPM.pool.VisitRecords(op); // SOUN.pool.VisitRecords(op); - // SPEL.pool.VisitRecords(op); + SPEL.pool.VisitRecords(op); // SPGD.pool.VisitRecords(op); // STAT.pool.VisitRecords(op); // TACT.pool.VisitRecords(op); @@ -2636,7 +2671,7 @@ void TES5File::VisitAllRecords(RecordOp &op) TXST.pool.VisitRecords(op); VTYP.pool.VisitRecords(op); // WATR.pool.VisitRecords(op); - // WEAP.pool.VisitRecords(op); + WEAP.pool.VisitRecords(op); WOOP.pool.VisitRecords(op); // WRLD { @@ -2682,7 +2717,7 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) ALCH.pool.VisitRecords(op); break; case REV32(AMMO): - // AMMO.pool.VisitRecords(op); + AMMO.pool.VisitRecords(op); break; case REV32(ANIO): ANIO.pool.VisitRecords(op); @@ -2694,7 +2729,7 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // ARMA.pool.VisitRecords(op); break; case REV32(ARMO): - // ARMO.pool.VisitRecords(op); + ARMO.pool.VisitRecords(op); break; case REV32(ARTO): ARTO.pool.VisitRecords(op); @@ -2709,7 +2744,7 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // AVIF.pool.VisitRecords(op); break; case REV32(BOOK): - // BOOK.pool.VisitRecords(op); + BOOK.pool.VisitRecords(op); break; case REV32(BPTD): // BPTD.pool.VisitRecords(op); @@ -2743,7 +2778,7 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) COLL.pool.VisitRecords(op); break; case REV32(CONT): - // CONT.pool.VisitRecords(op); + CONT.pool.VisitRecords(op); break; case REV32(CPTH): // CPTH.pool.VisitRecords(op); @@ -2754,10 +2789,10 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) case REV32(DEBR): // DEBR.pool.VisitRecords(op);break; case REV32(DIAL): - // DIAL.dial_pool.VisitRecords(op); + DIAL.dial_pool.VisitRecords(op); break; case REV32(DLBR): - // DLBR.pool.VisitRecords(op); + DLBR.pool.VisitRecords(op); break; case REV32(DLVW): // DLVW.pool.VisitRecords(op); @@ -2766,7 +2801,7 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // DOBJ.pool.VisitRecords(op); break; case REV32(DOOR): - // DOOR.pool.VisitRecords(op); + DOOR.pool.VisitRecords(op); break; case REV32(DUAL): // DUAL.pool.VisitRecords(op); @@ -2790,10 +2825,10 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // EYES.pool.VisitRecords(op); break; case REV32(FACT): - // FACT.pool.VisitRecords(op); + FACT.pool.VisitRecords(op); break; - case REV32(FLOT): - // FLOT.pool.VisitRecords(op); + case REV32(FLOR): + FLOR.pool.VisitRecords(op); break; case REV32(FLST): // FLST.pool.VisitRecords(op); @@ -2805,10 +2840,10 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // FSTS.pool.VisitRecords(op); break; case REV32(FURN): - // FURN.pool.VisitRecords(op); + FURN.pool.VisitRecords(op); break; case REV32(GLOB): - // GLOB.pool.VisitRecords(op); + GLOB.pool.VisitRecords(op); break; case REV32(GMST): // GMST.pool.VisitRecords(op); @@ -2832,10 +2867,10 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // IMGS.pool.VisitRecords(op); break; case REV32(INFO): - // DIAL.info_pool.VisitRecords(op); + DIAL.info_pool.VisitRecords(op); break; case REV32(INGR): - // INGR.pool.VisitRecords(op); + INGR.pool.VisitRecords(op); break; case REV32(IPCT): // IPCT.pool.VisitRecords(op); @@ -2844,7 +2879,7 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // IPDS.pool.VisitRecords(op); break; case REV32(KEYM): - // KEYM.pool.VisitRecords(op); + KEYM.pool.VisitRecords(op); break; case REV32(KYWD): KYWD.pool.VisitRecords(op); @@ -2862,7 +2897,7 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // LGTM.pool.VisitRecords(op); break; case REV32(LIGH): - // LIGH.pool.VisitRecords(op); + LIGH.pool.VisitRecords(op); break; case REV32(LSCR): // LSCR.pool.VisitRecords(op); @@ -2892,7 +2927,7 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // MGEF.pool.VisitRecords(op); break; case REV32(MISC): - // MISC.pool.VisitRecords(op); + MISC.pool.VisitRecords(op); break; case REV32(MOVT): // MOVT.pool.VisitRecords(op); @@ -2913,13 +2948,13 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // CELL.navm_pool.VisitRecords(op); break; case REV32(NPC_): - // NPC_.pool.VisitRecords(op); + NPC_.pool.VisitRecords(op); break; case REV32(OTFT): OTFT.pool.VisitRecords(op); break; case REV32(PACK): - // PACK.pool.VisitRecords(op); + PACK.pool.VisitRecords(op); break; case REV32(PERK): // PERK.pool.VisitRecords(op); @@ -2934,7 +2969,7 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // PROJ.pool.VisitRecords(op); break; case REV32(QUST): - // QUST.pool.VisitRecords(op); + QUST.pool.VisitRecords(op); break; case REV32(RACE): // RACE.pool.VisitRecords(op); @@ -2988,7 +3023,7 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // SOUN.pool.VisitRecords(op); break; case REV32(SPEL): - // SPEL.pool.VisitRecords(op); + SPEL.pool.VisitRecords(op); break; case REV32(SPGD): // SPGD.pool.VisitRecords(op); @@ -3012,7 +3047,7 @@ void TES5File::VisitRecords(const uint32_t &RecordType, RecordOp &op) // WATR.pool.VisitRecords(op); break; case REV32(WEAP): - // WEAP.pool.VisitRecords(op); + WEAP.pool.VisitRecords(op); break; case REV32(WOOP): WOOP.pool.VisitRecords(op); diff --git a/src/Skyrim/TES5File.h b/src/Skyrim/TES5File.h index 058f842..58e901b 100644 --- a/src/Skyrim/TES5File.h +++ b/src/Skyrim/TES5File.h @@ -45,34 +45,34 @@ #include "Records/ACTIRecord.h" #include "Records/ADDNRecord.h" #include "Records/ALCHRecord.h" -// #include "Records/AMMORecord.h" +#include "Records/AMMORecord.h" #include "Records/ANIORecord.h" #include "Records/APPARecord.h" // #include "Records/ARMARecord.h" -// #include "Records/ARMORecord.h" +#include "Records/ARMORecord.h" #include "Records/ARTORecord.h" #include "Records/ASPCRecord.h" #include "Records/ASTPRecord.h" // #include "Records/AVIFRecord.h" -// #include "Records/BOOKRecord.h" +#include "Records/BOOKRecord.h" // #include "Records/BPTDRecord.h" // #include "Records/CAMSRecord.h" #include "Records/CELLRecord.h" // #include "Records/CLASRecord.h" // #include "Records/CLDCRecord.h" // Empty GRUP // #include "Records/CLFMRecord.h" -// #include "Records/CLMTRecord.h" +#include "Records/CLMTRecord.h" // #include "Records/COBJRecord.h" #include "Records/COLLRecord.h" -// #include "Records/CONTRecord.h" +#include "Records/CONTRecord.h" // #include "Records/CPTHRecord.h" // #include "Records/CSTYRecord.h" // #include "Records/DEBRRecord.h" -// #include "Records/DIALRecord.h" -// #include "Records/DLBRRecord.h" +#include "Records/DIALRecord.h" +#include "Records/DLBRRecord.h" // #include "Records/DLVWRecord.h" // #include "Records/DOBJRecord.h" -// #include "Records/DOORRecord.h" +#include "Records/DOORRecord.h" // #include "Records/DUALRecord.h" // #include "Records/ECZNRecord.h" // #include "Records/EFSHRecord.h" @@ -80,13 +80,13 @@ #include "Records/EQUPRecord.h" // #include "Records/EXPLRecord.h" // #include "Records/EYESRecord.h" -// #include "Records/FACTRecord.h" -// #include "Records/FLORRecord.h" +#include "Records/FACTRecord.h" +#include "Records/FLORRecord.h" // #include "Records/FLSTRecord.h" // #include "Records/FSTPRecord.h" // #include "Records/FSTSRecord.h" -// #include "Records/FURNRecord.h" -// #include "Records/GLOBRecord.h" +#include "Records/FURNRecord.h" +#include "Records/GLOBRecord.h" // #include "Records/GMSTRecord.h" // #include "Records/GRASRecord.h" // #include "Records/HAIRRecord.h" // Empty GRUP @@ -96,15 +96,15 @@ // #include "Records/IDLMRecord.h" // #include "Records/IMADRecord.h" // #include "Records/IMGSRecord.h" -// #include "Records/INGRRecord.h" +#include "Records/INGRRecord.h" // #include "Records/IPCTRecord.h" // #include "Records/IPDSRecord.h" -// #include "Records/KEYMRecord.h" +#include "Records/KEYMRecord.h" #include "Records/KYWDRecord.h" // #include "Records/LCRTRecord.h" // #include "Records/LCTNRecord.h" // #include "Records/LGTMRecord.h" -// #include "Records/LIGHRecord.h" +#include "Records/LIGHRecord.h" // #include "Records/LSCRRecord.h" #include "Records/LTEXRecord.h" #include "Records/LVLIRecord.h" @@ -113,20 +113,20 @@ // #include "Records/MATORecord.h" #include "Records/MATTRecord.h" // #include "Records/MESGRecord.h" -// #include "Records/MGEFRecord.h" -// #include "Records/MISCRecord.h" +#include "Records/MGEFRecord.h" +#include "Records/MISCRecord.h" // #include "Records/MOVTRecord.h" // #include "Records/MSTTRecord.h" // #include "Records/MUSCRecord.h" // #include "Records/MUSTRecord.h" // #include "Records/NAVIRecord.h" -// #include "Records/NPC_Record.h" +#include "Records/NPC_Record.h" #include "Records/OTFTRecord.h" -// #include "Records/PACKRecord.h" +#include "Records/PACKRecord.h" // #include "Records/PERKRecord.h" // #include "Records/PROJRecord.h" // #include "Records/PWATRecord.h" // Empty GRUP -// #include "Records/QUSTRecord.h" + #include "Records/QUSTRecord.h" // #include "Records/RACERecord.h" // #include "Records/REGNRecord.h" // #include "Records/RELARecord.h" @@ -136,9 +136,9 @@ // #include "Records/SCENRecord.h" // #include "Records/SCOLRecord.h" // Empty GRUP // #include "Records/SCPTRecord.h" -// #include "Records/SCRLRecord.h" +#include "Records/SCRLRecord.h" #include "Records/SHOURecord.h" -// #include "Records/SLGMRecord.h" +#include "Records/SLGMRecord.h" // #include "Records/SMBNRecord.h" // #include "Records/SMENRecord.h" // #include "Records/SMQNRecord.h" @@ -146,7 +146,7 @@ // #include "Records/SNDRRecord.h" // #include "Records/SOPMRecord.h" // #include "Records/SOUNRecord.h" -// #include "Records/SPELRecord.h" +#include "Records/SPELRecord.h" // #include "Records/SPGDRecord.h" // #include "Records/STATRecord.h" // #include "Records/TACTRecord.h" @@ -154,10 +154,10 @@ #include "Records/TXSTRecord.h" #include "Records/VTYPRecord.h" // #include "Records/WATRRecord.h" -// #include "Records/WEAPRecord.h" +#include "Records/WEAPRecord.h" #include "Records/WOOPRecord.h" #include "Records/WRLDRecord.h" -// #include "Records/WTHRRecord.h" +#include "Records/WTHRRecord.h" // Helper macros @@ -174,34 +174,34 @@ class TES5File : public ModFile GRUP(ACTI); GRUP(ADDN); GRUP(ALCH); - // GRUP(AMMO); + GRUP(AMMO); GRUP(ANIO); GRUP(APPA); // GRUP(ARMA); - // GRUP(ARMO); + GRUP(ARMO); GRUP(ARTO); GRUP(ASPC); GRUP(ASTP); // GRUP(AVIF); - // GRUP(BOOK); + GRUP(BOOK); // GRUP(BPTD); // GRUP(CAMS); GRUP(CELL); // GRUP(CLAS); // GRUP(CLDC); // Empty GRUP // GRUP(CLFM); - // GRUP(CLMT); + GRUP(CLMT); // GRUP(COBJ); GRUP(COLL); - // GRUP(CONT); + GRUP(CONT); // GRUP(CPTH); // GRUP(CSTY); // GRUP(DEBR); - // GRUP(DIAL); - // GRUP(DLBR); + GRUP(DIAL); + GRUP(DLBR); // GRUP(DLVW); // GRUP(DOBJ); - // GRUP(DOOR); + GRUP(DOOR); // GRUP(DUAL); // GRUP(ECZN); // GRUP(EFSH); @@ -209,13 +209,13 @@ class TES5File : public ModFile GRUP(EQUP); // GRUP(EXPL); // GRUP(EYES); - // GRUP(FACT); - // GRUP(FLOR); + GRUP(FACT); + GRUP(FLOR); // GRUP(FLST); // GRUP(FSTP); // GRUP(FSTS); - // GRUP(FURN); - // GRUP(GLOB); + GRUP(FURN); + GRUP(GLOB); // GRUP_EDID(GMST); // GRUP(GRAS); // GRUP(HAIR); // Empty GRUP @@ -225,15 +225,15 @@ class TES5File : public ModFile // GRUP(IDLM); // GRUP(IMAD); // GRUP(IMGS); - // GRUP(INGR); + GRUP(INGR); // GRUP(IPCT); // GRUP(IPDS); - // GRUP(KEYM); + GRUP(KEYM); GRUP(KYWD); // GRUP(LCRT); // GRUP(LCTN); // GRUP(LGTM); - // GRUP(LIGH); + GRUP(LIGH); // GRUP(LSCR); GRUP(LTEX); GRUP(LVLI); @@ -242,20 +242,20 @@ class TES5File : public ModFile // GRUP(MATO); GRUP(MATT); // GRUP(MESG); - // GRUP(MGEF); - // GRUP(MISC); + GRUP(MGEF); + GRUP(MISC); // GRUP(MOVT); // GRUP(MSTT); // GRUP(MUSC); // GRUP(MUST); // GRUP(NAVI); - // GRUP(NPC_); + GRUP(NPC_); GRUP(OTFT); - // GRUP(PACK); + GRUP(PACK); // GRUP(PERK); // GRUP(PROJ); // GRUP(PWAT); // Empty GRUP - // GRUP(QUST); + GRUP(QUST); // GRUP(RACE); // GRUP(REGN); // GRUP(RELA); @@ -265,9 +265,9 @@ class TES5File : public ModFile // GRUP(SCEN); // GRUP(SCOL); // Empty GRUP // GRUP(SCPT); - // GRUP(SCRL); + GRUP(SCRL); GRUP(SHOU); - // GRUP(SLGM); + GRUP(SLGM); // GRUP(SMBN); // GRUP(SMEN); // GRUP(SMQN); @@ -275,7 +275,7 @@ class TES5File : public ModFile // GRUP(SNDR); // GRUP(SOPM); // GRUP(SOUN); - // GRUP(SPEL); + GRUP(SPEL); // GRUP(SPGD); // GRUP(STAT); // GRUP(TACT); @@ -283,10 +283,10 @@ class TES5File : public ModFile GRUP(TXST); GRUP(VTYP); // GRUP(WATR); - // GRUP(WEAP); + GRUP(WEAP); GRUP(WOOP); GRUP(WRLD); - // GRUP(WTHR); + GRUP(WTHR); TES5File(Collection *_Parent, char * FileName, char * ModName, const uint32_t _flags); ~TES5File(); @@ -294,7 +294,7 @@ class TES5File : public ModFile Record * GetTES4(); int32_t LoadTES4(); int32_t Load(RecordOp &read_parser, RecordOp &indexer, std::vector &Expanders, std::vector &DeletedRecords); - uint32_t GetNumRecords(const uint32_t &RecordType); + size_t GetNumRecords(const uint32_t &RecordType); char * GetMasterName(uint8_t &CollapsedIndex); Record * CreateRecord(const uint32_t &RecordType, char * const &RecordEditorID, Record *&SourceRecord, Record *&ParentRecord, CreationFlags &options); int32_t DeleteRecord(Record *&curRecord, RecordOp &deindexer); diff --git a/src/Skyrim/VMAD/Alias.cpp b/src/Skyrim/VMAD/Alias.cpp index c3c8b63..72a6739 100644 --- a/src/Skyrim/VMAD/Alias.cpp +++ b/src/Skyrim/VMAD/Alias.cpp @@ -77,7 +77,7 @@ void Alias::Read(unsigned char *&buffer, const int16_t &version, const int16_t & buffer += 4; } // version, objFormat - buffer += 8; + buffer += 4; // scriptCount uint16_t count = *(uint16_t *)buffer; buffer += 2; @@ -109,9 +109,9 @@ void Alias::Write(FileWriter &writer) writer.record_write(&version, sizeof(version)); int16_t objFormat = 2; writer.record_write(&objFormat, sizeof(objFormat)); - uint16_t count = static_cast(scripts.size()); + uint16_t count = (uint16_t)scripts.size(); writer.record_write(&count, sizeof(count)); - for (uint16_t i = 0; i < count; ++i) + for (size_t i = 0; i < count; ++i) scripts[i]->Write(writer); } diff --git a/src/Skyrim/VMAD/Fragment/FragmentINFO.cpp b/src/Skyrim/VMAD/Fragment/FragmentINFO.cpp index f30137c..796133c 100644 --- a/src/Skyrim/VMAD/Fragment/FragmentINFO.cpp +++ b/src/Skyrim/VMAD/Fragment/FragmentINFO.cpp @@ -54,7 +54,18 @@ void FragmentINFO::Read(unsigned char *&buffer, const bool &CompressedOnDisk) unk1 = *(uint8_t *)buffer; buffer += 1; // fragmentCount - uint8_t count = *(uint8_t *)buffer; + this->flags = *(uint8_t *)buffer; + + uint8_t count = 0; + + if ((flags & 1) == 1) { + count++; + } + + if ((flags & 2) == 2) { + count++; + } + buffer += 1; // fileName uint16_t nameSize = *(uint16_t *)buffer; @@ -72,12 +83,13 @@ void FragmentINFO::Read(unsigned char *&buffer, const bool &CompressedOnDisk) nameSize = *(uint16_t *)buffer; buffer += 2; f->fragmentName.Read(buffer, nameSize, CompressedOnDisk); + fragments.push_back(f); } } uint32_t FragmentINFO::GetSize() const { - // unk1 + fragmentCount + fileNameSize + // unk1 + flags + fileNameSize uint32_t total = sizeof(uint8_t) + sizeof(uint8_t) + sizeof(uint16_t); total += fileName.GetSize(); for (uint8_t i = 0; i < fragments.size(); ++i) @@ -93,10 +105,11 @@ uint32_t FragmentINFO::GetSize() const void FragmentINFO::Write(FileWriter &writer) const { writer.record_write(&unk1, sizeof(unk1)); - uint16_t count = static_cast(fragments.size()); - writer.record_write(&count, sizeof(count)); + writer.record_write(&this->flags, sizeof(this->flags)); fileName.Write16(writer); - for (uint16_t i = 0; i < count; ++i) + size_t count = fragments.size(); + + for (size_t i = 0; i < count; ++i) { writer.record_write(&(fragments[i]->unk1), sizeof(uint8_t)); fragments[i]->scriptName.Write16(writer); @@ -109,6 +122,11 @@ bool FragmentINFO::equals(const Fragments *other) const try { const FragmentINFO *o = reinterpret_cast(other); + + if (flags != o->flags) { + return false; + } + if (fragments.size() != o->fragments.size()) return false; for (uint16_t i = 0; i < fragments.size(); ++i) @@ -133,6 +151,7 @@ FragmentINFO & FragmentINFO::operator = (const FragmentINFO &other) { unk1 = other.unk1; fileName = other.fileName; + flags = other.flags; for (uint16_t i = 0; i < fragments.size(); ++i) delete fragments[i]; diff --git a/src/Skyrim/VMAD/Fragment/FragmentINFO.h b/src/Skyrim/VMAD/Fragment/FragmentINFO.h index bdc4a01..e5e5c84 100644 --- a/src/Skyrim/VMAD/Fragment/FragmentINFO.h +++ b/src/Skyrim/VMAD/Fragment/FragmentINFO.h @@ -43,6 +43,8 @@ class FragmentINFO : public Fragments public: std::vector fragments; + uint8_t flags; + FragmentINFO(); virtual ~FragmentINFO(); diff --git a/src/Skyrim/VMAD/Fragment/FragmentPERK.cpp b/src/Skyrim/VMAD/Fragment/FragmentPERK.cpp index 1e4b002..8ddd4ff 100644 --- a/src/Skyrim/VMAD/Fragment/FragmentPERK.cpp +++ b/src/Skyrim/VMAD/Fragment/FragmentPERK.cpp @@ -125,9 +125,9 @@ void FragmentPERK::Write(FileWriter &writer) const { writer.record_write(&unk1, sizeof(unk1)); fileName.Write16(writer); - uint16_t count = static_cast(fragments.size()); + uint16_t count = (uint16_t)fragments.size(); writer.record_write(&count, sizeof(count)); - for (uint16_t i = 0; i < count; ++i) + for (size_t i = 0; i < count; ++i) { writer.record_write(&(fragments[i]->index), sizeof(uint16_t)); writer.record_write(&(fragments[i]->unk1), sizeof(uint16_t)); diff --git a/src/Skyrim/VMAD/Fragment/FragmentQUST.cpp b/src/Skyrim/VMAD/Fragment/FragmentQUST.cpp index a9e9812..a2f8e0f 100644 --- a/src/Skyrim/VMAD/Fragment/FragmentQUST.cpp +++ b/src/Skyrim/VMAD/Fragment/FragmentQUST.cpp @@ -147,10 +147,10 @@ uint32_t FragmentQUST::GetSize() const void FragmentQUST::Write(FileWriter &writer) const { writer.record_write(&unk1, sizeof(unk1)); - uint16_t count = static_cast(fragments.size()); - writer.record_write(&count, sizeof(count)); + uint16_t count = (uint16_t)fragments.size(); + writer.record_write(&count, sizeof(uint16_t)); fileName.Write16(writer); - for (uint16_t i = 0; i < count; ++i) + for (size_t i = 0; i < count; ++i) { writer.record_write(&(fragments[i]->stage), sizeof(uint16_t)); writer.record_write(&(fragments[i]->unk1), sizeof(uint16_t)); @@ -159,8 +159,8 @@ void FragmentQUST::Write(FileWriter &writer) const fragments[i]->scriptName.Write16(writer); fragments[i]->fragmentName.Write16(writer); } - count = static_cast(aliases.size()); - writer.record_write(&count, sizeof(count)); + count = aliases.size(); + writer.record_write(&count, sizeof(uint16_t)); for (uint16_t i = 0; i < count; ++i) aliases[i]->Write(writer); } diff --git a/src/Skyrim/VMAD/Fragment/FragmentSCEN.cpp b/src/Skyrim/VMAD/Fragment/FragmentSCEN.cpp index 51e4472..dc08ad4 100644 --- a/src/Skyrim/VMAD/Fragment/FragmentSCEN.cpp +++ b/src/Skyrim/VMAD/Fragment/FragmentSCEN.cpp @@ -183,9 +183,9 @@ void FragmentSCEN::Write(FileWriter &writer) const beginFragment->scriptName.Write16(writer); beginFragment->fragmentName.Write16(writer); } - uint16_t count = static_cast(phases.size()); - writer.record_write(&count, sizeof(count)); - for (uint16_t i = 0; i < count; ++i) + uint16_t count = (uint16_t)phases.size(); + writer.record_write(&count, sizeof(uint16_t)); + for (size_t i = 0; i < count; ++i) { writer.record_write(&(phases[i]->flags), sizeof(uint8_t)); writer.record_write(&(phases[i]->index), sizeof(uint8_t)); diff --git a/src/Skyrim/VMAD/Property/PropertyBool.cpp b/src/Skyrim/VMAD/Property/PropertyBool.cpp index 8f4e764..9b21eb7 100644 --- a/src/Skyrim/VMAD/Property/PropertyBool.cpp +++ b/src/Skyrim/VMAD/Property/PropertyBool.cpp @@ -52,6 +52,8 @@ void PropertyBool::Read(unsigned char *&buffer, const int16_t &version, const in void PropertyBool::Write(FileWriter &writer) { + //Workaround for a strange bug - type is resetted to 0x00 even though we explicitly set it to 0x01. + this->type = eBool; Property::Write(writer); uint8_t b = value ? 1 : 0; writer.record_write(&b, sizeof(b)); @@ -90,11 +92,13 @@ PropertyBool & PropertyBool::operator = (const PropertyBool &other) uint32_t PropertyBoolArray::GetSize() const { // common + itemCount + items - return Property::GetSize() + sizeof(uint32_t) + (size() * sizeof(uint8_t)); + return Property::GetSize() + sizeof(uint32_t) + ((uint32_t)size() * sizeof(uint8_t)); } void PropertyBoolArray::Read(unsigned char *&buffer, const int16_t &version, const int16_t &objFormat, const bool &CompressedOnDisk) { + Property::Read(buffer, version, objFormat, CompressedOnDisk); + uint32_t count = *(uint32_t *)buffer; buffer += 4; @@ -109,9 +113,9 @@ void PropertyBoolArray::Read(unsigned char *&buffer, const int16_t &version, con void PropertyBoolArray::Write(FileWriter &writer) { Property::Write(writer); - uint32_t count = size(); - writer.record_write(&count, sizeof(count)); - for (uint32_t i = 0; i < count; ++i) + size_t count = size(); + writer.record_write(&count, sizeof(uint32_t)); + for (size_t i = 0; i < count; ++i) { uint8_t b = (*this)[i] ? 1 : 0; writer.record_write(&b, sizeof(b)); diff --git a/src/Skyrim/VMAD/Property/PropertyFloat.cpp b/src/Skyrim/VMAD/Property/PropertyFloat.cpp index 4faef87..1eadcfd 100644 --- a/src/Skyrim/VMAD/Property/PropertyFloat.cpp +++ b/src/Skyrim/VMAD/Property/PropertyFloat.cpp @@ -52,6 +52,8 @@ void PropertyFloat::Read(unsigned char *&buffer, const int16_t &version, const i void PropertyFloat::Write(FileWriter &writer) { + //Workaround for a strange bug - type is resetted to 0x00 even though we explicitly set it to 0x01. + this->type = eFloat; Property::Write(writer); writer.record_write(&value, sizeof(value)); } @@ -88,7 +90,7 @@ PropertyFloat & PropertyFloat::operator = (const PropertyFloat &other) uint32_t PropertyFloatArray::GetSize() const { // common + itemCount + items - return Property::GetSize() + sizeof(uint32_t) + (size() * sizeof(float)); + return Property::GetSize() + sizeof(uint32_t) + ((uint32_t)size() * sizeof(float)); } void PropertyFloatArray::Read(unsigned char *&buffer, const int16_t &version, const int16_t &objFormat, const bool &CompressedOnDisk) @@ -104,8 +106,8 @@ void PropertyFloatArray::Read(unsigned char *&buffer, const int16_t &version, co void PropertyFloatArray::Write(FileWriter &writer) { Property::Write(writer); - uint32_t count = size(); - writer.record_write(&count, sizeof(count)); + size_t count = size(); + writer.record_write(&count, sizeof(uint32_t)); writer.record_write(&((*this)[0]), count * sizeof(float)); } diff --git a/src/Skyrim/VMAD/Property/PropertyInt.cpp b/src/Skyrim/VMAD/Property/PropertyInt.cpp index 3257ea2..48e6012 100644 --- a/src/Skyrim/VMAD/Property/PropertyInt.cpp +++ b/src/Skyrim/VMAD/Property/PropertyInt.cpp @@ -52,6 +52,8 @@ void PropertyInt::Read(unsigned char *&buffer, const int16_t &version, const int void PropertyInt::Write(FileWriter &writer) { + //Workaround for a strange bug - type is resetted to 0x00 even though we explicitly set it to 0x01. + this->type = eInt; Property::Write(writer); writer.record_write(&value, sizeof(value)); } @@ -88,7 +90,7 @@ PropertyInt & PropertyInt::operator = (const PropertyInt &other) uint32_t PropertyIntArray::GetSize() const { // common + itemCount + items - return Property::GetSize() + sizeof(uint32_t) + (size() * sizeof(int32_t)); + return Property::GetSize() + sizeof(uint32_t) + ((uint32_t)size() * sizeof(int32_t)); } void PropertyIntArray::Read(unsigned char *&buffer, const int16_t &version, const int16_t &objFormat, const bool &CompressedOnDisk) @@ -104,8 +106,8 @@ void PropertyIntArray::Read(unsigned char *&buffer, const int16_t &version, cons void PropertyIntArray::Write(FileWriter &writer) { Property::Write(writer); - uint32_t count = size(); - writer.record_write(&count, sizeof(count)); + size_t count = size(); + writer.record_write(&count, sizeof(uint32_t)); writer.record_write(&((*this)[0]), count * sizeof(int32_t)); } diff --git a/src/Skyrim/VMAD/Property/PropertyObject.cpp b/src/Skyrim/VMAD/Property/PropertyObject.cpp index 1becebb..ce50a9d 100644 --- a/src/Skyrim/VMAD/Property/PropertyObject.cpp +++ b/src/Skyrim/VMAD/Property/PropertyObject.cpp @@ -67,7 +67,11 @@ void PropertyObject::Write(FileWriter &writer) { // Always in format 2 uint16_t null = 0; + + //Workaround for a strange bug - type is resetted to 0x00 even though we explicitly set it to 0x01. + this->type = eObject; Property::Write(writer); + writer.record_write(&null, sizeof(null)); writer.record_write(&aliasId, sizeof(aliasId)); writer.record_write(&formId, sizeof(formId)); @@ -103,6 +107,7 @@ PropertyObject & PropertyObject::operator = (const PropertyObject &other) { name = other.name; // type - same already + type = other.type; status = other.status; formId = other.formId; aliasId = other.aliasId; @@ -112,7 +117,7 @@ PropertyObject & PropertyObject::operator = (const PropertyObject &other) uint32_t PropertyObjectArray::GetSize() const { // common + itemCount + itemCount * (formId + aliasId + null) - return Property::GetSize() + sizeof(uint32_t)+(size() * 8); + return Property::GetSize() + sizeof(uint32_t)+((uint32_t)size() * 8); } void PropertyObjectArray::Read(unsigned char *&buffer, const int16_t &version, const int16_t &objFormat, const bool &CompressedOnDisk) @@ -147,10 +152,10 @@ void PropertyObjectArray::Read(unsigned char *&buffer, const int16_t &version, c void PropertyObjectArray::Write(FileWriter &writer) { Property::Write(writer); - uint32_t count = size(); + size_t count = size(); uint16_t null = 0; - writer.record_write(&count, sizeof(count)); - for (uint32_t i = 0; i < count; ++i) + writer.record_write(&count, sizeof(uint32_t)); + for (size_t i = 0; i < count; ++i) { // always write format 2 writer.record_write(&null, sizeof(null)); diff --git a/src/Skyrim/VMAD/Property/PropertyString.cpp b/src/Skyrim/VMAD/Property/PropertyString.cpp index 7407b82..b968ea6 100644 --- a/src/Skyrim/VMAD/Property/PropertyString.cpp +++ b/src/Skyrim/VMAD/Property/PropertyString.cpp @@ -53,6 +53,8 @@ void PropertyString::Read(unsigned char *&buffer, const int16_t &version, const void PropertyString::Write(FileWriter &writer) { + //Workaround for a strange bug - type is resetted to 0x00 even though we explicitly set it to 0x01. + this->type = eString; Property::Write(writer); value.Write16(writer); } @@ -112,9 +114,9 @@ void PropertyStringArray::Read(unsigned char *&buffer, const int16_t &version, c void PropertyStringArray::Write(FileWriter &writer) { Property::Write(writer); - uint32_t count = size(); - writer.record_write(&count, sizeof(count)); - for (uint32_t i = 0; i < count; ++i) + size_t count = size(); + writer.record_write(&count, sizeof(uint32_t)); + for (size_t i = 0; i < count; ++i) (*this)[i].Write16(writer); } diff --git a/src/Skyrim/VMAD/Script.cpp b/src/Skyrim/VMAD/Script.cpp index 706efa7..7c6300d 100644 --- a/src/Skyrim/VMAD/Script.cpp +++ b/src/Skyrim/VMAD/Script.cpp @@ -153,9 +153,9 @@ void Script::Write(FileWriter &writer) { name.Write16(writer); writer.record_write(&status, sizeof(status)); - uint16_t count = static_cast(properties.size()); + uint16_t count = (uint16_t)properties.size(); writer.record_write(&count, sizeof(count)); - for (uint16_t i = 0; i < count; ++i) + for (size_t i = 0; i < count; ++i) properties[i]->Write(writer); } diff --git a/src/Skyrim/VMAD/Script.h b/src/Skyrim/VMAD/Script.h index a5e60e2..8b0aba5 100644 --- a/src/Skyrim/VMAD/Script.h +++ b/src/Skyrim/VMAD/Script.h @@ -45,6 +45,8 @@ class FormIDOp; class Script { public: + + //Should be NonNullStringRecord NonNullStringRecord name; uint8_t status; std::vector properties; diff --git a/src/Skyrim/VMAD/VMAD.cpp b/src/Skyrim/VMAD/VMAD.cpp index 8e40b87..a62eabb 100644 --- a/src/Skyrim/VMAD/VMAD.cpp +++ b/src/Skyrim/VMAD/VMAD.cpp @@ -157,8 +157,10 @@ void VMADRecord::Read(unsigned char *&buffer, const uint32_t &subSize, const uin void VMADRecord::Write(uint32_t _Type, FileWriter &writer) { - if (!IsLoaded()) - return; + + if (fragment == NULL && scripts.size() == 0) { + return; //Not needed - empty data. + } ReqWrite(_Type, writer); } @@ -176,11 +178,11 @@ void VMADRecord::ReqWrite(uint32_t _Type, FileWriter &writer) writer.record_write(&objFormat, 2); // scriptCount - uint16_t count = static_cast(scripts.size()); + size_t count = scripts.size(); writer.record_write(&count, 2); // scripts - for (uint16_t i = 0; i < count; ++i) + for (size_t i = 0; i < count; ++i) scripts[i]->Write(writer); // script fragments diff --git a/src/Skyrim/strip.py b/src/Skyrim/strip.py new file mode 100644 index 0000000..821eac3 --- /dev/null +++ b/src/Skyrim/strip.py @@ -0,0 +1,114 @@ +import os, glob + +def maxer(lines): + nums = [-1] + for line in lines: +## if line.lstrip()[:2] == '//': +## continue + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + nums.append(pos-i+2) + return max(nums) + +def spacer(line, maxsize): + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + g = 1 + while line[pos+g] == ' ': + g += 1 + line = line[:pos-i+1] + ' = ' + line[pos+g:] + pos = line.find('=') + return line[:pos] + ' ' * (maxsize - pos) + line[pos:] + return line +for infile in glob.glob('*.cpp~'): + os.remove(infile) +for infile in glob.glob('*.h~'): + os.remove(infile) +for infile in glob.glob('*.bak'): + os.remove(infile) +for infile in glob.glob('*.cpp'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() + +for infile in glob.glob('*.h'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() \ No newline at end of file diff --git a/src/TES4Record.cpp b/src/TES4Record.cpp index 4e21c1e..7c6207e 100644 --- a/src/TES4Record.cpp +++ b/src/TES4Record.cpp @@ -35,7 +35,7 @@ * ***** END LICENSE BLOCK ***** */ #include "Common.h" #include "TES4Record.h" -#include "Skyrim\SkyrimCommon.h" // StringLookups +#include "Skyrim/SkyrimCommon.h" // StringLookups #include "zlib.h" TES4Record::TES4HEDR::TES4HEDR(float _version, uint32_t _numRecords, uint32_t _nextObject): @@ -232,7 +232,7 @@ int32_t TES4Record::ParseRecord(unsigned char *buffer, unsigned char *end_buffer //printer("FileName = %s\n", FileName); printer(" TES4: %08X - Unknown subType = %04x [%c%c%c%c]\n", formID, subType, (subType >> 0) & 0xFF, (subType >> 8) & 0xFF, (subType >> 16) & 0xFF, (subType >> 24) & 0xFF); printer(" Size = %i\n", subSize); - printer(" CurPos = %04x\n\n", buffer - 6); + printer(" CurPos = %08x\n\n", buffer - 6); buffer = end_buffer; break; } @@ -251,7 +251,7 @@ int32_t TES4Record::WriteRecord(FileWriter &writer) uint8_t DATA[8] = {0}; switch(whichGame) { - case CB_OBLIVION: + case eIsOblivion: WRITE(HEDR); WRITE(OFST); WRITE(DELE); @@ -263,10 +263,10 @@ int32_t TES4Record::WriteRecord(FileWriter &writer) writer.record_write_subrecord(REV32(DATA), &DATA[0], sizeof(DATA)); } break; - case CB_FALLOUT3: + case eIsFallout3: printer("TES4Record::WriteRecord: Error - Unable to write TES4 record. Fallout 3 support not yet implemented.\n"); return -1; - case CB_FALLOUT_NEW_VEGAS: + case eIsFalloutNewVegas: WRITE(HEDR); WRITE(OFST); WRITE(DELE); @@ -280,7 +280,7 @@ int32_t TES4Record::WriteRecord(FileWriter &writer) WRITE(ONAM); WRITE(SCRN); break; - case CB_SKYRIM: + case eIsSkyrim: WRITE(HEDR); WRITE(OFST); WRITE(DELE); @@ -301,6 +301,16 @@ int32_t TES4Record::WriteRecord(FileWriter &writer) return -1; } +bool TES4Record::Read() +{ + if (whichGame == eIsFalloutNewVegas) + return ReadRecord(20); + else if (whichGame == eIsSkyrim) + return ReadRecord(20); + else + return ReadRecord(16); +} + uint32_t TES4Record::Write(FileWriter &writer, const bool &bMastersChanged, FormIDResolver &expander, FormIDResolver &collapser, std::vector &Expanders) { IsCompressed(false); @@ -319,12 +329,12 @@ uint32_t TES4Record::Write(FileWriter &writer, const bool &bMastersChanged, Form writer.file_write(&formID, 4); writer.file_write(&flagsUnk, 4); - if(whichGame == CB_FALLOUT_NEW_VEGAS) + if(whichGame == eIsFalloutNewVegas) { writer.file_write(&formVersion, 2); writer.file_write(&versionControl2[0], 2); } - else if(whichGame == CB_SKYRIM) + else if(whichGame == eIsSkyrim) { writer.file_write(&formVersion, 2); writer.file_write(&versionControl2[0], 2); @@ -338,9 +348,9 @@ uint32_t TES4Record::Write(FileWriter &writer, const bool &bMastersChanged, Form else Unload(); - if(whichGame == CB_FALLOUT_NEW_VEGAS) + if(whichGame == eIsFalloutNewVegas) return recSize + 24; - else if(whichGame == CB_SKYRIM) + else if(whichGame == eIsSkyrim) return recSize + 24; else return recSize + 20; diff --git a/src/TES4Record.h b/src/TES4Record.h index 00780f4..2792b2c 100644 --- a/src/TES4Record.h +++ b/src/TES4Record.h @@ -58,7 +58,7 @@ class TES4Record : public Record public: // Common - cb_game_type_t whichGame; + whichGameTypes whichGame; ReqSubRecord HEDR; //Header RawRecord OFST; //Unknown RawRecord DELE; //Unknown @@ -103,6 +103,7 @@ class TES4Record : public Record int32_t Unload(); int32_t WriteRecord(FileWriter &writer); uint32_t Write(FileWriter &writer, const bool &bMastersChanged, FormIDResolver &expander, FormIDResolver &collapser, std::vector &Expanders); + bool Read(); bool operator ==(const TES4Record &other) const; bool operator !=(const TES4Record &other) const; diff --git a/src/TES4RecordAPI.cpp b/src/TES4RecordAPI.cpp index e207449..b19262a 100644 --- a/src/TES4RecordAPI.cpp +++ b/src/TES4RecordAPI.cpp @@ -43,98 +43,98 @@ uint32_t TES4Record::GetFieldAttribute(FIELD_IDENTIFIERS, uint32_t WhichAttribut case 0: //recType return GetType(); case 1: //flags1 - return CB_UINT32_FLAG_FIELD; + return UINT32_FLAG_FIELD; case 2: //fid - return CB_MISSING_FIELD; + return MISSING_FIELD; case 3: //flags2 or versionControl1 for FNV switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD;// CB_UINT32_FLAG_FIELD; for Ob + return UINT8_ARRAY_FIELD;// UINT32_FLAG_FIELD; for Ob case 1: //fieldSize return 4; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 4: //eid - return CB_MISSING_FIELD; + return MISSING_FIELD; case 5: //version - return CB_FLOAT32_FIELD; + return FLOAT32_FIELD; case 6: //numRecords - return CB_UINT32_FIELD; + return UINT32_FIELD; case 7: //nextObject - return CB_UINT32_FIELD; + return UINT32_FIELD; case 8: //ofst_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return OFST.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 9: //dele_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return DELE.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 10: //author - return CB_STRING_FIELD; + return STRING_FIELD; case 11: //description - return CB_STRING_FIELD; + return STRING_FIELD; case 12: //masters switch(WhichAttribute) { case 0: //fieldType - return CB_ISTRING_ARRAY_FIELD; + return ISTRING_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)MAST.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 13: //DATA - return CB_JUNK_FIELD; + return JUNK_FIELD; //FNV Specific case 14: //formVersion - return CB_UINT16_FIELD; + return UINT16_FIELD; case 15: //versionControl2 switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return 2; default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 16: //overrides switch(WhichAttribute) { case 0: //fieldType - return CB_FORMID_ARRAY_FIELD; + return FORMID_ARRAY_FIELD; case 1: //fieldSize return (uint32_t)ONAM.value.size(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } case 17: //screenshot_p switch(WhichAttribute) { case 0: //fieldType - return CB_UINT8_ARRAY_FIELD; + return UINT8_ARRAY_FIELD; case 1: //fieldSize return SCRN.GetSize(); default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } default: - return CB_UNKNOWN_FIELD; + return UNKNOWN_FIELD; } } @@ -145,7 +145,7 @@ void * TES4Record::GetField(FIELD_IDENTIFIERS, void **FieldValues) case 1: //flags1 return &flags; case 3: //flags2 - if(whichGame == CB_OBLIVION) + if(whichGame == eIsOblivion) return &flagsUnk; else { diff --git a/src/Visitors.cpp b/src/Visitors.cpp index 13dfd03..33dc65f 100644 --- a/src/Visitors.cpp +++ b/src/Visitors.cpp @@ -137,19 +137,21 @@ bool FormIDSwapper::AcceptMGEF(uint32_t &curMgefCode) return stop; } -RecordIndexer::RecordIndexer(ModFile *_curModFile, EditorID_Map &_EditorID_Map, FormID_Map &_FormID_Map): +RecordIndexer::RecordIndexer(ModFile *_curModFile, EditorID_Map &_EditorID_Map, FormID_Map &_FormID_Map, EditorID_Map &EDIDIndex): RecordOp(), curModFile(_curModFile), EditorID_ModFile_Record(_EditorID_Map), - FormID_ModFile_Record(_FormID_Map) + FormID_ModFile_Record(_FormID_Map), + EDIDIndex(EDIDIndex) { // } -RecordIndexer::RecordIndexer(EditorID_Map &_EditorID_Map, FormID_Map &_FormID_Map): +RecordIndexer::RecordIndexer(EditorID_Map &_EditorID_Map, FormID_Map &_FormID_Map, EditorID_Map &EDIDIndex): RecordOp(), EditorID_ModFile_Record(_EditorID_Map), - FormID_ModFile_Record(_FormID_Map) + FormID_ModFile_Record(_FormID_Map), + EDIDIndex(EDIDIndex) { // } @@ -165,6 +167,11 @@ bool RecordIndexer::Accept(Record *&curRecord) FormID_ModFile_Record.insert(std::make_pair(curRecord->formID,curRecord)); if(curRecord->IsKeyedByEditorID() && curRecord->GetEditorIDKey() != NULL) //Should only be null on deleted records (they'll get indexed after being undeleted) EditorID_ModFile_Record.insert(std::make_pair(curRecord->GetEditorIDKey(),curRecord)); + + if (curRecord->GetEditorIDKey() != NULL) { + EDIDIndex.insert(std::make_pair(curRecord->GetEditorIDKey(), curRecord)); + } + return false; } diff --git a/src/Visitors.h b/src/Visitors.h index a4bcc11..4bdef67 100644 --- a/src/Visitors.h +++ b/src/Visitors.h @@ -91,12 +91,13 @@ class RecordIndexer : public RecordOp { private: EditorID_Map &EditorID_ModFile_Record; - FormID_Map &FormID_ModFile_Record; + EditorID_Map &EDIDIndex; + FormID_Map &FormID_ModFile_Record; ModFile *curModFile; public: - RecordIndexer(ModFile *_curModFile, EditorID_Map &_EditorID_Map, FormID_Map &_FormID_Map); - RecordIndexer(EditorID_Map &_EditorID_Map, FormID_Map &_FormID_Map); + RecordIndexer(ModFile *_curModFile, EditorID_Map &_EditorID_Map, FormID_Map &_FormID_Map, EditorID_Map &EDIDIndex); + RecordIndexer(EditorID_Map &_EditorID_Map, FormID_Map &_FormID_Map, EditorID_Map &EDIDIndex); ~RecordIndexer(); bool Accept(Record *&curRecord); diff --git a/src/licensecheck.py b/src/licensecheck.py new file mode 100644 index 0000000..464bd59 --- /dev/null +++ b/src/licensecheck.py @@ -0,0 +1,11 @@ +import os, glob + +for top, dirs, files in os.walk('./'): + for file in files: + if file.endswith('.h') or file.endswith('.cpp'): + infile = os.path.join(top, file) + f = open(infile) + contents = f.readlines() + f.close() + if 'BEGIN LICENSE BLOCK' not in contents[0]: + print infile diff --git a/src/linecount.py b/src/linecount.py new file mode 100644 index 0000000..831cb49 --- /dev/null +++ b/src/linecount.py @@ -0,0 +1,18 @@ +import os, glob +lineCount = 0 +for infile in glob.glob('*.cpp'): + f = open(infile) + contents = f.readlines() + f.close() + lineCount += len(contents) +## o = open(infile,'w') +## [o.write(l.rstrip() + '\n') for l in contents] +## o.close() + +for infile in glob.glob('*.h'): + f = open(infile) + contents = f.readlines() + f.close() + lineCount += len(contents) + +print lineCount \ No newline at end of file diff --git a/src/strip.py b/src/strip.py new file mode 100644 index 0000000..821eac3 --- /dev/null +++ b/src/strip.py @@ -0,0 +1,114 @@ +import os, glob + +def maxer(lines): + nums = [-1] + for line in lines: +## if line.lstrip()[:2] == '//': +## continue + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + nums.append(pos-i+2) + return max(nums) + +def spacer(line, maxsize): + pos = line.find('=') + if pos != -1: + i = 1 + while line[pos-i] == ' ': + i += 1 + g = 1 + while line[pos+g] == ' ': + g += 1 + line = line[:pos-i+1] + ' = ' + line[pos+g:] + pos = line.find('=') + return line[:pos] + ' ' * (maxsize - pos) + line[pos:] + return line +for infile in glob.glob('*.cpp~'): + os.remove(infile) +for infile in glob.glob('*.h~'): + os.remove(infile) +for infile in glob.glob('*.bak'): + os.remove(infile) +for infile in glob.glob('*.cpp'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() + +for infile in glob.glob('*.h'): + f = open(infile) + contents = f.readlines() + f.close() + o = open(infile,'w') + inEnum = False + enumLines = [] + for l in contents[:-1]: + l = l.rstrip() + '\n' + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + if ' enum ' in l: + inEnum = True + l = contents[-1].rstrip() + if inEnum: + enumLines += [l] + if '}' in l: + maxsize = maxer(enumLines) + for line in enumLines: + pos = line.find('=') + if pos != -1: + line = spacer(line, maxsize) + o.write(line) + inEnum = False + enumLines = [] + else: + o.write(l) + o.close() \ No newline at end of file