add WordSelectTable::validate

This commit is contained in:
Martin Michelsen
2024-11-08 10:20:11 -08:00
parent a860d29636
commit 70dfeeba91
2 changed files with 16 additions and 4 deletions
+14
View File
@@ -280,6 +280,20 @@ void WordSelectTable::print_index(FILE* stream, Version v) const {
}
}
WordSelectMessage WordSelectTable::validate(const WordSelectMessage& msg, Version version) const {
const auto& index = this->tokens_for_version(version);
for (size_t z = 0; z < msg.tokens.size(); z++) {
if (msg.tokens[z] == 0xFFFF) {
continue;
}
const auto& token = index.at(msg.tokens[z]);
if (!token) {
throw runtime_error(phosg::string_printf("token %04hX does not exist in the index", msg.tokens[z].load()));
}
}
}
WordSelectMessage WordSelectTable::translate(
const WordSelectMessage& msg,
Version from_version,
+2 -4
View File
@@ -81,10 +81,8 @@ public:
void print(FILE* stream) const;
void print_index(FILE* stream, Version v) const;
WordSelectMessage translate(
const WordSelectMessage& msg,
Version from_version,
Version to_version) const;
WordSelectMessage validate(const WordSelectMessage& msg, Version version) const;
WordSelectMessage translate(const WordSelectMessage& msg, Version from_version, Version to_version) const;
private:
struct Token {