/// <summary> /// Generates a list of StringIndexes contained in the map /// </summary> /// <returns>List of StringID_info</returns> List <StringID_info> Get_SID_list(string map_loc) { List <StringID_info> ret = new List <StringID_info>(); StreamReader map_stream = new StreamReader(map_loc); int string_table_count = DATA_READ.ReadINT_LE(0x170, map_stream); int string_index_table_offset = DATA_READ.ReadINT_LE(0x178, map_stream); int string_table_offset = DATA_READ.ReadINT_LE(0x17C, map_stream); for (int index = 0; index < string_table_count; index++) { int table_off = DATA_READ.ReadINT_LE(string_index_table_offset + index * 0x4, map_stream) & 0xFFFF; string STRING = DATA_READ.ReadSTRING(string_table_offset + table_off, map_stream); if (STRING.Length > 0) { int SID = DATA_READ.Generate_SID(index, 0x0, STRING);//set is 0x0 cuz i couldnt figure out any other value StringID_info SIDI = new StringID_info(); SIDI.string_index_table_index = string_index_table_offset + index * 0x4; SIDI.string_table_offset = table_off; SIDI.StringID = SID; SIDI.STRING = STRING; ret.Add(SIDI); } } map_stream.Close(); return(ret); }