mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 01:05:48 +01:00 
			
		
		
		
	Plantlike visual scale: Send sqrt(visual_scale) to old clients
Keep compatibility with protocol < 30 clients now that visual_scale is no longer applied twice to plantlike drawtype and mods are being updated to a new value.
This commit is contained in:
		@@ -146,6 +146,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 | 
			
		||||
	PROTOCOL VERSION 30:
 | 
			
		||||
		New ContentFeatures serialization version
 | 
			
		||||
		Add node and tile color and palette
 | 
			
		||||
		Fix plantlike visual_scale being applied squared and add compatibility
 | 
			
		||||
			with pre-30 clients by sending sqrt(visual_scale)
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define LATEST_PROTOCOL_VERSION 30
 | 
			
		||||
 
 | 
			
		||||
@@ -1611,6 +1611,10 @@ void ContentFeatures::serializeOld(std::ostream &os, u16 protocol_version) const
 | 
			
		||||
			compatible_param_type_2 = CPT2_WALLMOUNTED;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	float compatible_visual_scale = visual_scale;
 | 
			
		||||
	if (protocol_version < 30 && drawtype == NDT_PLANTLIKE)
 | 
			
		||||
		compatible_visual_scale = sqrt(visual_scale);
 | 
			
		||||
 | 
			
		||||
	if (protocol_version == 13)
 | 
			
		||||
	{
 | 
			
		||||
		writeU8(os, 5); // version
 | 
			
		||||
@@ -1622,7 +1626,7 @@ void ContentFeatures::serializeOld(std::ostream &os, u16 protocol_version) const
 | 
			
		||||
			writeS16(os, i->second);
 | 
			
		||||
		}
 | 
			
		||||
		writeU8(os, drawtype);
 | 
			
		||||
		writeF1000(os, visual_scale);
 | 
			
		||||
		writeF1000(os, compatible_visual_scale);
 | 
			
		||||
		writeU8(os, 6);
 | 
			
		||||
		for (u32 i = 0; i < 6; i++)
 | 
			
		||||
			tiledef[i].serialize(os, protocol_version);
 | 
			
		||||
@@ -1670,7 +1674,7 @@ void ContentFeatures::serializeOld(std::ostream &os, u16 protocol_version) const
 | 
			
		||||
			writeS16(os, i->second);
 | 
			
		||||
		}
 | 
			
		||||
		writeU8(os, drawtype);
 | 
			
		||||
		writeF1000(os, visual_scale);
 | 
			
		||||
		writeF1000(os, compatible_visual_scale);
 | 
			
		||||
		writeU8(os, 6);
 | 
			
		||||
		for (u32 i = 0; i < 6; i++)
 | 
			
		||||
			tiledef[i].serialize(os, protocol_version);
 | 
			
		||||
@@ -1724,7 +1728,7 @@ void ContentFeatures::serializeOld(std::ostream &os, u16 protocol_version) const
 | 
			
		||||
			writeS16(os, i->second);
 | 
			
		||||
		}
 | 
			
		||||
		writeU8(os, drawtype);
 | 
			
		||||
		writeF1000(os, visual_scale);
 | 
			
		||||
		writeF1000(os, compatible_visual_scale);
 | 
			
		||||
		writeU8(os, 6);
 | 
			
		||||
		for (u32 i = 0; i < 6; i++)
 | 
			
		||||
			tiledef[i].serialize(os, protocol_version);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user