From d07c60400ebe23bf4df5ae6ed14a751744d60482 Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Sat, 12 Apr 2025 11:32:25 -0700
Subject: [PATCH] a

---
 validation/src/check.rs | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/validation/src/check.rs b/validation/src/check.rs
index abc2349..bfbb9ad 100644
--- a/validation/src/check.rs
+++ b/validation/src/check.rs
@@ -554,6 +554,16 @@ impl<'a> std::fmt::Display for MapCheck<'a>{
 		if let Err(())=&self.spawn1{
 			writeln!(f,"Model has no Spawn1")?;
 		}
+		if let SetDifferenceCheck(Err(context))=&self.teleport_counts{
+			if !context.extra.is_empty(){
+				// TODO: include original names of objects in hashmap value as HashSet<&str>
+				write!(f,"Extra Teleport with no matching Spawn: ")?;
+				write_comma_separated(f,context.extra.iter(),|f,(SpawnID(spawn_id),_count)|
+					write!(f,"Teleport{spawn_id}")
+				)?;
+				writeln!(f,"")?;
+			}
+		}
 		if let DuplicateCheck(Err(DuplicateCheckContext(context)))=&self.spawn_counts{
 			write!(f,"Duplicate Spawn: ")?;
 			write_comma_separated(f,context.iter(),|f,(SpawnID(spawn_id),count)|
@@ -561,6 +571,24 @@ impl<'a> std::fmt::Display for MapCheck<'a>{
 			)?;
 			writeln!(f,"")?;
 		}
+		if let SetDifferenceCheck(Err(context))=&self.wormhole_in_counts{
+			if !context.extra.is_empty(){
+				write!(f,"WormholeIn with no matching WormholeOut: ")?;
+				write_comma_separated(f,context.extra.iter(),|f,(WormholeID(wormhole_id),_count)|
+					write!(f,"WormholeIn{wormhole_id}")
+				)?;
+				writeln!(f,"")?;
+			}
+			if !context.missing.is_empty(){
+				// This counts WormholeIn objects, but
+				// flipped logic is easier to understand
+				write!(f,"WormholeOut with no matching WormholeIn: ")?;
+				write_comma_separated(f,context.missing.iter(),|f,WormholeID(wormhole_id)|
+					write!(f,"WormholeOut{wormhole_id}")
+				)?;
+				writeln!(f,"")?;
+			}
+		}
 		if let DuplicateCheck(Err(DuplicateCheckContext(context)))=&self.wormhole_out_counts{
 			write!(f,"Duplicate WormholeOut: ")?;
 			write_comma_separated(f,context.iter(),|f,(WormholeID(wormhole_id),count)|