From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.Client/WstringLookup.cpp | 54 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Minecraft.Client/WstringLookup.cpp (limited to 'Minecraft.Client/WstringLookup.cpp') diff --git a/Minecraft.Client/WstringLookup.cpp b/Minecraft.Client/WstringLookup.cpp new file mode 100644 index 00000000..93b189f7 --- /dev/null +++ b/Minecraft.Client/WstringLookup.cpp @@ -0,0 +1,54 @@ + +#include "stdafx.h" + +#include "WstringLookup.h" + +WstringLookup::WstringLookup() +{ + numIDs = 0; +} + +wstring WstringLookup::lookup(UINT id) +{ + // TODO + //if (id > currentMaxID) + // throw error + + return int2str.at(id); +} + +UINT WstringLookup::lookup(wstring str) +{ + if (str2int.find(str) == str2int.end()) + { + pair p = + pair(str, numIDs); + + str2int.insert( p ); + int2str.push_back( str ); + + return numIDs++; + } + else + { + return str2int.at(str); + } +} + +VOID WstringLookup::getTable(wstring **lookup, UINT *len) +{ + // Outputs + wstring *out_lookup; UINT out_len; + + // Fill lookup. + out_lookup = new wstring[int2str.size()]; + for (UINT i = 0; i < numIDs; i++) + out_lookup[i] = int2str.at(i); + + out_len = numIDs; + + // Return. + *lookup = out_lookup; + *len = out_len; + return; +} \ No newline at end of file -- cgit v1.2.3