GTEST_TEST_F(LocString, readLocString) { static const byte kData[] = { 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0xC3, 0xB6, 0xC3, 0xB6, 0x62, 0xC3, 0xA4, 0x72, 0x30, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0xC3, 0xB6, 0xC3, 0xB6, 0x62, 0xC3, 0xA4, 0x72, 0x31 }; Common::MemoryReadStream stream(kData); Aurora::LocString locString; locString.readLocString(stream); EXPECT_EQ(locString.getID(), 23); EXPECT_TRUE(locString.hasString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderMale )); EXPECT_TRUE(locString.hasString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderFemale)); EXPECT_STREQ(locString.getString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderMale ).c_str(), kUTF8String0); EXPECT_STREQ(locString.getString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderFemale).c_str(), kUTF8String1); EXPECT_STREQ(locString.getFirstString().c_str(), kUTF8String0); EXPECT_STREQ(locString.getString().c_str(), kUTF8String0); }
void Creature::loadProperties(const Aurora::GFF3Struct &gff) { // Tag _tag = gff.getString("Tag", _tag); // Name Aurora::LocString firstName; gff.getLocString("FirstName", firstName); Aurora::LocString lastName; gff.getLocString("LastName", lastName); if (!firstName.empty()) { _name = firstName.getString(); if (!lastName.empty()) _name += " " + lastName.getString(); } // Description _description = gff.getString("Description", _description); // Portrait loadPortrait(gff); // Equipment loadEquipment(gff); // Appearance _appearance = gff.getUint("Appearance_Type", _appearance); // Static _static = gff.getBool("Static", _static); // Usable _usable = gff.getBool("Useable", _usable); // PC _isPC = gff.getBool("IsPC", _isPC); // Gender _gender = Gender(gff.getUint("Gender")); // Race _race = Race(gff.getSint("Race", _race)); _subRace = SubRace(gff.getSint("SubraceIndex", _subRace)); // Hit Points _currentHitPoints = gff.getSint("CurrentHitPoints", _maxHitPoints); _maxHitPoints = gff.getSint("MaxHitPoints", _currentHitPoints); _minOneHitPoint = gff.getBool("Min1HP", _minOneHitPoint); // Faction _faction = Faction(gff.getUint("FactionID")); // Scripts readScripts(gff); _conversation = gff.getString("Conversation", _conversation); }
void Creature::loadProperties(const Aurora::GFFStruct &gff) { // Tag _tag = gff.getString("Tag", _tag); // Name if (gff.hasField("LocName")) { Aurora::LocString name; gff.getLocString("LocName", name); _name = name.getString(); } // Description if (gff.hasField("Description")) { Aurora::LocString description; gff.getLocString("Description", description); _description = description.getString(); } // Portrait loadPortrait(gff); // Appearance _appearance = gff.getUint("Appearance_Type", _appearance); // Static _static = gff.getBool("Static", _static); // Usable _usable = gff.getBool("Useable", _usable); }
void Area::loadARE(const Aurora::GFFStruct &are) { // Name Aurora::LocString name; are.getLocString("Name", name); _name = name.getString(); }
GTEST_TEST_F(LocString, setString) { Aurora::LocString locString; locString.setString(Aurora::kLanguageEnglish, kUTF8String); EXPECT_TRUE(locString.hasString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderMale )); EXPECT_TRUE(locString.hasString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderFemale)); EXPECT_STREQ(locString.getString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderMale ).c_str(), kUTF8String); EXPECT_STREQ(locString.getString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderFemale).c_str(), kUTF8String); EXPECT_STREQ(locString.getFirstString().c_str(), kUTF8String); EXPECT_STREQ(locString.getString().c_str(), kUTF8String); }
GTEST_TEST_F(LocString, unknownEncodingUTF8) { static const byte kData[] = { 0x09, 0x00, 0x00, 0x00, 0x46, 0xC3, 0xB6, 0xC3, 0xB6, 0x62, 0xC3, 0xA4, 0x72 }; Common::MemoryReadStream stream(kData); Aurora::LocString locString; locString.readString(4, stream); EXPECT_STREQ(locString.getString().c_str(), "[???]"); }
GTEST_TEST_F(LocString, readLocStringSetGender) { static const byte kData[] = { 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0xC3, 0xB6, 0xC3, 0xB6, 0x62, 0xC3, 0xA4, 0x72, 0x30, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0xC3, 0xB6, 0xC3, 0xB6, 0x62, 0xC3, 0xA4, 0x72, 0x31 }; Common::MemoryReadStream stream(kData); Aurora::LocString locString; locString.readLocString(stream); LangMan.setCurrentLanguage(Aurora::kLanguageEnglish); LangMan.setCurrentGender(Aurora::kLanguageGenderMale); EXPECT_STREQ(locString.getString().c_str(), kUTF8String0); LangMan.setCurrentGender(Aurora::kLanguageGenderFemale); EXPECT_STREQ(locString.getString().c_str(), kUTF8String1); }
GTEST_TEST_F(LocString, readString) { static const byte kData[] = { 0x09, 0x00, 0x00, 0x00, 0x46, 0xC3, 0xB6, 0xC3, 0xB6, 0x62, 0xC3, 0xA4, 0x72 }; Common::MemoryReadStream stream(kData); Aurora::LocString locString; locString.readString(1, stream); EXPECT_FALSE(locString.hasString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderMale )); EXPECT_TRUE (locString.hasString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderFemale)); EXPECT_STREQ(locString.getString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderMale ).c_str(), ""); EXPECT_STREQ(locString.getString(Aurora::kLanguageEnglish, Aurora::kLanguageGenderFemale).c_str(), kUTF8String); EXPECT_STREQ(locString.getFirstString().c_str(), kUTF8String); EXPECT_STREQ(locString.getString().c_str(), kUTF8String); }
void Situated::loadProperties(const Aurora::GFFStruct &gff) { // Tag _tag = gff.getString("Tag", _tag); // Name if (gff.hasField("LocName")) { Aurora::LocString name; gff.getLocString("LocName", name); _name = name.getString(); } // Description if (gff.hasField("Description")) { Aurora::LocString description; gff.getLocString("Description", description); _description = description.getString(); } // Portrait loadPortrait(gff); // Appearance _appearanceID = gff.getUint("Appearance", _appearanceID); // Conversation _conversation = gff.getString("Conversation", _conversation); // Static _static = gff.getBool("Static", _static); // Usable _usable = gff.getBool("Useable", _usable); // Locked _locked = gff.getBool("Locked", _locked); // Scripts readScripts(gff); }
void Item::loadProperties(const Aurora::GFF3Struct &gff) { // Tag _tag = gff.getString("Tag", _tag); // Name if (gff.hasField("LocalizedName")) { Aurora::LocString name; gff.getLocString("LocalizedName", name); _name = name.getString(); } // Description if (gff.hasField("Description")) { Aurora::LocString description; gff.getLocString("Description", description); _description = description.getString(); } // This is an index into basitem.2da which contains inventory slot info _baseitem = gff.getUint("BaseItem", _baseitem); // TODO: Are these armor only? _colorMetal1 = gff.getUint("Metal1Color", _colorMetal1); _colorMetal2 = gff.getUint("Metal2Color", _colorMetal2); _colorLeather1 = gff.getUint("Leather1Color", _colorLeather1); _colorLeather2 = gff.getUint("Leather2Color", _colorLeather2); _colorCloth1 = gff.getUint("Cloth1Color", _colorCloth1); _colorCloth2 = gff.getUint("Cloth2Color", _colorCloth2); // Armor parts loadArmorParts(gff); // Portrait loadPortrait(gff); // Scripts readScripts(gff); }
void Waypoint::loadProperties(const Aurora::GFFStruct &gff) { // Tag _tag = gff.getString("Tag", _tag); // Map note _hasMapNote = gff.getBool("MapNoteEnabled", _hasMapNote); if (gff.hasField("MapNote")) { Aurora::LocString mapNote; gff.getLocString("MapNote", mapNote); _mapNote = mapNote.getString(); } }
GTEST_TEST_F(LocString, wrongEncodingNonUTF8) { if (!Common::hasSupportEncoding(Common::kEncodingCP1252)) { const ::testing::TestInfo* const testInfo = ::testing::UnitTest::GetInstance()->current_test_info(); std::fprintf(stderr, "Skipping %s.%s\n", testInfo->test_case_name(), testInfo->name()); return; } static const byte kData[] = { 0x04, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81 }; Common::MemoryReadStream stream(kData); Aurora::LocString locString; locString.readString(2, stream); EXPECT_STREQ(locString.getString().c_str(), "[!?!]"); }