mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-09 14:28:03 -05:00
56 lines
3.1 KiB
C++
56 lines
3.1 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
|
|
#include "Menu/AbstractMenuDumper.h"
|
|
#include "Game/IW5/IW5.h"
|
|
|
|
namespace IW5
|
|
{
|
|
class MenuDumper : public AbstractMenuDumper
|
|
{
|
|
static size_t FindStatementClosingParenthesis(const Statement_s* statement, size_t openingParenthesisPosition);
|
|
|
|
void WriteStatementOperator(const Statement_s* statement, size_t& currentPos, bool& spaceNext) const;
|
|
void WriteStatementOperandFunction(const Statement_s* statement, size_t currentPos) const;
|
|
void WriteStatementOperand(const Statement_s* statement, size_t& currentPos, bool& spaceNext) const;
|
|
void WriteStatementEntryRange(const Statement_s* statement, size_t startOffset, size_t endOffset) const;
|
|
void WriteStatement(const Statement_s* statement) const;
|
|
void WriteStatementSkipInitialUnnecessaryParenthesis(const Statement_s* statementValue) const;
|
|
void WriteStatementProperty(const std::string& propertyKey, const Statement_s* statementValue, bool isBooleanStatement) const;
|
|
|
|
void WriteSetLocalVarData(const std::string& setFunction, const SetLocalVarData* setLocalVarData) const;
|
|
void WriteUnconditionalScript(const char* script) const;
|
|
void WriteMenuEventHandlerSet(const MenuEventHandlerSet* eventHandlerSet);
|
|
void WriteMenuEventHandlerSetProperty(const std::string& propertyKey, const MenuEventHandlerSet* eventHandlerSetValue);
|
|
|
|
void WriteRectProperty(const std::string& propertyKey, const rectDef_s& rect) const;
|
|
void WriteMaterialProperty(const std::string& propertyKey, const Material* materialValue) const;
|
|
void WriteSoundAliasProperty(const std::string& propertyKey, const snd_alias_list_t* soundAliasValue) const;
|
|
void WriteDecodeEffectProperty(const std::string& propertyKey, const itemDef_s* item) const;
|
|
void WriteItemKeyHandlerProperty(const ItemKeyHandler* itemKeyHandlerValue);
|
|
void WriteMultiTokenStringProperty(const std::string& propertyKey, const char* value) const;
|
|
void WriteFloatExpressionsProperty(const ItemFloatExpression* floatExpressions, int floatExpressionCount) const;
|
|
void WriteColumnProperty(const std::string& propertyKey, const listBoxDef_s* listBox) const;
|
|
|
|
void WriteListBoxProperties(const itemDef_s* item);
|
|
void WriteDvarFloatProperty(const std::string& propertyKey, const itemDef_s* item, const editFieldDef_s* editField) const;
|
|
void WriteEditFieldProperties(const itemDef_s* item) const;
|
|
void WriteMultiValueProperty(const multiDef_s* multiDef) const;
|
|
void WriteMultiProperties(const itemDef_s* item) const;
|
|
void WriteEnumDvarProperties(const itemDef_s* item) const;
|
|
void WriteTickerProperties(const itemDef_s* item) const;
|
|
|
|
void WriteItemData(const itemDef_s* item);
|
|
void WriteItemDefs(const itemDef_s* const* itemDefs, size_t itemCount);
|
|
|
|
void WriteMenuData(const menuDef_t* menu);
|
|
|
|
public:
|
|
explicit MenuDumper(std::ostream& stream);
|
|
|
|
void WriteFunctionDef(const std::string& functionName, const Statement_s* statement);
|
|
void WriteMenu(const menuDef_t* menu);
|
|
};
|
|
}
|