347 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			347 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Python
		
	
	
	
 | 
						|
chao_name_conversion = {
 | 
						|
	"!": 0x01,
 | 
						|
	"!": 0x02,
 | 
						|
	"#": 0x03,
 | 
						|
	"$": 0x04,
 | 
						|
	"%": 0x05,
 | 
						|
	"&": 0x06,
 | 
						|
	"\\": 0x07,
 | 
						|
	"(": 0x08,
 | 
						|
	")": 0x09,
 | 
						|
	"*": 0x0A,
 | 
						|
	"+": 0x0B,
 | 
						|
	",": 0x0C,
 | 
						|
	"-": 0x0D,
 | 
						|
	".": 0x0E,
 | 
						|
	"/": 0x0F,
 | 
						|
 | 
						|
	"0": 0x10,
 | 
						|
	"1": 0x11,
 | 
						|
	"2": 0x12,
 | 
						|
	"3": 0x13,
 | 
						|
	"4": 0x14,
 | 
						|
	"5": 0x15,
 | 
						|
	"6": 0x16,
 | 
						|
	"7": 0x17,
 | 
						|
	"8": 0x18,
 | 
						|
	"9": 0x19,
 | 
						|
	":": 0x1A,
 | 
						|
	";": 0x1B,
 | 
						|
	"<": 0x1C,
 | 
						|
	"=": 0x1D,
 | 
						|
	">": 0x1E,
 | 
						|
	"?": 0x1F,
 | 
						|
 | 
						|
	"@": 0x20,
 | 
						|
	"A": 0x21,
 | 
						|
	"B": 0x22,
 | 
						|
	"C": 0x23,
 | 
						|
	"D": 0x24,
 | 
						|
	"E": 0x25,
 | 
						|
	"F": 0x26,
 | 
						|
	"G": 0x27,
 | 
						|
	"H": 0x28,
 | 
						|
	"I": 0x29,
 | 
						|
	"J": 0x2A,
 | 
						|
	"K": 0x2B,
 | 
						|
	"L": 0x2C,
 | 
						|
	"M": 0x2D,
 | 
						|
	"N": 0x2E,
 | 
						|
	"O": 0x2F,
 | 
						|
 | 
						|
	"P": 0x30,
 | 
						|
	"Q": 0x31,
 | 
						|
	"R": 0x32,
 | 
						|
	"S": 0x33,
 | 
						|
	"T": 0x34,
 | 
						|
	"U": 0x35,
 | 
						|
	"V": 0x36,
 | 
						|
	"W": 0x37,
 | 
						|
	"X": 0x38,
 | 
						|
	"Y": 0x39,
 | 
						|
	"Z": 0x3A,
 | 
						|
	"[": 0x3B,
 | 
						|
	"¥": 0x3C,
 | 
						|
	"]": 0x3D,
 | 
						|
	"^": 0x3E,
 | 
						|
	"_": 0x3F,
 | 
						|
 | 
						|
	"`": 0x40,
 | 
						|
	"a": 0x41,
 | 
						|
	"b": 0x42,
 | 
						|
	"c": 0x43,
 | 
						|
	"d": 0x44,
 | 
						|
	"e": 0x45,
 | 
						|
	"f": 0x46,
 | 
						|
	"g": 0x47,
 | 
						|
	"h": 0x48,
 | 
						|
	"i": 0x49,
 | 
						|
	"j": 0x4A,
 | 
						|
	"k": 0x4B,
 | 
						|
	"l": 0x4C,
 | 
						|
	"m": 0x4D,
 | 
						|
	"n": 0x4E,
 | 
						|
	"o": 0x4F,
 | 
						|
 | 
						|
	"p": 0x50,
 | 
						|
	"q": 0x51,
 | 
						|
	"r": 0x52,
 | 
						|
	"s": 0x53,
 | 
						|
	"t": 0x54,
 | 
						|
	"u": 0x55,
 | 
						|
	"v": 0x56,
 | 
						|
	"w": 0x57,
 | 
						|
	"x": 0x58,
 | 
						|
	"y": 0x59,
 | 
						|
	"z": 0x5A,
 | 
						|
	"{": 0x5B,
 | 
						|
	"|": 0x5C,
 | 
						|
	"}": 0x5D,
 | 
						|
	"~": 0x5E,
 | 
						|
	" ": 0x5F,
 | 
						|
}
 | 
						|
 | 
						|
