| 163 | } |
| 164 | |
| 165 | void Weapon::writeWeaponDiff(const Weapon* def1, const Weapon* def2, std::ofstream& file) |
| 166 | { |
| 167 | file << "[Equipment]" << std::endl; |
| 168 | file << " Name\t" << def2->mName << std::endl; |
| 169 | if(!def2->mBaseDefinition.empty()) |
| 170 | { |
| 171 | // If there is a base definition, we take it as the reference no matter what def1 is because |
| 172 | // we want to write only the differences between reference and def2 |
| 173 | def1 = ConfigManager::getSingleton().getWeapon(def2->mBaseDefinition); |
| 174 | OD_ASSERT_TRUE_MSG(def1 != nullptr, "BaseDefinition=" + def2->mBaseDefinition); |
| 175 | file << " BaseDefinition\t" << def2->mBaseDefinition << std::endl; |
| 176 | } |
| 177 | file << " [Stats]" << std::endl; |
| 178 | |
| 179 | if(def1 == nullptr || (def1->mMeshName.compare(def2->mMeshName) != 0)) |
| 180 | file << " MeshName\t" << def2->mMeshName << std::endl; |
| 181 | |
| 182 | if(def1 == nullptr || (def1->mPhysicalDamage != def2->mPhysicalDamage)) |
| 183 | file << " PhysicalDamage\t" << def2->mPhysicalDamage << std::endl; |
| 184 | |
| 185 | if(def1 == nullptr || (def1->mMagicalDamage != def2->mMagicalDamage)) |
| 186 | file << " MagicalDamage\t" << def2->mMagicalDamage << std::endl; |
| 187 | |
| 188 | if(def1 == nullptr || (def1->mElementDamage != def2->mElementDamage)) |
| 189 | file << " ElementDamage\t" << def2->mElementDamage << std::endl; |
| 190 | |
| 191 | if(def1 == nullptr || (def1->mPhysicalDefense != def2->mPhysicalDefense)) |
| 192 | file << " PhysicalDefense\t" << def2->mPhysicalDefense << std::endl; |
| 193 | |
| 194 | if(def1 == nullptr || (def1->mMagicalDefense != def2->mMagicalDefense)) |
| 195 | file << " MagicalDefense\t" << def2->mMagicalDefense << std::endl; |
| 196 | |
| 197 | if(def1 == nullptr || (def1->mElementDefense != def2->mElementDefense)) |
| 198 | file << " ElementDefense\t" << def2->mElementDefense << std::endl; |
| 199 | |
| 200 | file << " [/Stats]" << std::endl; |
| 201 | file << "[/Equipment]" << std::endl; |
| 202 | } |
| 203 | |
| 204 | ODPacket& operator <<(ODPacket& os, const Weapon *weapon) |
| 205 | { |