mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-19 15:52:53 +00:00
chore: fix loading and writing code for IW4
This commit is contained in:
parent
a5873a301f
commit
9ae5aaa1db
@ -1,4 +1,5 @@
|
||||
#include "AssetLoaderLeaderboardIW4.h"
|
||||
#include "LoaderLeaderboardIW4.h"
|
||||
|
||||
#include "Game/IW4/IW4.h"
|
||||
#include "JsonLeaderboardDefLoader.h"
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "AssetLoaderLocalizeIW4.h"
|
||||
#include "LoaderLocalizeIW4.h"
|
||||
|
||||
#include "Localize/CommonLocalizeLoader.h"
|
||||
|
||||
using namespace IW4;
|
||||
|
@ -1,6 +1,5 @@
|
||||
#include "LoaderMaterialIW4.h"
|
||||
|
||||
#include "AssetLoaderTechniqueSet.h"
|
||||
#include "AssetLoading/AbstractGdtEntryReader.h"
|
||||
#include "Game/IW4/CommonIW4.h"
|
||||
#include "Game/IW4/IW4.h"
|
||||
@ -1321,7 +1320,12 @@ namespace
|
||||
class MaterialLoader final : public AssetCreator<AssetMaterial>
|
||||
{
|
||||
public:
|
||||
MaterialLoader(MemoryManager& memory, ISearchPath& searchPath);
|
||||
MaterialLoader(MemoryManager& memory, ISearchPath& searchPath, IGdtQueryable& gdt)
|
||||
: m_memory(memory),
|
||||
m_search_path(m_search_path),
|
||||
m_gdt(gdt)
|
||||
{
|
||||
}
|
||||
|
||||
AssetCreationResult CreateAsset(const std::string& assetName, AssetCreationContext& context) override
|
||||
{
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "AssetLoaderMenuListIW4.h"
|
||||
#include "LoaderMenuListIW4.h"
|
||||
|
||||
#include "Game/IW4/IW4.h"
|
||||
#include "Game/IW4/Menu/MenuConversionZoneStateIW4.h"
|
||||
#include "Game/IW4/Menu/MenuConverterIW4.h"
|
||||
|
@ -423,7 +423,7 @@ namespace
|
||||
ConvertExpressionEntry(statement, expressionEntries, expression, menu, item);
|
||||
|
||||
auto* outputExpressionEntries = m_memory.Alloc<expressionEntry>(expressionEntries.size());
|
||||
memcpy(outputExpressionEntries, expressionEntries.data(), sizeof(expressionEntry) * expressionEntries.size());
|
||||
std::memcpy(outputExpressionEntries, expressionEntries.data(), sizeof(expressionEntry) * expressionEntries.size());
|
||||
|
||||
statement->entries = outputExpressionEntries;
|
||||
statement->numEntries = static_cast<int>(expressionEntries.size());
|
||||
@ -431,7 +431,7 @@ namespace
|
||||
return statement;
|
||||
}
|
||||
|
||||
_NODISCARD Statement_s* ConvertOrApplyStatement(float& staticValue,
|
||||
[[nodiscard]] Statement_s* ConvertOrApplyStatement(float& staticValue,
|
||||
const ISimpleExpression* expression,
|
||||
const CommonMenuDef* menu,
|
||||
const CommonItemDef* item = nullptr) const
|
||||
@ -462,7 +462,7 @@ namespace
|
||||
return ConvertExpression(expression, menu, item);
|
||||
}
|
||||
|
||||
_NODISCARD Statement_s* ConvertOrApplyStatement(const char*& staticValue,
|
||||
[[nodiscard]] Statement_s* ConvertOrApplyStatement(const char*& staticValue,
|
||||
const ISimpleExpression* expression,
|
||||
const CommonMenuDef* menu,
|
||||
const CommonItemDef* item = nullptr) const
|
||||
@ -492,7 +492,7 @@ namespace
|
||||
return ConvertExpression(expression, menu, item);
|
||||
}
|
||||
|
||||
_NODISCARD Statement_s* ConvertOrApplyStatement(Material*& staticValue,
|
||||
[[nodiscard]] Statement_s* ConvertOrApplyStatement(Material*& staticValue,
|
||||
const ISimpleExpression* expression,
|
||||
const CommonMenuDef* menu,
|
||||
const CommonItemDef* item = nullptr) const
|
||||
@ -522,7 +522,7 @@ namespace
|
||||
return ConvertExpression(expression, menu, item);
|
||||
}
|
||||
|
||||
_NODISCARD Statement_s* ConvertVisibleExpression(windowDef_t* window,
|
||||
[[nodiscard]] Statement_s* ConvertVisibleExpression(windowDef_t* window,
|
||||
const ISimpleExpression* expression,
|
||||
const CommonMenuDef* commonMenu,
|
||||
const CommonItemDef* commonItem = nullptr) const
|
||||
@ -556,7 +556,7 @@ namespace
|
||||
return ConvertExpression(expression, commonMenu, commonItem);
|
||||
}
|
||||
|
||||
_NODISCARD static EventType SetLocalVarTypeToEventType(const SetLocalVarType setLocalVarType)
|
||||
[[nodiscard]] static EventType SetLocalVarTypeToEventType(const SetLocalVarType setLocalVarType)
|
||||
{
|
||||
switch (setLocalVarType)
|
||||
{
|
||||
@ -593,7 +593,7 @@ namespace
|
||||
outputSetLocalVar->localVarName = m_memory.Dup(setLocalVar->m_var_name.c_str());
|
||||
outputSetLocalVar->expression = ConvertExpression(setLocalVar->m_value.get(), menu, item);
|
||||
|
||||
elements.push_back(outputHandler);
|
||||
elements.emplace_back(outputHandler);
|
||||
}
|
||||
|
||||
void ConvertEventHandlerScript(std::vector<MenuEventHandler*>& elements, const CommonEventHandlerScript* script) const
|
||||
@ -606,7 +606,7 @@ namespace
|
||||
outputHandler->eventType = EVENT_UNCONDITIONAL;
|
||||
outputHandler->eventData.unconditionalScript = m_memory.Dup(script->m_script.c_str());
|
||||
|
||||
elements.push_back(outputHandler);
|
||||
elements.emplace_back(outputHandler);
|
||||
}
|
||||
|
||||
void ConvertEventHandlerCondition(std::vector<MenuEventHandler*>& elements,
|
||||
@ -685,7 +685,7 @@ namespace
|
||||
ConvertEventHandler(elements, element.get(), menu, item);
|
||||
}
|
||||
|
||||
_NODISCARD MenuEventHandlerSet*
|
||||
[[nodiscard]] MenuEventHandlerSet*
|
||||
ConvertEventHandlerSet(const CommonEventHandlerSet* eventHandlerSet, const CommonMenuDef* menu, const CommonItemDef* item = nullptr) const
|
||||
{
|
||||
if (!eventHandlerSet)
|
||||
@ -707,7 +707,7 @@ namespace
|
||||
return outputSet;
|
||||
}
|
||||
|
||||
_NODISCARD ItemKeyHandler* ConvertKeyHandler(const std::multimap<int, std::unique_ptr<CommonEventHandlerSet>>& keyHandlers,
|
||||
[[nodiscard]] ItemKeyHandler* ConvertKeyHandler(const std::multimap<int, std::unique_ptr<CommonEventHandlerSet>>& keyHandlers,
|
||||
const CommonMenuDef* menu,
|
||||
const CommonItemDef* item = nullptr) const
|
||||
{
|
||||
@ -844,7 +844,7 @@ namespace
|
||||
return floatExpressions;
|
||||
}
|
||||
|
||||
_NODISCARD const char* CreateEnableDvarString(const std::vector<std::string>& stringElements) const
|
||||
[[nodiscard]] const char* CreateEnableDvarString(const std::vector<std::string>& stringElements) const
|
||||
{
|
||||
std::ostringstream ss;
|
||||
|
||||
@ -856,7 +856,7 @@ namespace
|
||||
return m_memory.Dup(ss.str().c_str());
|
||||
}
|
||||
|
||||
_NODISCARD const char* ConvertEnableDvar(const CommonItemDef& commonItem, int& dvarFlags) const
|
||||
[[nodiscard]] const char* ConvertEnableDvar(const CommonItemDef& commonItem, int& dvarFlags) const
|
||||
{
|
||||
dvarFlags = 0;
|
||||
|
||||
@ -893,7 +893,7 @@ namespace
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
_NODISCARD listBoxDef_s* ConvertListBoxFeatures(itemDef_s* item,
|
||||
[[nodiscard]] listBoxDef_s* ConvertListBoxFeatures(itemDef_s* item,
|
||||
CommonItemFeaturesListBox* commonListBox,
|
||||
const CommonMenuDef& parentMenu,
|
||||
const CommonItemDef& commonItem) const
|
||||
@ -928,7 +928,7 @@ namespace
|
||||
return listBox;
|
||||
}
|
||||
|
||||
_NODISCARD editFieldDef_s* ConvertEditFieldFeatures(itemDef_s* item,
|
||||
[[nodiscard]] editFieldDef_s* ConvertEditFieldFeatures(itemDef_s* item,
|
||||
CommonItemFeaturesEditField* commonEditField,
|
||||
const CommonMenuDef& parentMenu,
|
||||
const CommonItemDef& commonItem) const
|
||||
@ -948,7 +948,7 @@ namespace
|
||||
return editField;
|
||||
}
|
||||
|
||||
_NODISCARD multiDef_s* ConvertMultiValueFeatures(itemDef_s* item,
|
||||
[[nodiscard]] multiDef_s* ConvertMultiValueFeatures(itemDef_s* item,
|
||||
CommonItemFeaturesMultiValue* commonMultiValue,
|
||||
const CommonMenuDef& parentMenu,
|
||||
const CommonItemDef& commonItem) const
|
||||
@ -979,7 +979,7 @@ namespace
|
||||
return multiValue;
|
||||
}
|
||||
|
||||
_NODISCARD newsTickerDef_s* ConvertNewsTickerFeatures(itemDef_s* item,
|
||||
[[nodiscard]] newsTickerDef_s* ConvertNewsTickerFeatures(itemDef_s* item,
|
||||
CommonItemFeaturesNewsTicker* commonNewsTicker,
|
||||
const CommonMenuDef& parentMenu,
|
||||
const CommonItemDef& commonItem) const
|
||||
@ -995,7 +995,7 @@ namespace
|
||||
return newsTicker;
|
||||
}
|
||||
|
||||
_NODISCARD itemDef_s* ConvertItem(const CommonMenuDef& parentMenu, const CommonItemDef& commonItem) const
|
||||
[[nodiscard]] itemDef_s* ConvertItem(const CommonMenuDef& parentMenu, const CommonItemDef& commonItem) const
|
||||
{
|
||||
auto* item = m_memory.Alloc<itemDef_s>();
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "AssetLoaderRawFileIW4.h"
|
||||
#include "LoaderRawFileIW4.h"
|
||||
|
||||
#include "Game/IW4/IW4.h"
|
||||
|
||||
#include <cstring>
|
||||
|
@ -238,29 +238,29 @@ namespace
|
||||
}
|
||||
};
|
||||
|
||||
void InitWeaponFullDef(WeaponFullDef* weapon)
|
||||
void InitWeaponFullDef(WeaponFullDef& weapon)
|
||||
{
|
||||
weapon->weapCompleteDef.weapDef = &weapon->weapDef;
|
||||
weapon->weapCompleteDef.hideTags = weapon->hideTags;
|
||||
weapon->weapCompleteDef.szXAnims = weapon->szXAnims;
|
||||
weapon->weapDef.gunXModel = weapon->gunXModel;
|
||||
weapon->weapDef.szXAnimsRightHanded = weapon->szXAnimsRightHanded;
|
||||
weapon->weapDef.szXAnimsLeftHanded = weapon->szXAnimsLeftHanded;
|
||||
weapon->weapDef.notetrackSoundMapKeys = weapon->notetrackSoundMapKeys;
|
||||
weapon->weapDef.notetrackSoundMapValues = weapon->notetrackSoundMapValues;
|
||||
weapon->weapDef.notetrackRumbleMapKeys = weapon->notetrackRumbleMapKeys;
|
||||
weapon->weapDef.notetrackRumbleMapValues = weapon->notetrackRumbleMapValues;
|
||||
weapon->weapDef.worldModel = weapon->worldModel;
|
||||
weapon->weapDef.parallelBounce = weapon->parallelBounce;
|
||||
weapon->weapDef.perpendicularBounce = weapon->perpendicularBounce;
|
||||
weapon->weapDef.locationDamageMultipliers = weapon->locationDamageMultipliers;
|
||||
weapon.weapCompleteDef.weapDef = &weapon.weapDef;
|
||||
weapon.weapCompleteDef.hideTags = weapon.hideTags;
|
||||
weapon.weapCompleteDef.szXAnims = weapon.szXAnims;
|
||||
weapon.weapDef.gunXModel = weapon.gunXModel;
|
||||
weapon.weapDef.szXAnimsRightHanded = weapon.szXAnimsRightHanded;
|
||||
weapon.weapDef.szXAnimsLeftHanded = weapon.szXAnimsLeftHanded;
|
||||
weapon.weapDef.notetrackSoundMapKeys = weapon.notetrackSoundMapKeys;
|
||||
weapon.weapDef.notetrackSoundMapValues = weapon.notetrackSoundMapValues;
|
||||
weapon.weapDef.notetrackRumbleMapKeys = weapon.notetrackRumbleMapKeys;
|
||||
weapon.weapDef.notetrackRumbleMapValues = weapon.notetrackRumbleMapValues;
|
||||
weapon.weapDef.worldModel = weapon.worldModel;
|
||||
weapon.weapDef.parallelBounce = weapon.parallelBounce;
|
||||
weapon.weapDef.perpendicularBounce = weapon.perpendicularBounce;
|
||||
weapon.weapDef.locationDamageMultipliers = weapon.locationDamageMultipliers;
|
||||
|
||||
for (const auto& field : weapon_fields)
|
||||
{
|
||||
if (field.iFieldType != CSPFT_STRING)
|
||||
continue;
|
||||
|
||||
*reinterpret_cast<const char**>(reinterpret_cast<char*>(weapon) + field.iOffset) = "";
|
||||
*reinterpret_cast<const char**>(reinterpret_cast<char*>(&weapon) + field.iOffset) = "";
|
||||
}
|
||||
}
|
||||
|
||||
@ -437,7 +437,7 @@ AssetCreationResult InfoStringLoaderWeapon::CreateAsset(const std::string& asset
|
||||
{
|
||||
auto* weaponFullDef = m_memory.Alloc<WeaponFullDef>();
|
||||
|
||||
InitWeaponFullDef(weaponFullDef);
|
||||
InitWeaponFullDef(*weaponFullDef);
|
||||
weaponFullDef->weapCompleteDef.szInternalName = m_memory.Dup(assetName.c_str());
|
||||
|
||||
AssetRegistration<AssetWeapon> registration(assetName, &weaponFullDef->weapCompleteDef);
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
#include "Game/IW4/CommonIW4.h"
|
||||
#include "Game/IW4/InfoString/InfoStringFromStructConverter.h"
|
||||
#include "Game/IW4/InfoString/TracerFields.h"
|
||||
#include "Game/IW4/ObjConstantsIW4.h"
|
||||
#include "Game/IW4/Tracer/TracerFields.h"
|
||||
|
||||
#include <cassert>
|
||||
#include <sstream>
|
||||
|
@ -3,8 +3,8 @@
|
||||
#include "Game/IW4/CommonIW4.h"
|
||||
#include "Game/IW4/InfoString/EnumStrings.h"
|
||||
#include "Game/IW4/InfoString/InfoStringFromStructConverter.h"
|
||||
#include "Game/IW4/InfoString/VehicleFields.h"
|
||||
#include "Game/IW4/ObjConstantsIW4.h"
|
||||
#include "Game/IW4/Vehicle/VehicleFields.h"
|
||||
|
||||
#include <cassert>
|
||||
#include <sstream>
|
||||
|
@ -3,8 +3,8 @@
|
||||
#include "Game/IW4/CommonIW4.h"
|
||||
#include "Game/IW4/InfoString/EnumStrings.h"
|
||||
#include "Game/IW4/InfoString/InfoStringFromStructConverter.h"
|
||||
#include "Game/IW4/InfoString/WeaponFields.h"
|
||||
#include "Game/IW4/ObjConstantsIW4.h"
|
||||
#include "Game/IW4/Weapon/WeaponFields.h"
|
||||
#include "Weapon/AccuracyGraphWriter.h"
|
||||
|
||||
#include <cassert>
|
||||
|
Loading…
x
Reference in New Issue
Block a user