sample_chao_names = [
 | 
						|
	"Aginah",
 | 
						|
	"Biter",
 | 
						|
	"Steve",
 | 
						|
	"Ryley",
 | 
						|
	"Watcher",
 | 
						|
	"Acrid",
 | 
						|
	"Sheik",
 | 
						|
	"Lunais",
 | 
						|
	"Samus",
 | 
						|
	"The Kid",
 | 
						|
	"Jack",
 | 
						|
	"Sir Lee",
 | 
						|
	"Viridian",
 | 
						|
	"Rouhi",
 | 
						|
	"Toad",
 | 
						|
	"Merit",
 | 
						|
	"Ridley",
 | 
						|
	"Hornet",
 | 
						|
	"Carl",
 | 
						|
	"Raynor",
 | 
						|
	"Dixie",
 | 
						|
	"Wolnir",
 | 
						|
	"Mario",
 | 
						|
	"Gary",
 | 
						|
	"Wayne",
 | 
						|
	"Kevin",
 | 
						|
	"J.J.",
 | 
						|
	"Maxim",
 | 
						|
	"Redento",
 | 
						|
	"Caesar",
 | 
						|
	"Abigail",
 | 
						|
	"Link",
 | 
						|
	"Ninja",
 | 
						|
	"Roxas",
 | 
						|
	"Marin",
 | 
						|
	"Yorgle",
 | 
						|
	"DLC",
 | 
						|
	"Mina",
 | 
						|
	"Sans",
 | 
						|
	"Lan",
 | 
						|
	"Rin",
 | 
						|
	"Doomguy",
 | 
						|
	"Guide",
 | 
						|
	"May",
 | 
						|
	"Hubert",
 | 
						|
	"Corvus",
 | 
						|
	"Nigel",
 | 
						|
]
 | 
						|
 | 
						|
totally_real_item_names = [
 | 
						|
	"Mallet",
 | 
						|
	"Lava Rod",
 | 
						|
	"Master Knife",
 | 
						|
	"Slippers",
 | 
						|
	"Spade",
 | 
						|
 | 
						|
	"Progressive Car Upgrade",
 | 
						|
	"Bonus Token",
 | 
						|
 | 
						|
	"Shortnail",
 | 
						|
	"Runmaster",
 | 
						|
 | 
						|
	"Courage Form",
 | 
						|
	"Auto Courage",
 | 
						|
	"Donald Defender",
 | 
						|
	"Goofy Blizzard",
 | 
						|
	"Ultimate Weapon",
 | 
						|
 | 
						|
	"Song of the Sky Whale",
 | 
						|
	"Gryphon Shoes",
 | 
						|
	"Wing Key",
 | 
						|
	"Strength Anklet",
 | 
						|
 | 
						|
	"Hairclip",
 | 
						|
 | 
						|
	"Key of Wisdom",
 | 
						|
 | 
						|
	"Baking",
 | 
						|
	"Progressive Block Mining",
 | 
						|
 | 
						|
	"Jar",
 | 
						|
	"Whistle of Space",
 | 
						|
	"Rito Tunic",
 | 
						|
 | 
						|
	"Kitchen Sink",
 | 
						|
 | 
						|
	"Rock Badge",
 | 
						|
	"Key Card",
 | 
						|
	"Pikachu",
 | 
						|
	"Eevee",
 | 
						|
	"HM02 Strength",
 | 
						|
 | 
						|
	"Progressive Astromancers",
 | 
						|
	"Progressive Chefs",
 | 
						|
	"The Living Safe",
 | 
						|
	"Lady Quinn",
 | 
						|
 | 
						|
	"Dio's Worst Enemy",
 | 
						|
 | 
						|
	"Pink Chaos Emerald",
 | 
						|
	"Black Chaos Emerald",
 | 
						|
	"Tails - Large Cannon",
 | 
						|
	"Eggman - Bazooka",
 | 
						|
	"Eggman - Booster",
 | 
						|
	"Knuckles - Shades",
 | 
						|
	"Sonic - Magic Shoes",
 | 
						|
	"Shadow - Bounce Bracelet",
 | 
						|
	"Rouge - Air Necklace",
 | 
						|
	"Big Key (Eggman's Pyramid)",
 | 
						|
 | 
						|
	"Sensor Bunker",
 | 
						|
	"Phantom",
 | 
						|
	"Soldier",
 | 
						|
 | 
						|
	"Plasma Suit",
 | 
						|
	"Gravity Beam",
 | 
						|
	"Hi-Jump Ball",
 | 
						|
 | 
						|
	"Cannon Unlock LLL",
 | 
						|
	"Feather Cap",
 | 
						|
 | 
						|
	"Progressive Yoshi",
 | 
						|
	"Purple Switch Palace",
 | 
						|
	"Cape Feather",
 | 
						|
 | 
						|
	"Cane of Bryan",
 | 
						|
 | 
						|
	"Van Repair",
 | 
						|
	"Autumn",
 | 
						|
	"Galaxy Knife",
 | 
						|
	"Green Cabbage Seeds",
 | 
						|
 | 
						|
	"Timespinner Cog 1",
 | 
						|
 | 
						|
	"Ladder",
 | 
						|
 | 
						|
	"Visible Dots",
 | 
						|
]
 | 
						|
 | 
						|
