mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-05-09 22:14:56 +00:00
chore: dump iw5 weapon notetrack overrides
This commit is contained in:
parent
7b23461e2a
commit
cca67ebafa
@ -120,7 +120,7 @@ namespace IW5
|
|||||||
WFT_SOUND_OVERRIDES,
|
WFT_SOUND_OVERRIDES,
|
||||||
WFT_FX_OVERRIDES,
|
WFT_FX_OVERRIDES,
|
||||||
WFT_RELOAD_OVERRIDES,
|
WFT_RELOAD_OVERRIDES,
|
||||||
WFT_NOTE_TRACK_OVERRIDES,
|
WFT_NOTETRACK_OVERRIDES,
|
||||||
|
|
||||||
WFT_NUM_FIELD_TYPES,
|
WFT_NUM_FIELD_TYPES,
|
||||||
};
|
};
|
||||||
|
@ -3971,7 +3971,8 @@ namespace IW5
|
|||||||
|
|
||||||
struct NoteTrackToSoundEntry
|
struct NoteTrackToSoundEntry
|
||||||
{
|
{
|
||||||
int attachment;
|
WeaponAttachmentCombination attachment;
|
||||||
|
short unused;
|
||||||
ScriptString* notetrackSoundMapKeys;
|
ScriptString* notetrackSoundMapKeys;
|
||||||
ScriptString* notetrackSoundMapValues;
|
ScriptString* notetrackSoundMapValues;
|
||||||
};
|
};
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
namespace IW5
|
namespace IW5
|
||||||
{
|
{
|
||||||
// WeaponCompleteDef:
|
// WeaponCompleteDef:
|
||||||
// TODO: notetrackOverrides
|
|
||||||
// TODO: iFireTimeAkimbo
|
// TODO: iFireTimeAkimbo
|
||||||
// TODO: iAltRaiseTimeAkimbo
|
// TODO: iAltRaiseTimeAkimbo
|
||||||
// TODO: fireAnimLengthAkimbo
|
// TODO: fireAnimLengthAkimbo
|
||||||
@ -734,6 +733,7 @@ namespace IW5
|
|||||||
{"soundOverrides", offsetof(WeaponFullDef, weapCompleteDef.soundOverrides), WFT_SOUND_OVERRIDES },
|
{"soundOverrides", offsetof(WeaponFullDef, weapCompleteDef.soundOverrides), WFT_SOUND_OVERRIDES },
|
||||||
{"fxOverrides", offsetof(WeaponFullDef, weapCompleteDef.fxOverrides), WFT_FX_OVERRIDES },
|
{"fxOverrides", offsetof(WeaponFullDef, weapCompleteDef.fxOverrides), WFT_FX_OVERRIDES },
|
||||||
{"reloadOverrides", offsetof(WeaponFullDef, weapCompleteDef.reloadOverrides), WFT_RELOAD_OVERRIDES },
|
{"reloadOverrides", offsetof(WeaponFullDef, weapCompleteDef.reloadOverrides), WFT_RELOAD_OVERRIDES },
|
||||||
|
{"notetrackOverrides", offsetof(WeaponFullDef, weapCompleteDef.notetrackOverrides), WFT_NOTETRACK_OVERRIDES },
|
||||||
};
|
};
|
||||||
|
|
||||||
inline const char* szWeapTypeNames[]{
|
inline const char* szWeapTypeNames[]{
|
||||||
|
@ -233,6 +233,10 @@ namespace IW5
|
|||||||
FillFromReloadOverrides(std::string(field.szName));
|
FillFromReloadOverrides(std::string(field.szName));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case WFT_NOTETRACK_OVERRIDES:
|
||||||
|
FillFromNoteTrackOverrides(std::string(field.szName));
|
||||||
|
break;
|
||||||
|
|
||||||
case WFT_NUM_FIELD_TYPES:
|
case WFT_NUM_FIELD_TYPES:
|
||||||
default:
|
default:
|
||||||
assert(false);
|
assert(false);
|
||||||
@ -492,6 +496,40 @@ namespace IW5
|
|||||||
m_info_string.SetValueForKey(key, ss.str());
|
m_info_string.SetValueForKey(key, ss.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FillFromNoteTrackOverrides(const std::string& key)
|
||||||
|
{
|
||||||
|
std::stringstream ss;
|
||||||
|
bool first = true;
|
||||||
|
|
||||||
|
for (auto i = 0u; i < m_weapon->weapCompleteDef.numNotetrackOverrides; i++)
|
||||||
|
{
|
||||||
|
const auto& noteTrackOverrides = m_weapon->weapCompleteDef.notetrackOverrides[i];
|
||||||
|
|
||||||
|
assert(noteTrackOverrides.notetrackSoundMapKeys || noteTrackOverrides.notetrackSoundMapValues);
|
||||||
|
if (!noteTrackOverrides.notetrackSoundMapKeys || !noteTrackOverrides.notetrackSoundMapValues)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
const auto attachmentName = noteTrackOverrides.attachment.fields ? GetNameForSingleWeaponAttachment(noteTrackOverrides.attachment) : "none";
|
||||||
|
for (auto j = 0u; j < 24u; j++)
|
||||||
|
{
|
||||||
|
const auto& noteTrackKey = m_get_scr_string(noteTrackOverrides.notetrackSoundMapKeys[j]);
|
||||||
|
const auto& noteTrackValue = m_get_scr_string(noteTrackOverrides.notetrackSoundMapValues[j]);
|
||||||
|
|
||||||
|
if (noteTrackKey.empty() || noteTrackValue.empty())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!first)
|
||||||
|
ss << "\n";
|
||||||
|
else
|
||||||
|
first = false;
|
||||||
|
|
||||||
|
ss << attachmentName << ' ' << noteTrackKey << ' ' << noteTrackValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_info_string.SetValueForKey(key, ss.str());
|
||||||
|
}
|
||||||
|
|
||||||
const WeaponFullDef* m_weapon;
|
const WeaponFullDef* m_weapon;
|
||||||
};
|
};
|
||||||
} // namespace IW5
|
} // namespace IW5
|
||||||
|
Loading…
x
Reference in New Issue
Block a user