2024-03-05 18:55:56 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								from typing import Dict, NamedTuple, Optional
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								from BaseClasses import Location
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-16 21:46:34 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								from .Names import LocationName, RegionName
							 | 
						
					
						
							
								
									
										
										
										
											2024-03-05 18:55:56 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								celeste_64_base_id: int = 0xCA0000
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								class Celeste64Location(Location):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    game = "Celeste 64"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								class Celeste64LocationData(NamedTuple):
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    region: str
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    address: Optional[int] = None
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-05 02:58:49 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								strawberry_location_data_table: Dict[str, Celeste64LocationData] = {
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-16 21:46:34 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_1:  Celeste64LocationData(RegionName.intro_islands,        celeste_64_base_id + 0x00),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_2:  Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x01),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_3:  Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x02),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_4:  Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x03),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_5:  Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x04),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_6:  Celeste64LocationData(RegionName.highway_island,       celeste_64_base_id + 0x05),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_7:  Celeste64LocationData(RegionName.highway_island,       celeste_64_base_id + 0x06),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_8:  Celeste64LocationData(RegionName.nw_girders_island,    celeste_64_base_id + 0x07),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_9:  Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x08),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_10: Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x09),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_11: Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x0A),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_12: Celeste64LocationData(RegionName.badeline_tower_lower, celeste_64_base_id + 0x0B),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_13: Celeste64LocationData(RegionName.highway_island,       celeste_64_base_id + 0x0C),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_14: Celeste64LocationData(RegionName.ne_feathers_island,   celeste_64_base_id + 0x0D),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_15: Celeste64LocationData(RegionName.ne_feathers_island,   celeste_64_base_id + 0x0E),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_16: Celeste64LocationData(RegionName.ne_feathers_island,   celeste_64_base_id + 0x0F),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_17: Celeste64LocationData(RegionName.se_house_island,      celeste_64_base_id + 0x10),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_18: Celeste64LocationData(RegionName.se_house_island,      celeste_64_base_id + 0x11),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_19: Celeste64LocationData(RegionName.se_house_island,      celeste_64_base_id + 0x12),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_20: Celeste64LocationData(RegionName.badeline_tower_lower, celeste_64_base_id + 0x13),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_21: Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x14),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_22: Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x15),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_23: Celeste64LocationData(RegionName.highway_island,       celeste_64_base_id + 0x16),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_24: Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x17),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_25: Celeste64LocationData(RegionName.se_house_island,      celeste_64_base_id + 0x18),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_26: Celeste64LocationData(RegionName.highway_island,       celeste_64_base_id + 0x19),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_27: Celeste64LocationData(RegionName.ne_feathers_island,   celeste_64_base_id + 0x1A),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_28: Celeste64LocationData(RegionName.ne_feathers_island,   celeste_64_base_id + 0x1B),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_29: Celeste64LocationData(RegionName.badeline_tower_upper, celeste_64_base_id + 0x1C),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.strawberry_30: Celeste64LocationData(RegionName.badeline_island,      celeste_64_base_id + 0x1D),
							 | 
						
					
						
							
								
									
										
										
										
											2024-03-05 18:55:56 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-05 02:58:49 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								friend_location_data_table: Dict[str, Celeste64LocationData] = {
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-16 21:46:34 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    LocationName.granny_1:   Celeste64LocationData(RegionName.granny_island,   celeste_64_base_id + 0x100 + 0x00),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.granny_2:   Celeste64LocationData(RegionName.granny_island,   celeste_64_base_id + 0x100 + 0x01),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.granny_3:   Celeste64LocationData(RegionName.granny_island,   celeste_64_base_id + 0x100 + 0x02),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.theo_1:     Celeste64LocationData(RegionName.granny_island,   celeste_64_base_id + 0x100 + 0x03),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.theo_2:     Celeste64LocationData(RegionName.granny_island,   celeste_64_base_id + 0x100 + 0x04),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.theo_3:     Celeste64LocationData(RegionName.granny_island,   celeste_64_base_id + 0x100 + 0x05),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.badeline_1: Celeste64LocationData(RegionName.badeline_island, celeste_64_base_id + 0x100 + 0x06),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.badeline_2: Celeste64LocationData(RegionName.badeline_island, celeste_64_base_id + 0x100 + 0x07),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.badeline_3: Celeste64LocationData(RegionName.badeline_island, celeste_64_base_id + 0x100 + 0x08),
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-05 02:58:49 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								sign_location_data_table: Dict[str, Celeste64LocationData] = {
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-16 21:46:34 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    LocationName.sign_1: Celeste64LocationData(RegionName.granny_island,   celeste_64_base_id + 0x200 + 0x00),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.sign_2: Celeste64LocationData(RegionName.granny_island,   celeste_64_base_id + 0x200 + 0x01),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.sign_3: Celeste64LocationData(RegionName.highway_island,  celeste_64_base_id + 0x200 + 0x02),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.sign_4: Celeste64LocationData(RegionName.se_house_island, celeste_64_base_id + 0x200 + 0x03),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.sign_5: Celeste64LocationData(RegionName.badeline_island, celeste_64_base_id + 0x200 + 0x04),
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-05 02:58:49 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								car_location_data_table: Dict[str, Celeste64LocationData] = {
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-16 21:46:34 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    LocationName.car_1: Celeste64LocationData(RegionName.intro_islands, celeste_64_base_id + 0x300 + 0x00),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.car_2: Celeste64LocationData(RegionName.granny_island, celeste_64_base_id + 0x300 + 0x01),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								checkpoint_location_data_table: Dict[str, Celeste64LocationData] = {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.checkpoint_1:  Celeste64LocationData(RegionName.intro_islands,        celeste_64_base_id + 0x400 + 0x00),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.checkpoint_2:  Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x400 + 0x01),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.checkpoint_3:  Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x400 + 0x02),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.checkpoint_4:  Celeste64LocationData(RegionName.granny_island,        celeste_64_base_id + 0x400 + 0x03),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.checkpoint_5:  Celeste64LocationData(RegionName.highway_island,       celeste_64_base_id + 0x400 + 0x04),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.checkpoint_6:  Celeste64LocationData(RegionName.highway_island,       celeste_64_base_id + 0x400 + 0x05),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.checkpoint_7:  Celeste64LocationData(RegionName.ne_feathers_island,   celeste_64_base_id + 0x400 + 0x06),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.checkpoint_8:  Celeste64LocationData(RegionName.se_house_island,      celeste_64_base_id + 0x400 + 0x07),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.checkpoint_9:  Celeste64LocationData(RegionName.badeline_tower_upper, celeste_64_base_id + 0x400 + 0x08),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    LocationName.checkpoint_10: Celeste64LocationData(RegionName.badeline_island,      celeste_64_base_id + 0x400 + 0x09),
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-05 02:58:49 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								location_data_table: Dict[str, Celeste64LocationData] = {**strawberry_location_data_table,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                                                         **friend_location_data_table,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                                                         **sign_location_data_table,
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-16 21:46:34 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                                                         **car_location_data_table,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                                                         **checkpoint_location_data_table}
							 | 
						
					
						
							
								
									
										
										
										
											2024-05-05 02:58:49 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-03-05 18:55:56 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								location_table = {name: data.address for name, data in location_data_table.items() if data.address is not None}
							 |