all_exits = [
 | 
						|
	0x00,  # Lobby to Neutral
 | 
						|
	0x01,  # Lobby to Hero
 | 
						|
	0x02,  # Lobby to Dark
 | 
						|
	0x03,  # Lobby to Kindergarten
 | 
						|
	0x04,  # Neutral to Lobby
 | 
						|
	0x05,  # Neutral to Cave
 | 
						|
	0x06,  # Neutral to Transporter
 | 
						|
	0x07,  # Hero to Lobby
 | 
						|
	0x08,  # Hero to Transporter
 | 
						|
	0x09,  # Dark to Lobby
 | 
						|
	0x0A,  # Dark to Transporter
 | 
						|
	0x0B,  # Cave to Neutral
 | 
						|
	0x0C,  # Cave to Race
 | 
						|
	0x0D,  # Cave to Karate
 | 
						|
	0x0E,  # Race to Cave
 | 
						|
	0x0F,  # Karate to Cave
 | 
						|
	0x10,  # Transporter to Neutral
 | 
						|
	#0x11,  # Transporter to Hero
 | 
						|
	#0x12,  # Transporter to Dark
 | 
						|
	0x13,  # Kindergarten to Lobby
 | 
						|
]
 | 
						|
 | 
						|
all_destinations = [
 | 
						|
	0x07,  # Lobby
 | 
						|
	0x07,
 | 
						|
	0x07,
 | 
						|
	0x07,
 | 
						|
	0x01,  # Neutral
 | 
						|
	0x01,
 | 
						|
	0x01,
 | 
						|
	0x02,  # Hero
 | 
						|
	0x02,
 | 
						|
	0x03,  # Dark
 | 
						|
	0x03,
 | 
						|
	0x09,  # Cave
 | 
						|
	0x09,
 | 
						|
	0x09,
 | 
						|
	0x05,  # Chao Race
 | 
						|
	0x0A,  # Chao Karate
 | 
						|
	0x0C,  # Transporter
 | 
						|
	#0x0C,
 | 
						|
	#0x0C,
 | 
						|
	0x06,  # Kindergarten
 | 
						|
]
 | 
						|
 | 
						|
multi_rooms = [
 | 
						|
	0x07,
 | 
						|
	0x01,
 | 
						|
	0x02,
 | 
						|
	0x03,
 | 
						|
	0x09,
 | 
						|
]
 | 
						|
 | 
						|
single_rooms = [
 | 
						|
	0x05,
 | 
						|
	0x0A,
 | 
						|
	0x0C,
 | 
						|
	0x06,
 | 
						|
]
 | 
						|
 | 
						|
room_to_exits_map = {
 | 
						|
	0x07: [0x00, 0x01, 0x02, 0x03],
 | 
						|
	0x01: [0x04, 0x05, 0x06],
 | 
						|
	0x02: [0x07, 0x08],
 | 
						|
	0x03: [0x09, 0x0A],
 | 
						|
	0x09: [0x0B, 0x0C, 0x0D],
 | 
						|
	0x05: [0x0E],
 | 
						|
	0x0A: [0x0F],
 | 
						|
	0x0C: [0x10],#, 0x11, 0x12],
 | 
						|
	0x06: [0x13],
 | 
						|
}
 | 
						|
 | 
						|
exit_to_room_map = {
 | 
						|
	0x00: 0x07,  # Lobby to Neutral
 | 
						|
	0x01: 0x07,  # Lobby to Hero
 | 
						|
	0x02: 0x07,  # Lobby to Dark
 | 
						|
	0x03: 0x07,  # Lobby to Kindergarten
 | 
						|
	0x04: 0x01,  # Neutral to Lobby
 | 
						|
	0x05: 0x01,  # Neutral to Cave
 | 
						|
	0x06: 0x01,  # Neutral to Transporter
 | 
						|
	0x07: 0x02,  # Hero to Lobby
 | 
						|
	0x08: 0x02,  # Hero to Transporter
 | 
						|
	0x09: 0x03,  # Dark to Lobby
 | 
						|
	0x0A: 0x03,  # Dark to Transporter
 | 
						|
	0x0B: 0x09,  # Cave to Neutral
 | 
						|
	0x0C: 0x09,  # Cave to Race
 | 
						|
	0x0D: 0x09,  # Cave to Karate
 | 
						|
	0x0E: 0x05,  # Race to Cave
 | 
						|
	0x0F: 0x0A,  # Karate to Cave
 | 
						|
	0x10: 0x0C,  # Transporter to Neutral
 | 
						|
	#0x11: 0x0C,  # Transporter to Hero
 | 
						|
	#0x12: 0x0C,  # Transporter to Dark
 | 
						|
	0x13: 0x06,  # Kindergarten to Lobby
 | 
						|
}
 | 
						|
 | 
						|
valid_kindergarten_exits = [
 | 
						|
	0x04,  # Neutral to Lobby
 | 
						|
	0x05,  # Neutral to Cave
 | 
						|
	0x07,  # Hero to Lobby
 | 
						|
	0x09,  # Dark to Lobby
 | 
						|
]
 |