From 109b24061ad99879e063856a9208be7a8b273596 Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Sat, 12 Apr 2025 11:32:10 -0700
Subject: [PATCH] validator: pluralize some error messages

---
 validation/src/check.rs | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/validation/src/check.rs b/validation/src/check.rs
index 7f15db5..56cf35b 100644
--- a/validation/src/check.rs
+++ b/validation/src/check.rs
@@ -469,14 +469,16 @@ impl<'a> std::fmt::Display for MapCheck<'a>{
 		}
 		if let SetDifferenceCheck(Err(context))=&self.mode_finish_counts{
 			if !context.extra.is_empty(){
-				write!(f,"Extra finish zones with no matching start zone: ")?;
+				let plural=if context.extra.len()==1{"zone"}else{"zones"};
+				write!(f,"Extra finish {plural} with no matching start zone: ")?;
 				write_comma_separated(f,context.extra.iter(),|f,(mode_id,_count)|
 					write_zone!(f,mode_id,"Finish")
 				)?;
 				writeln!(f,"")?;
 			}
 			if !context.missing.is_empty(){
-				write!(f,"Missing finish zones: ")?;
+				let plural=if context.missing.len()==1{"zone"}else{"zones"};
+				write!(f,"Missing finish {plural}: ")?;
 				write_comma_separated(f,context.missing.iter(),|f,mode_id|
 					write_zone!(f,mode_id,"Finish")
 				)?;
@@ -485,7 +487,8 @@ impl<'a> std::fmt::Display for MapCheck<'a>{
 		}
 		if let SetDifferenceCheck(Err(context))=&self.mode_anticheat_counts{
 			if !context.extra.is_empty(){
-				write!(f,"Extra anticheat zones with no matching start zone: ")?;
+				let plural=if context.extra.len()==1{"zone"}else{"zones"};
+				write!(f,"Extra anticheat {plural} with no matching start zone: ")?;
 				write_comma_separated(f,context.extra.iter(),|f,(mode_id,_count)|
 					write_zone!(f,mode_id,"Anticheat")
 				)?;
@@ -496,16 +499,16 @@ impl<'a> std::fmt::Display for MapCheck<'a>{
 			writeln!(f,"Model has no Spawn1")?;
 		}
 		if let DuplicateCheck(Err(DuplicateCheckContext(context)))=&self.spawn_counts{
-			write!(f,"Duplicate spawn zones: ")?;
+			write!(f,"Duplicate Spawn: ")?;
 			write_comma_separated(f,context.iter(),|f,(SpawnID(spawn_id),count)|
 				write!(f,"Spawn{spawn_id}({count} duplicates)")
 			)?;
 			writeln!(f,"")?;
 		}
 		if let DuplicateCheck(Err(DuplicateCheckContext(context)))=&self.wormhole_out_counts{
-			write!(f,"Duplicate wormhole out: ")?;
-			write_comma_separated(f,context.iter(),|f,(WormholeOutID(wormhole_out_id),count)|
-				write!(f,"WormholeOut{wormhole_out_id}({count} duplicates)")
+			write!(f,"Duplicate WormholeOut: ")?;
+			write_comma_separated(f,context.iter(),|f,(WormholeOutID(wormhole_id),count)|
+				write!(f,"WormholeOut{wormhole_id}({count} duplicates)")
 			)?;
 			writeln!(f,"")?;
 		}