Archipelago/worlds/sa2b/Locations.py

1776 lines
72 KiB
Python

import typing
from BaseClasses import Location, MultiWorld
from worlds.AutoWorld import World
from .Names import LocationName
from .Missions import stage_name_prefixes, mission_orders
class SA2BLocation(Location):
game: str = "Sonic Adventure 2: Battle"
mission_location_table = {
LocationName.city_escape_1: 0xFF0000,
LocationName.wild_canyon_1: 0xFF0001,
LocationName.prison_lane_1: 0xFF0002,
LocationName.metal_harbor_1: 0xFF0003,
LocationName.green_forest_1: 0xFF0004,
LocationName.pumpkin_hill_1: 0xFF0005,
LocationName.mission_street_1: 0xFF0006,
LocationName.aquatic_mine_1: 0xFF0007,
LocationName.route_101_1: 0xFF0008,
LocationName.hidden_base_1: 0xFF0009,
LocationName.pyramid_cave_1: 0xFF000A,
LocationName.death_chamber_1: 0xFF000B,
LocationName.eternal_engine_1: 0xFF000C,
LocationName.meteor_herd_1: 0xFF000D,
LocationName.crazy_gadget_1: 0xFF000E,
LocationName.final_rush_1: 0xFF000F,
LocationName.iron_gate_1: 0xFF0010,
LocationName.dry_lagoon_1: 0xFF0011,
LocationName.sand_ocean_1: 0xFF0012,
LocationName.radical_highway_1: 0xFF0013,
LocationName.egg_quarters_1: 0xFF0014,
LocationName.lost_colony_1: 0xFF0015,
LocationName.weapons_bed_1: 0xFF0016,
LocationName.security_hall_1: 0xFF0017,
LocationName.white_jungle_1: 0xFF0018,
LocationName.route_280_1: 0xFF0019,
LocationName.sky_rail_1: 0xFF001A,
LocationName.mad_space_1: 0xFF001B,
LocationName.cosmic_wall_1: 0xFF001C,
LocationName.final_chase_1: 0xFF001D,
LocationName.cannon_core_1: 0xFF001E,
LocationName.city_escape_2: 0xFF0020,
LocationName.wild_canyon_2: 0xFF0021,
LocationName.prison_lane_2: 0xFF0022,
LocationName.metal_harbor_2: 0xFF0023,
LocationName.green_forest_2: 0xFF0024,
LocationName.pumpkin_hill_2: 0xFF0025,
LocationName.mission_street_2: 0xFF0026,
LocationName.aquatic_mine_2: 0xFF0027,
LocationName.route_101_2: 0xFF0028,
LocationName.hidden_base_2: 0xFF0029,
LocationName.pyramid_cave_2: 0xFF002A,
LocationName.death_chamber_2: 0xFF002B,
LocationName.eternal_engine_2: 0xFF002C,
LocationName.meteor_herd_2: 0xFF002D,
LocationName.crazy_gadget_2: 0xFF002E,
LocationName.final_rush_2: 0xFF002F,
LocationName.iron_gate_2: 0xFF0030,
LocationName.dry_lagoon_2: 0xFF0031,
LocationName.sand_ocean_2: 0xFF0032,
LocationName.radical_highway_2: 0xFF0033,
LocationName.egg_quarters_2: 0xFF0034,
LocationName.lost_colony_2: 0xFF0035,
LocationName.weapons_bed_2: 0xFF0036,
LocationName.security_hall_2: 0xFF0037,
LocationName.white_jungle_2: 0xFF0038,
LocationName.route_280_2: 0xFF0039,
LocationName.sky_rail_2: 0xFF003A,
LocationName.mad_space_2: 0xFF003B,
LocationName.cosmic_wall_2: 0xFF003C,
LocationName.final_chase_2: 0xFF003D,
LocationName.cannon_core_2: 0xFF003E,
LocationName.city_escape_3: 0xFF0040,
LocationName.wild_canyon_3: 0xFF0041,
LocationName.prison_lane_3: 0xFF0042,
LocationName.metal_harbor_3: 0xFF0043,
LocationName.green_forest_3: 0xFF0044,
LocationName.pumpkin_hill_3: 0xFF0045,
LocationName.mission_street_3: 0xFF0046,
LocationName.aquatic_mine_3: 0xFF0047,
LocationName.route_101_3: 0xFF0048,
LocationName.hidden_base_3: 0xFF0049,
LocationName.pyramid_cave_3: 0xFF004A,
LocationName.death_chamber_3: 0xFF004B,
LocationName.eternal_engine_3: 0xFF004C,
LocationName.meteor_herd_3: 0xFF004D,
LocationName.crazy_gadget_3: 0xFF004E,
LocationName.final_rush_3: 0xFF004F,
LocationName.iron_gate_3: 0xFF0050,
LocationName.dry_lagoon_3: 0xFF0051,
LocationName.sand_ocean_3: 0xFF0052,
LocationName.radical_highway_3: 0xFF0053,
LocationName.egg_quarters_3: 0xFF0054,
LocationName.lost_colony_3: 0xFF0055,
LocationName.weapons_bed_3: 0xFF0056,
LocationName.security_hall_3: 0xFF0057,
LocationName.white_jungle_3: 0xFF0058,
LocationName.route_280_3: 0xFF0059,
LocationName.sky_rail_3: 0xFF005A,
LocationName.mad_space_3: 0xFF005B,
LocationName.cosmic_wall_3: 0xFF005C,
LocationName.final_chase_3: 0xFF005D,
LocationName.cannon_core_3: 0xFF005E,
LocationName.city_escape_4: 0xFF0060,
LocationName.wild_canyon_4: 0xFF0061,
LocationName.prison_lane_4: 0xFF0062,
LocationName.metal_harbor_4: 0xFF0063,
LocationName.green_forest_4: 0xFF0064,
LocationName.pumpkin_hill_4: 0xFF0065,
LocationName.mission_street_4: 0xFF0066,
LocationName.aquatic_mine_4: 0xFF0067,
LocationName.route_101_4: 0xFF0068,
LocationName.hidden_base_4: 0xFF0069,
LocationName.pyramid_cave_4: 0xFF006A,
LocationName.death_chamber_4: 0xFF006B,
LocationName.eternal_engine_4: 0xFF006C,
LocationName.meteor_herd_4: 0xFF006D,
LocationName.crazy_gadget_4: 0xFF006E,
LocationName.final_rush_4: 0xFF006F,
LocationName.iron_gate_4: 0xFF0070,
LocationName.dry_lagoon_4: 0xFF0071,
LocationName.sand_ocean_4: 0xFF0072,
LocationName.radical_highway_4: 0xFF0073,
LocationName.egg_quarters_4: 0xFF0074,
LocationName.lost_colony_4: 0xFF0075,
LocationName.weapons_bed_4: 0xFF0076,
LocationName.security_hall_4: 0xFF0077,
LocationName.white_jungle_4: 0xFF0078,
LocationName.route_280_4: 0xFF0079,
LocationName.sky_rail_4: 0xFF007A,
LocationName.mad_space_4: 0xFF007B,
LocationName.cosmic_wall_4: 0xFF007C,
LocationName.final_chase_4: 0xFF007D,
LocationName.cannon_core_4: 0xFF007E,
LocationName.city_escape_5: 0xFF0080,
LocationName.wild_canyon_5: 0xFF0081,
LocationName.prison_lane_5: 0xFF0082,
LocationName.metal_harbor_5: 0xFF0083,
LocationName.green_forest_5: 0xFF0084,
LocationName.pumpkin_hill_5: 0xFF0085,
LocationName.mission_street_5: 0xFF0086,
LocationName.aquatic_mine_5: 0xFF0087,
LocationName.route_101_5: 0xFF0088,
LocationName.hidden_base_5: 0xFF0089,
LocationName.pyramid_cave_5: 0xFF008A,
LocationName.death_chamber_5: 0xFF008B,
LocationName.eternal_engine_5: 0xFF008C,
LocationName.meteor_herd_5: 0xFF008D,
LocationName.crazy_gadget_5: 0xFF008E,
LocationName.final_rush_5: 0xFF008F,
LocationName.iron_gate_5: 0xFF0090,
LocationName.dry_lagoon_5: 0xFF0091,
LocationName.sand_ocean_5: 0xFF0092,
LocationName.radical_highway_5: 0xFF0093,
LocationName.egg_quarters_5: 0xFF0094,
LocationName.lost_colony_5: 0xFF0095,
LocationName.weapons_bed_5: 0xFF0096,
LocationName.security_hall_5: 0xFF0097,
LocationName.white_jungle_5: 0xFF0098,
LocationName.route_280_5: 0xFF0099,
LocationName.sky_rail_5: 0xFF009A,
LocationName.mad_space_5: 0xFF009B,
LocationName.cosmic_wall_5: 0xFF009C,
LocationName.final_chase_5: 0xFF009D,
LocationName.cannon_core_5: 0xFF009E,
}
upgrade_location_table = {
LocationName.city_escape_upgrade: 0xFF00A0,
LocationName.wild_canyon_upgrade: 0xFF00A1,
LocationName.prison_lane_upgrade: 0xFF00A2,
LocationName.metal_harbor_upgrade: 0xFF00A3,
LocationName.green_forest_upgrade: 0xFF00A4,
LocationName.pumpkin_hill_upgrade: 0xFF00A5,
LocationName.mission_street_upgrade: 0xFF00A6,
LocationName.aquatic_mine_upgrade: 0xFF00A7,
LocationName.hidden_base_upgrade: 0xFF00A9,
LocationName.pyramid_cave_upgrade: 0xFF00AA,
LocationName.death_chamber_upgrade: 0xFF00AB,
LocationName.eternal_engine_upgrade: 0xFF00AC,
LocationName.meteor_herd_upgrade: 0xFF00AD,
LocationName.crazy_gadget_upgrade: 0xFF00AE,
LocationName.final_rush_upgrade: 0xFF00AF,
LocationName.iron_gate_upgrade: 0xFF00B0,
LocationName.dry_lagoon_upgrade: 0xFF00B1,
LocationName.sand_ocean_upgrade: 0xFF00B2,
LocationName.radical_highway_upgrade: 0xFF00B3,
LocationName.egg_quarters_upgrade: 0xFF00B4,
LocationName.lost_colony_upgrade: 0xFF00B5,
LocationName.weapons_bed_upgrade: 0xFF00B6,
LocationName.security_hall_upgrade: 0xFF00B7,
LocationName.white_jungle_upgrade: 0xFF00B8,
LocationName.sky_rail_upgrade: 0xFF00BA,
LocationName.mad_space_upgrade: 0xFF00BB,
LocationName.cosmic_wall_upgrade: 0xFF00BC,
LocationName.final_chase_upgrade: 0xFF00BD,
}
chao_key_location_table = {
LocationName.city_escape_chao_1: 0xFF0400,
LocationName.wild_canyon_chao_1: 0xFF0401,
LocationName.prison_lane_chao_1: 0xFF0402,
LocationName.metal_harbor_chao_1: 0xFF0403,
LocationName.green_forest_chao_1: 0xFF0404,
LocationName.pumpkin_hill_chao_1: 0xFF0405,
LocationName.mission_street_chao_1: 0xFF0406,
LocationName.aquatic_mine_chao_1: 0xFF0407,
LocationName.hidden_base_chao_1: 0xFF0409,
LocationName.pyramid_cave_chao_1: 0xFF040A,
LocationName.death_chamber_chao_1: 0xFF040B,
LocationName.eternal_engine_chao_1: 0xFF040C,
LocationName.meteor_herd_chao_1: 0xFF040D,
LocationName.crazy_gadget_chao_1: 0xFF040E,
LocationName.final_rush_chao_1: 0xFF040F,
LocationName.iron_gate_chao_1: 0xFF0410,
LocationName.dry_lagoon_chao_1: 0xFF0411,
LocationName.sand_ocean_chao_1: 0xFF0412,
LocationName.radical_highway_chao_1: 0xFF0413,
LocationName.egg_quarters_chao_1: 0xFF0414,
LocationName.lost_colony_chao_1: 0xFF0415,
LocationName.weapons_bed_chao_1: 0xFF0416,
LocationName.security_hall_chao_1: 0xFF0417,
LocationName.white_jungle_chao_1: 0xFF0418,
LocationName.sky_rail_chao_1: 0xFF041A,
LocationName.mad_space_chao_1: 0xFF041B,
LocationName.cosmic_wall_chao_1: 0xFF041C,
LocationName.final_chase_chao_1: 0xFF041D,
LocationName.cannon_core_chao_1: 0xFF041E,
LocationName.city_escape_chao_2: 0xFF0420,
LocationName.wild_canyon_chao_2: 0xFF0421,
LocationName.prison_lane_chao_2: 0xFF0422,
LocationName.metal_harbor_chao_2: 0xFF0423,
LocationName.green_forest_chao_2: 0xFF0424,
LocationName.pumpkin_hill_chao_2: 0xFF0425,
LocationName.mission_street_chao_2: 0xFF0426,
LocationName.aquatic_mine_chao_2: 0xFF0427,
LocationName.hidden_base_chao_2: 0xFF0429,
LocationName.pyramid_cave_chao_2: 0xFF042A,
LocationName.death_chamber_chao_2: 0xFF042B,
LocationName.eternal_engine_chao_2: 0xFF042C,
LocationName.meteor_herd_chao_2: 0xFF042D,
LocationName.crazy_gadget_chao_2: 0xFF042E,
LocationName.final_rush_chao_2: 0xFF042F,
LocationName.iron_gate_chao_2: 0xFF0430,
LocationName.dry_lagoon_chao_2: 0xFF0431,
LocationName.sand_ocean_chao_2: 0xFF0432,
LocationName.radical_highway_chao_2: 0xFF0433,
LocationName.egg_quarters_chao_2: 0xFF0434,
LocationName.lost_colony_chao_2: 0xFF0435,
LocationName.weapons_bed_chao_2: 0xFF0436,
LocationName.security_hall_chao_2: 0xFF0437,
LocationName.white_jungle_chao_2: 0xFF0438,
LocationName.sky_rail_chao_2: 0xFF043A,
LocationName.mad_space_chao_2: 0xFF043B,
LocationName.cosmic_wall_chao_2: 0xFF043C,
LocationName.final_chase_chao_2: 0xFF043D,
LocationName.cannon_core_chao_2: 0xFF043E,
LocationName.city_escape_chao_3: 0xFF0440,
LocationName.wild_canyon_chao_3: 0xFF0441,
LocationName.prison_lane_chao_3: 0xFF0442,
LocationName.metal_harbor_chao_3: 0xFF0443,
LocationName.green_forest_chao_3: 0xFF0444,
LocationName.pumpkin_hill_chao_3: 0xFF0445,
LocationName.mission_street_chao_3: 0xFF0446,
LocationName.aquatic_mine_chao_3: 0xFF0447,
LocationName.pyramid_cave_chao_3: 0xFF044A,
LocationName.death_chamber_chao_3: 0xFF044B,
LocationName.eternal_engine_chao_3: 0xFF044C,
LocationName.meteor_herd_chao_3: 0xFF044D,
LocationName.crazy_gadget_chao_3: 0xFF044E,
LocationName.final_rush_chao_3: 0xFF044F,
LocationName.iron_gate_chao_3: 0xFF0450,
LocationName.dry_lagoon_chao_3: 0xFF0451,
LocationName.sand_ocean_chao_3: 0xFF0452,
LocationName.radical_highway_chao_3: 0xFF0453,
LocationName.egg_quarters_chao_3: 0xFF0454,
LocationName.lost_colony_chao_3: 0xFF0455,
LocationName.weapons_bed_chao_3: 0xFF0456,
LocationName.security_hall_chao_3: 0xFF0457,
LocationName.white_jungle_chao_3: 0xFF0458,
LocationName.sky_rail_chao_3: 0xFF045A,
LocationName.mad_space_chao_3: 0xFF045B,
LocationName.cosmic_wall_chao_3: 0xFF045C,
LocationName.final_chase_chao_3: 0xFF045D,
LocationName.cannon_core_chao_3: 0xFF045E,
}
pipe_location_table = {
LocationName.city_escape_pipe_1: 0xFF0500,
LocationName.wild_canyon_pipe_1: 0xFF0501,
LocationName.prison_lane_pipe_1: 0xFF0502,
LocationName.metal_harbor_pipe_1: 0xFF0503,
LocationName.green_forest_pipe_1: 0xFF0504,
LocationName.pumpkin_hill_pipe_1: 0xFF0505,
LocationName.mission_street_pipe_1: 0xFF0506,
LocationName.aquatic_mine_pipe_1: 0xFF0507,
LocationName.hidden_base_pipe_1: 0xFF0509,
LocationName.pyramid_cave_pipe_1: 0xFF050A,
LocationName.death_chamber_pipe_1: 0xFF050B,
LocationName.eternal_engine_pipe_1: 0xFF050C,
LocationName.meteor_herd_pipe_1: 0xFF050D,
LocationName.crazy_gadget_pipe_1: 0xFF050E,
LocationName.final_rush_pipe_1: 0xFF050F,
LocationName.iron_gate_pipe_1: 0xFF0510,
LocationName.dry_lagoon_pipe_1: 0xFF0511,
LocationName.sand_ocean_pipe_1: 0xFF0512,
LocationName.radical_highway_pipe_1: 0xFF0513,
LocationName.egg_quarters_pipe_1: 0xFF0514,
LocationName.lost_colony_pipe_1: 0xFF0515,
LocationName.weapons_bed_pipe_1: 0xFF0516,
LocationName.security_hall_pipe_1: 0xFF0517,
LocationName.white_jungle_pipe_1: 0xFF0518,
LocationName.sky_rail_pipe_1: 0xFF051A,
LocationName.mad_space_pipe_1: 0xFF051B,
LocationName.cosmic_wall_pipe_1: 0xFF051C,
LocationName.final_chase_pipe_1: 0xFF051D,
LocationName.cannon_core_pipe_1: 0xFF051E,
LocationName.city_escape_pipe_2: 0xFF0520,
LocationName.wild_canyon_pipe_2: 0xFF0521,
LocationName.prison_lane_pipe_2: 0xFF0522,
LocationName.green_forest_pipe_2: 0xFF0524,
LocationName.mission_street_pipe_2: 0xFF0526,
LocationName.aquatic_mine_pipe_2: 0xFF0527,
LocationName.hidden_base_pipe_2: 0xFF0529,
LocationName.pyramid_cave_pipe_2: 0xFF052A,
LocationName.death_chamber_pipe_2: 0xFF052B,
LocationName.eternal_engine_pipe_2: 0xFF052C,
LocationName.meteor_herd_pipe_2: 0xFF052D,
LocationName.crazy_gadget_pipe_2: 0xFF052E,
LocationName.final_rush_pipe_2: 0xFF052F,
LocationName.iron_gate_pipe_2: 0xFF0530,
LocationName.sand_ocean_pipe_2: 0xFF0532,
LocationName.radical_highway_pipe_2: 0xFF0533,
LocationName.egg_quarters_pipe_2: 0xFF0534,
LocationName.lost_colony_pipe_2: 0xFF0535,
LocationName.weapons_bed_pipe_2: 0xFF0536,
LocationName.white_jungle_pipe_2: 0xFF0538,
LocationName.sky_rail_pipe_2: 0xFF053A,
LocationName.mad_space_pipe_2: 0xFF053B,
LocationName.cosmic_wall_pipe_2: 0xFF053C,
LocationName.final_chase_pipe_2: 0xFF053D,
LocationName.cannon_core_pipe_2: 0xFF053E,
LocationName.city_escape_pipe_3: 0xFF0540,
LocationName.wild_canyon_pipe_3: 0xFF0541,
LocationName.prison_lane_pipe_3: 0xFF0542,
LocationName.mission_street_pipe_3: 0xFF0546,
LocationName.aquatic_mine_pipe_3: 0xFF0547,
LocationName.hidden_base_pipe_3: 0xFF0549,
LocationName.pyramid_cave_pipe_3: 0xFF054A,
LocationName.death_chamber_pipe_3: 0xFF054B,
LocationName.eternal_engine_pipe_3: 0xFF054C,
LocationName.meteor_herd_pipe_3: 0xFF054D,
LocationName.crazy_gadget_pipe_3: 0xFF054E,
LocationName.iron_gate_pipe_3: 0xFF0550,
LocationName.sand_ocean_pipe_3: 0xFF0552,
LocationName.radical_highway_pipe_3: 0xFF0553,
LocationName.weapons_bed_pipe_3: 0xFF0556,
LocationName.white_jungle_pipe_3: 0xFF0558,
LocationName.sky_rail_pipe_3: 0xFF055A,
LocationName.mad_space_pipe_3: 0xFF055B,
LocationName.cosmic_wall_pipe_3: 0xFF055C,
LocationName.final_chase_pipe_3: 0xFF055D,
LocationName.cannon_core_pipe_3: 0xFF055E,
LocationName.city_escape_pipe_4: 0xFF0560,
LocationName.hidden_base_pipe_4: 0xFF0569,
LocationName.pyramid_cave_pipe_4: 0xFF056A,
LocationName.eternal_engine_pipe_4: 0xFF056C,
LocationName.crazy_gadget_pipe_4: 0xFF056E,
LocationName.iron_gate_pipe_4: 0xFF0570,
LocationName.sand_ocean_pipe_4: 0xFF0572,
LocationName.weapons_bed_pipe_4: 0xFF0576,
LocationName.white_jungle_pipe_4: 0xFF0578,
LocationName.sky_rail_pipe_4: 0xFF057A,
LocationName.mad_space_pipe_4: 0xFF057B,
LocationName.cosmic_wall_pipe_4: 0xFF057C,
LocationName.cannon_core_pipe_4: 0xFF057E,
LocationName.hidden_base_pipe_5: 0xFF0589,
LocationName.eternal_engine_pipe_5: 0xFF058C,
LocationName.iron_gate_pipe_5: 0xFF0590,
LocationName.sand_ocean_pipe_5: 0xFF0592,
LocationName.weapons_bed_pipe_5: 0xFF0596,
LocationName.sky_rail_pipe_5: 0xFF059A,
LocationName.cosmic_wall_pipe_5: 0xFF059C,
LocationName.cannon_core_pipe_5: 0xFF059E,
LocationName.sky_rail_pipe_6: 0xFF05BA,
}
hidden_whistle_location_table = {
LocationName.city_escape_hidden_1: 0xFF0700,
LocationName.prison_lane_hidden_1: 0xFF0702,
LocationName.green_forest_hidden_1: 0xFF0704,
LocationName.pumpkin_hill_hidden_1: 0xFF0705,
LocationName.mission_street_hidden_1: 0xFF0706,
LocationName.death_chamber_hidden_1: 0xFF070B,
LocationName.crazy_gadget_hidden_1: 0xFF070E,
LocationName.dry_lagoon_hidden_1: 0xFF0711,
LocationName.radical_highway_hidden_1: 0xFF0713,
LocationName.egg_quarters_hidden_1: 0xFF0714,
LocationName.lost_colony_hidden_1: 0xFF0715,
LocationName.security_hall_hidden_1: 0xFF0717,
LocationName.white_jungle_hidden_1: 0xFF0718,
LocationName.cannon_core_hidden_1: 0xFF071E,
LocationName.city_escape_hidden_2: 0xFF0720,
LocationName.prison_lane_hidden_2: 0xFF0722,
LocationName.green_forest_hidden_2: 0xFF0724,
LocationName.mission_street_hidden_2: 0xFF0726,
LocationName.death_chamber_hidden_2: 0xFF072B,
LocationName.radical_highway_hidden_2: 0xFF0733,
LocationName.egg_quarters_hidden_2: 0xFF0734,
LocationName.white_jungle_hidden_2: 0xFF0738,
LocationName.city_escape_hidden_3: 0xFF0740,
LocationName.prison_lane_hidden_3: 0xFF0742,
LocationName.green_forest_hidden_3: 0xFF0744,
LocationName.mission_street_hidden_3: 0xFF0746,
LocationName.radical_highway_hidden_3: 0xFF0753,
LocationName.white_jungle_hidden_3: 0xFF0758,
LocationName.city_escape_hidden_4: 0xFF0760,
LocationName.green_forest_hidden_4: 0xFF0764,
LocationName.mission_street_hidden_4: 0xFF0766,
LocationName.city_escape_hidden_5: 0xFF0780,
}
beetle_location_table = {
LocationName.city_escape_beetle: 0xFF0600,
LocationName.wild_canyon_beetle: 0xFF0601,
LocationName.prison_lane_beetle: 0xFF0602,
LocationName.metal_harbor_beetle: 0xFF0603,
LocationName.green_forest_beetle: 0xFF0604,
LocationName.mission_street_beetle: 0xFF0606,
LocationName.aquatic_mine_beetle: 0xFF0607,
LocationName.hidden_base_beetle: 0xFF0609,
LocationName.pyramid_cave_beetle: 0xFF060A,
LocationName.death_chamber_beetle: 0xFF060B,
LocationName.eternal_engine_beetle: 0xFF060C,
LocationName.meteor_herd_beetle: 0xFF060D,
LocationName.crazy_gadget_beetle: 0xFF060E,
LocationName.final_rush_beetle: 0xFF060F,
LocationName.iron_gate_beetle: 0xFF0610,
LocationName.dry_lagoon_beetle: 0xFF0611,
LocationName.sand_ocean_beetle: 0xFF0612,
LocationName.radical_highway_beetle: 0xFF0613,
LocationName.egg_quarters_beetle: 0xFF0614,
LocationName.lost_colony_beetle: 0xFF0615,
LocationName.security_hall_beetle: 0xFF0617,
LocationName.white_jungle_beetle: 0xFF0618,
LocationName.sky_rail_beetle: 0xFF061A,
LocationName.mad_space_beetle: 0xFF061B,
LocationName.cosmic_wall_beetle: 0xFF061C,
LocationName.final_chase_beetle: 0xFF061D,
LocationName.cannon_core_beetle: 0xFF061E,
}
omochao_location_table = {
LocationName.city_escape_omo_1: 0xFF0800,
LocationName.wild_canyon_omo_1: 0xFF0801,
LocationName.prison_lane_omo_1: 0xFF0802,
LocationName.metal_harbor_omo_1: 0xFF0803,
LocationName.pumpkin_hill_omo_1: 0xFF0805,
LocationName.mission_street_omo_1: 0xFF0806,
LocationName.aquatic_mine_omo_1: 0xFF0807,
LocationName.hidden_base_omo_1: 0xFF0809,
LocationName.pyramid_cave_omo_1: 0xFF080A,
LocationName.death_chamber_omo_1: 0xFF080B,
LocationName.eternal_engine_omo_1: 0xFF080C,
LocationName.meteor_herd_omo_1: 0xFF080D,
LocationName.crazy_gadget_omo_1: 0xFF080E,
LocationName.final_rush_omo_1: 0xFF080F,
LocationName.iron_gate_omo_1: 0xFF0810,
LocationName.dry_lagoon_omo_1: 0xFF0811,
LocationName.sand_ocean_omo_1: 0xFF0812,
LocationName.radical_highway_omo_1: 0xFF0813,
LocationName.egg_quarters_omo_1: 0xFF0814,
LocationName.lost_colony_omo_1: 0xFF0815,
LocationName.weapons_bed_omo_1: 0xFF0816,
LocationName.security_hall_omo_1: 0xFF0817,
LocationName.white_jungle_omo_1: 0xFF0818,
LocationName.mad_space_omo_1: 0xFF081B,
LocationName.cosmic_wall_omo_1: 0xFF081C,
LocationName.final_chase_omo_1: 0xFF081D,
LocationName.cannon_core_omo_1: 0xFF081E,
LocationName.city_escape_omo_2: 0xFF0820,
LocationName.wild_canyon_omo_2: 0xFF0821,
LocationName.prison_lane_omo_2: 0xFF0822,
LocationName.metal_harbor_omo_2: 0xFF0823,
LocationName.pumpkin_hill_omo_2: 0xFF0825,
LocationName.mission_street_omo_2: 0xFF0826,
LocationName.aquatic_mine_omo_2: 0xFF0827,
LocationName.hidden_base_omo_2: 0xFF0829,
LocationName.pyramid_cave_omo_2: 0xFF082A,
LocationName.death_chamber_omo_2: 0xFF082B,
LocationName.eternal_engine_omo_2: 0xFF082C,
LocationName.meteor_herd_omo_2: 0xFF082D,
LocationName.crazy_gadget_omo_2: 0xFF082E,
LocationName.final_rush_omo_2: 0xFF082F,
LocationName.iron_gate_omo_2: 0xFF0830,
LocationName.dry_lagoon_omo_2: 0xFF0831,
LocationName.sand_ocean_omo_2: 0xFF0832,
LocationName.radical_highway_omo_2: 0xFF0833,
LocationName.egg_quarters_omo_2: 0xFF0834,
LocationName.lost_colony_omo_2: 0xFF0835,
LocationName.weapons_bed_omo_2: 0xFF0836,
LocationName.security_hall_omo_2: 0xFF0837,
LocationName.white_jungle_omo_2: 0xFF0838,
LocationName.mad_space_omo_2: 0xFF083B,
LocationName.cannon_core_omo_2: 0xFF083E,
LocationName.city_escape_omo_3: 0xFF0840,
LocationName.wild_canyon_omo_3: 0xFF0841,
LocationName.prison_lane_omo_3: 0xFF0842,
LocationName.metal_harbor_omo_3: 0xFF0843,
LocationName.pumpkin_hill_omo_3: 0xFF0845,
LocationName.mission_street_omo_3: 0xFF0846,
LocationName.aquatic_mine_omo_3: 0xFF0847,
LocationName.hidden_base_omo_3: 0xFF0849,
LocationName.pyramid_cave_omo_3: 0xFF084A,
LocationName.death_chamber_omo_3: 0xFF084B,
LocationName.eternal_engine_omo_3: 0xFF084C,
LocationName.meteor_herd_omo_3: 0xFF084D,
LocationName.crazy_gadget_omo_3: 0xFF084E,
LocationName.final_rush_omo_3: 0xFF084F,
LocationName.iron_gate_omo_3: 0xFF0850,
LocationName.dry_lagoon_omo_3: 0xFF0851,
LocationName.radical_highway_omo_3: 0xFF0853,
LocationName.egg_quarters_omo_3: 0xFF0854,
LocationName.lost_colony_omo_3: 0xFF0855,
LocationName.weapons_bed_omo_3: 0xFF0856,
LocationName.security_hall_omo_3: 0xFF0857,
LocationName.white_jungle_omo_3: 0xFF0858,
LocationName.mad_space_omo_3: 0xFF085B,
LocationName.cannon_core_omo_3: 0xFF085E,
LocationName.city_escape_omo_4: 0xFF0860,
LocationName.wild_canyon_omo_4: 0xFF0861,
LocationName.prison_lane_omo_4: 0xFF0862,
LocationName.metal_harbor_omo_4: 0xFF0863,
LocationName.pumpkin_hill_omo_4: 0xFF0865,
LocationName.mission_street_omo_4: 0xFF0866,
LocationName.aquatic_mine_omo_4: 0xFF0867,
LocationName.hidden_base_omo_4: 0xFF0869,
LocationName.pyramid_cave_omo_4: 0xFF086A,
LocationName.death_chamber_omo_4: 0xFF086B,
LocationName.eternal_engine_omo_4: 0xFF086C,
LocationName.crazy_gadget_omo_4: 0xFF086E,
LocationName.iron_gate_omo_4: 0xFF0870,
LocationName.dry_lagoon_omo_4: 0xFF0871,
LocationName.radical_highway_omo_4: 0xFF0873,
LocationName.egg_quarters_omo_4: 0xFF0874,
LocationName.lost_colony_omo_4: 0xFF0875,
LocationName.security_hall_omo_4: 0xFF0877,
LocationName.white_jungle_omo_4: 0xFF0878,
LocationName.mad_space_omo_4: 0xFF087B,
LocationName.cannon_core_omo_4: 0xFF087E,
LocationName.city_escape_omo_5: 0xFF0880,
LocationName.wild_canyon_omo_5: 0xFF0881,
LocationName.prison_lane_omo_5: 0xFF0882,
LocationName.metal_harbor_omo_5: 0xFF0883,
LocationName.pumpkin_hill_omo_5: 0xFF0885,
LocationName.mission_street_omo_5: 0xFF0886,
LocationName.aquatic_mine_omo_5: 0xFF0887,
LocationName.death_chamber_omo_5: 0xFF088B,
LocationName.eternal_engine_omo_5: 0xFF088C,
LocationName.crazy_gadget_omo_5: 0xFF088E,
LocationName.iron_gate_omo_5: 0xFF0890,
LocationName.dry_lagoon_omo_5: 0xFF0891,
LocationName.radical_highway_omo_5: 0xFF0893,
LocationName.egg_quarters_omo_5: 0xFF0894,
LocationName.lost_colony_omo_5: 0xFF0895,
LocationName.security_hall_omo_5: 0xFF0897,
LocationName.white_jungle_omo_5: 0xFF0898,
LocationName.mad_space_omo_5: 0xFF089B,
LocationName.cannon_core_omo_5: 0xFF089E,
LocationName.city_escape_omo_6: 0xFF08A0,
LocationName.wild_canyon_omo_6: 0xFF08A1,
LocationName.prison_lane_omo_6: 0xFF08A2,
LocationName.pumpkin_hill_omo_6: 0xFF08A5,
LocationName.mission_street_omo_6: 0xFF08A6,
LocationName.aquatic_mine_omo_6: 0xFF08A7,
LocationName.death_chamber_omo_6: 0xFF08AB,
LocationName.eternal_engine_omo_6: 0xFF08AC,
LocationName.crazy_gadget_omo_6: 0xFF08AE,
LocationName.iron_gate_omo_6: 0xFF08B0,
LocationName.dry_lagoon_omo_6: 0xFF08B1,
LocationName.radical_highway_omo_6: 0xFF08B3,
LocationName.egg_quarters_omo_6: 0xFF08B4,
LocationName.lost_colony_omo_6: 0xFF08B5,
LocationName.security_hall_omo_6: 0xFF08B7,
LocationName.cannon_core_omo_6: 0xFF08BE,
LocationName.city_escape_omo_7: 0xFF08C0,
LocationName.wild_canyon_omo_7: 0xFF08C1,
LocationName.prison_lane_omo_7: 0xFF08C2,
LocationName.pumpkin_hill_omo_7: 0xFF08C5,
LocationName.mission_street_omo_7: 0xFF08C6,
LocationName.aquatic_mine_omo_7: 0xFF08C7,
LocationName.death_chamber_omo_7: 0xFF08CB,
LocationName.eternal_engine_omo_7: 0xFF08CC,
LocationName.crazy_gadget_omo_7: 0xFF08CE,
LocationName.dry_lagoon_omo_7: 0xFF08D1,
LocationName.radical_highway_omo_7: 0xFF08D3,
LocationName.egg_quarters_omo_7: 0xFF08D4,
LocationName.lost_colony_omo_7: 0xFF08D5,
LocationName.security_hall_omo_7: 0xFF08D7,
LocationName.cannon_core_omo_7: 0xFF08DE,
LocationName.city_escape_omo_8: 0xFF08E0,
LocationName.wild_canyon_omo_8: 0xFF08E1,
LocationName.prison_lane_omo_8: 0xFF08E2,
LocationName.pumpkin_hill_omo_8: 0xFF08E5,
LocationName.mission_street_omo_8: 0xFF08E6,
LocationName.death_chamber_omo_8: 0xFF08EB,
LocationName.eternal_engine_omo_8: 0xFF08EC,
LocationName.crazy_gadget_omo_8: 0xFF08EE,
LocationName.dry_lagoon_omo_8: 0xFF08F1,
LocationName.radical_highway_omo_8: 0xFF08F3,
LocationName.lost_colony_omo_8: 0xFF08F5,
LocationName.security_hall_omo_8: 0xFF08F7,
LocationName.cannon_core_omo_8: 0xFF08FE,
LocationName.city_escape_omo_9: 0xFF0900,
LocationName.wild_canyon_omo_9: 0xFF0901,
LocationName.prison_lane_omo_9: 0xFF0902,
LocationName.pumpkin_hill_omo_9: 0xFF0905,
LocationName.death_chamber_omo_9: 0xFF090B,
LocationName.eternal_engine_omo_9: 0xFF090C,
LocationName.crazy_gadget_omo_9: 0xFF090E,
LocationName.dry_lagoon_omo_9: 0xFF0911,
LocationName.security_hall_omo_9: 0xFF0917,
LocationName.cannon_core_omo_9: 0xFF091E,
LocationName.city_escape_omo_10: 0xFF0920,
LocationName.wild_canyon_omo_10: 0xFF0921,
LocationName.prison_lane_omo_10: 0xFF0922,
LocationName.pumpkin_hill_omo_10: 0xFF0925,
LocationName.eternal_engine_omo_10: 0xFF092C,
LocationName.crazy_gadget_omo_10: 0xFF092E,
LocationName.dry_lagoon_omo_10: 0xFF0931,
LocationName.security_hall_omo_10: 0xFF0937,
LocationName.city_escape_omo_11: 0xFF0940,
LocationName.pumpkin_hill_omo_11: 0xFF0945,
LocationName.eternal_engine_omo_11: 0xFF094C,
LocationName.crazy_gadget_omo_11: 0xFF094E,
LocationName.dry_lagoon_omo_11: 0xFF0951,
LocationName.security_hall_omo_11: 0xFF0957,
LocationName.city_escape_omo_12: 0xFF0960,
LocationName.eternal_engine_omo_12: 0xFF096C,
LocationName.crazy_gadget_omo_12: 0xFF096E,
LocationName.dry_lagoon_omo_12: 0xFF0971,
LocationName.security_hall_omo_12: 0xFF0977,
LocationName.city_escape_omo_13: 0xFF0980,
LocationName.crazy_gadget_omo_13: 0xFF098E,
LocationName.city_escape_omo_14: 0xFF09A0,
}
animal_location_table = {
LocationName.city_escape_animal_1: 0xFF0B00,
LocationName.wild_canyon_animal_1: 0xFF0B01,
LocationName.prison_lane_animal_1: 0xFF0B02,
LocationName.metal_harbor_animal_1: 0xFF0B03,
LocationName.green_forest_animal_1: 0xFF0B04,
LocationName.pumpkin_hill_animal_1: 0xFF0B05,
LocationName.mission_street_animal_1: 0xFF0B06,
LocationName.aquatic_mine_animal_1: 0xFF0B07,
LocationName.hidden_base_animal_1: 0xFF0B09,
LocationName.pyramid_cave_animal_1: 0xFF0B0A,
LocationName.death_chamber_animal_1: 0xFF0B0B,
LocationName.eternal_engine_animal_1: 0xFF0B0C,
LocationName.meteor_herd_animal_1: 0xFF0B0D,
LocationName.crazy_gadget_animal_1: 0xFF0B0E,
LocationName.final_rush_animal_1: 0xFF0B0F,
LocationName.iron_gate_animal_1: 0xFF0B10,
LocationName.dry_lagoon_animal_1: 0xFF0B11,
LocationName.sand_ocean_animal_1: 0xFF0B12,
LocationName.radical_highway_animal_1: 0xFF0B13,
LocationName.egg_quarters_animal_1: 0xFF0B14,
LocationName.lost_colony_animal_1: 0xFF0B15,
LocationName.weapons_bed_animal_1: 0xFF0B16,
LocationName.security_hall_animal_1: 0xFF0B17,
LocationName.white_jungle_animal_1: 0xFF0B18,
LocationName.sky_rail_animal_1: 0xFF0B1A,
LocationName.mad_space_animal_1: 0xFF0B1B,
LocationName.cosmic_wall_animal_1: 0xFF0B1C,
LocationName.final_chase_animal_1: 0xFF0B1D,
LocationName.cannon_core_animal_1: 0xFF0B1E,
LocationName.city_escape_animal_2: 0xFF0B20,
LocationName.wild_canyon_animal_2: 0xFF0B21,
LocationName.prison_lane_animal_2: 0xFF0B22,
LocationName.metal_harbor_animal_2: 0xFF0B23,
LocationName.green_forest_animal_2: 0xFF0B24,
LocationName.pumpkin_hill_animal_2: 0xFF0B25,
LocationName.mission_street_animal_2: 0xFF0B26,
LocationName.aquatic_mine_animal_2: 0xFF0B27,
LocationName.hidden_base_animal_2: 0xFF0B29,
LocationName.pyramid_cave_animal_2: 0xFF0B2A,
LocationName.death_chamber_animal_2: 0xFF0B2B,
LocationName.eternal_engine_animal_2: 0xFF0B2C,
LocationName.meteor_herd_animal_2: 0xFF0B2D,
LocationName.crazy_gadget_animal_2: 0xFF0B2E,
LocationName.final_rush_animal_2: 0xFF0B2F,
LocationName.iron_gate_animal_2: 0xFF0B30,
LocationName.dry_lagoon_animal_2: 0xFF0B31,
LocationName.sand_ocean_animal_2: 0xFF0B32,
LocationName.radical_highway_animal_2: 0xFF0B33,
LocationName.egg_quarters_animal_2: 0xFF0B34,
LocationName.lost_colony_animal_2: 0xFF0B35,
LocationName.weapons_bed_animal_2: 0xFF0B36,
LocationName.security_hall_animal_2: 0xFF0B37,
LocationName.white_jungle_animal_2: 0xFF0B38,
LocationName.sky_rail_animal_2: 0xFF0B3A,
LocationName.mad_space_animal_2: 0xFF0B3B,
LocationName.cosmic_wall_animal_2: 0xFF0B3C,
LocationName.final_chase_animal_2: 0xFF0B3D,
LocationName.cannon_core_animal_2: 0xFF0B3E,
LocationName.city_escape_animal_3: 0xFF0B40,
LocationName.wild_canyon_animal_3: 0xFF0B41,
LocationName.prison_lane_animal_3: 0xFF0B42,
LocationName.metal_harbor_animal_3: 0xFF0B43,
LocationName.green_forest_animal_3: 0xFF0B44,
LocationName.pumpkin_hill_animal_3: 0xFF0B45,
LocationName.mission_street_animal_3: 0xFF0B46,
LocationName.aquatic_mine_animal_3: 0xFF0B47,
LocationName.hidden_base_animal_3: 0xFF0B49,
LocationName.pyramid_cave_animal_3: 0xFF0B4A,
LocationName.death_chamber_animal_3: 0xFF0B4B,
LocationName.eternal_engine_animal_3: 0xFF0B4C,
LocationName.meteor_herd_animal_3: 0xFF0B4D,
LocationName.crazy_gadget_animal_3: 0xFF0B4E,
LocationName.final_rush_animal_3: 0xFF0B4F,
LocationName.iron_gate_animal_3: 0xFF0B50,
LocationName.dry_lagoon_animal_3: 0xFF0B51,
LocationName.sand_ocean_animal_3: 0xFF0B52,
LocationName.radical_highway_animal_3: 0xFF0B53,
LocationName.egg_quarters_animal_3: 0xFF0B54,
LocationName.lost_colony_animal_3: 0xFF0B55,
LocationName.weapons_bed_animal_3: 0xFF0B56,
LocationName.security_hall_animal_3: 0xFF0B57,
LocationName.white_jungle_animal_3: 0xFF0B58,
LocationName.sky_rail_animal_3: 0xFF0B5A,
LocationName.mad_space_animal_3: 0xFF0B5B,
LocationName.cosmic_wall_animal_3: 0xFF0B5C,
LocationName.final_chase_animal_3: 0xFF0B5D,
LocationName.cannon_core_animal_3: 0xFF0B5E,
LocationName.city_escape_animal_4: 0xFF0B60,
LocationName.wild_canyon_animal_4: 0xFF0B61,
LocationName.prison_lane_animal_4: 0xFF0B62,
LocationName.metal_harbor_animal_4: 0xFF0B63,
LocationName.green_forest_animal_4: 0xFF0B64,
LocationName.pumpkin_hill_animal_4: 0xFF0B65,
LocationName.mission_street_animal_4: 0xFF0B66,
LocationName.aquatic_mine_animal_4: 0xFF0B67,
LocationName.hidden_base_animal_4: 0xFF0B69,
LocationName.pyramid_cave_animal_4: 0xFF0B6A,
LocationName.death_chamber_animal_4: 0xFF0B6B,
LocationName.eternal_engine_animal_4: 0xFF0B6C,
LocationName.meteor_herd_animal_4: 0xFF0B6D,
LocationName.crazy_gadget_animal_4: 0xFF0B6E,
LocationName.final_rush_animal_4: 0xFF0B6F,
LocationName.iron_gate_animal_4: 0xFF0B70,
LocationName.dry_lagoon_animal_4: 0xFF0B71,
LocationName.sand_ocean_animal_4: 0xFF0B72,
LocationName.radical_highway_animal_4: 0xFF0B73,
LocationName.egg_quarters_animal_4: 0xFF0B74,
LocationName.lost_colony_animal_4: 0xFF0B75,
LocationName.weapons_bed_animal_4: 0xFF0B76,
LocationName.security_hall_animal_4: 0xFF0B77,
LocationName.white_jungle_animal_4: 0xFF0B78,
LocationName.sky_rail_animal_4: 0xFF0B7A,
LocationName.mad_space_animal_4: 0xFF0B7B,
LocationName.cosmic_wall_animal_4: 0xFF0B7C,
LocationName.final_chase_animal_4: 0xFF0B7D,
LocationName.cannon_core_animal_4: 0xFF0B7E,
LocationName.city_escape_animal_5: 0xFF0B80,
LocationName.wild_canyon_animal_5: 0xFF0B81,
LocationName.prison_lane_animal_5: 0xFF0B82,
LocationName.metal_harbor_animal_5: 0xFF0B83,
LocationName.green_forest_animal_5: 0xFF0B84,
LocationName.pumpkin_hill_animal_5: 0xFF0B85,
LocationName.mission_street_animal_5: 0xFF0B86,
LocationName.aquatic_mine_animal_5: 0xFF0B87,
LocationName.hidden_base_animal_5: 0xFF0B89,
LocationName.pyramid_cave_animal_5: 0xFF0B8A,
LocationName.death_chamber_animal_5: 0xFF0B8B,
LocationName.eternal_engine_animal_5: 0xFF0B8C,
LocationName.meteor_herd_animal_5: 0xFF0B8D,
LocationName.crazy_gadget_animal_5: 0xFF0B8E,
LocationName.final_rush_animal_5: 0xFF0B8F,
LocationName.iron_gate_animal_5: 0xFF0B90,
LocationName.dry_lagoon_animal_5: 0xFF0B91,
LocationName.sand_ocean_animal_5: 0xFF0B92,
LocationName.radical_highway_animal_5: 0xFF0B93,
LocationName.egg_quarters_animal_5: 0xFF0B94,
LocationName.lost_colony_animal_5: 0xFF0B95,
LocationName.weapons_bed_animal_5: 0xFF0B96,
LocationName.security_hall_animal_5: 0xFF0B97,
LocationName.white_jungle_animal_5: 0xFF0B98,
LocationName.sky_rail_animal_5: 0xFF0B9A,
LocationName.mad_space_animal_5: 0xFF0B9B,
LocationName.cosmic_wall_animal_5: 0xFF0B9C,
LocationName.final_chase_animal_5: 0xFF0B9D,
LocationName.cannon_core_animal_5: 0xFF0B9E,
LocationName.city_escape_animal_6: 0xFF0BA0,
LocationName.wild_canyon_animal_6: 0xFF0BA1,
LocationName.prison_lane_animal_6: 0xFF0BA2,
LocationName.metal_harbor_animal_6: 0xFF0BA3,
LocationName.green_forest_animal_6: 0xFF0BA4,
LocationName.pumpkin_hill_animal_6: 0xFF0BA5,
LocationName.mission_street_animal_6: 0xFF0BA6,
LocationName.aquatic_mine_animal_6: 0xFF0BA7,
LocationName.hidden_base_animal_6: 0xFF0BA9,
LocationName.pyramid_cave_animal_6: 0xFF0BAA,
LocationName.death_chamber_animal_6: 0xFF0BAB,
LocationName.eternal_engine_animal_6: 0xFF0BAC,
LocationName.meteor_herd_animal_6: 0xFF0BAD,
LocationName.crazy_gadget_animal_6: 0xFF0BAE,
LocationName.final_rush_animal_6: 0xFF0BAF,
LocationName.iron_gate_animal_6: 0xFF0BB0,
LocationName.dry_lagoon_animal_6: 0xFF0BB1,
LocationName.sand_ocean_animal_6: 0xFF0BB2,
LocationName.radical_highway_animal_6: 0xFF0BB3,
LocationName.egg_quarters_animal_6: 0xFF0BB4,
LocationName.lost_colony_animal_6: 0xFF0BB5,
LocationName.weapons_bed_animal_6: 0xFF0BB6,
LocationName.security_hall_animal_6: 0xFF0BB7,
LocationName.white_jungle_animal_6: 0xFF0BB8,
LocationName.sky_rail_animal_6: 0xFF0BBA,
LocationName.mad_space_animal_6: 0xFF0BBB,
LocationName.cosmic_wall_animal_6: 0xFF0BBC,
LocationName.final_chase_animal_6: 0xFF0BBD,
LocationName.cannon_core_animal_6: 0xFF0BBE,
LocationName.city_escape_animal_7: 0xFF0BC0,
LocationName.wild_canyon_animal_7: 0xFF0BC1,
LocationName.prison_lane_animal_7: 0xFF0BC2,
LocationName.metal_harbor_animal_7: 0xFF0BC3,
LocationName.green_forest_animal_7: 0xFF0BC4,
LocationName.pumpkin_hill_animal_7: 0xFF0BC5,
LocationName.mission_street_animal_7: 0xFF0BC6,
LocationName.aquatic_mine_animal_7: 0xFF0BC7,
LocationName.hidden_base_animal_7: 0xFF0BC9,
LocationName.pyramid_cave_animal_7: 0xFF0BCA,
LocationName.death_chamber_animal_7: 0xFF0BCB,
LocationName.eternal_engine_animal_7: 0xFF0BCC,
LocationName.meteor_herd_animal_7: 0xFF0BCD,
LocationName.crazy_gadget_animal_7: 0xFF0BCE,
LocationName.final_rush_animal_7: 0xFF0BCF,
LocationName.iron_gate_animal_7: 0xFF0BD0,
LocationName.dry_lagoon_animal_7: 0xFF0BD1,
LocationName.sand_ocean_animal_7: 0xFF0BD2,
LocationName.radical_highway_animal_7: 0xFF0BD3,
LocationName.egg_quarters_animal_7: 0xFF0BD4,
LocationName.lost_colony_animal_7: 0xFF0BD5,
LocationName.weapons_bed_animal_7: 0xFF0BD6,
LocationName.security_hall_animal_7: 0xFF0BD7,
LocationName.white_jungle_animal_7: 0xFF0BD8,
LocationName.sky_rail_animal_7: 0xFF0BDA,
LocationName.mad_space_animal_7: 0xFF0BDB,
LocationName.cosmic_wall_animal_7: 0xFF0BDC,
LocationName.final_chase_animal_7: 0xFF0BDD,
LocationName.cannon_core_animal_7: 0xFF0BDE,
LocationName.city_escape_animal_8: 0xFF0BE0,
LocationName.wild_canyon_animal_8: 0xFF0BE1,
LocationName.prison_lane_animal_8: 0xFF0BE2,
LocationName.metal_harbor_animal_8: 0xFF0BE3,
LocationName.green_forest_animal_8: 0xFF0BE4,
LocationName.pumpkin_hill_animal_8: 0xFF0BE5,
LocationName.mission_street_animal_8: 0xFF0BE6,
LocationName.aquatic_mine_animal_8: 0xFF0BE7,
LocationName.hidden_base_animal_8: 0xFF0BE9,
LocationName.pyramid_cave_animal_8: 0xFF0BEA,
LocationName.death_chamber_animal_8: 0xFF0BEB,
LocationName.eternal_engine_animal_8: 0xFF0BEC,
LocationName.meteor_herd_animal_8: 0xFF0BED,
LocationName.crazy_gadget_animal_8: 0xFF0BEE,
LocationName.final_rush_animal_8: 0xFF0BEF,
LocationName.iron_gate_animal_8: 0xFF0BF0,
LocationName.dry_lagoon_animal_8: 0xFF0BF1,
LocationName.sand_ocean_animal_8: 0xFF0BF2,
LocationName.radical_highway_animal_8: 0xFF0BF3,
LocationName.egg_quarters_animal_8: 0xFF0BF4,
LocationName.lost_colony_animal_8: 0xFF0BF5,
LocationName.weapons_bed_animal_8: 0xFF0BF6,
LocationName.security_hall_animal_8: 0xFF0BF7,
LocationName.white_jungle_animal_8: 0xFF0BF8,
LocationName.sky_rail_animal_8: 0xFF0BFA,
LocationName.mad_space_animal_8: 0xFF0BFB,
LocationName.cosmic_wall_animal_8: 0xFF0BFC,
LocationName.final_chase_animal_8: 0xFF0BFD,
LocationName.cannon_core_animal_8: 0xFF0BFE,
LocationName.city_escape_animal_9: 0xFF0C00,
LocationName.wild_canyon_animal_9: 0xFF0C01,
LocationName.prison_lane_animal_9: 0xFF0C02,
LocationName.metal_harbor_animal_9: 0xFF0C03,
LocationName.green_forest_animal_9: 0xFF0C04,
LocationName.pumpkin_hill_animal_9: 0xFF0C05,
LocationName.mission_street_animal_9: 0xFF0C06,
LocationName.aquatic_mine_animal_9: 0xFF0C07,
LocationName.hidden_base_animal_9: 0xFF0C09,
LocationName.pyramid_cave_animal_9: 0xFF0C0A,
LocationName.death_chamber_animal_9: 0xFF0C0B,
LocationName.eternal_engine_animal_9: 0xFF0C0C,
LocationName.meteor_herd_animal_9: 0xFF0C0D,
LocationName.crazy_gadget_animal_9: 0xFF0C0E,
LocationName.final_rush_animal_9: 0xFF0C0F,
LocationName.iron_gate_animal_9: 0xFF0C10,
LocationName.dry_lagoon_animal_9: 0xFF0C11,
LocationName.sand_ocean_animal_9: 0xFF0C12,
LocationName.radical_highway_animal_9: 0xFF0C13,
LocationName.egg_quarters_animal_9: 0xFF0C14,
LocationName.lost_colony_animal_9: 0xFF0C15,
LocationName.weapons_bed_animal_9: 0xFF0C16,
LocationName.white_jungle_animal_9: 0xFF0C18,
LocationName.sky_rail_animal_9: 0xFF0C1A,
LocationName.mad_space_animal_9: 0xFF0C1B,
LocationName.cosmic_wall_animal_9: 0xFF0C1C,
LocationName.final_chase_animal_9: 0xFF0C1D,
LocationName.cannon_core_animal_9: 0xFF0C1E,
LocationName.city_escape_animal_10: 0xFF0C20,
LocationName.wild_canyon_animal_10: 0xFF0C21,
LocationName.prison_lane_animal_10: 0xFF0C22,
LocationName.metal_harbor_animal_10: 0xFF0C23,
LocationName.green_forest_animal_10: 0xFF0C24,
LocationName.pumpkin_hill_animal_10: 0xFF0C25,
LocationName.mission_street_animal_10: 0xFF0C26,
LocationName.aquatic_mine_animal_10: 0xFF0C27,
LocationName.hidden_base_animal_10: 0xFF0C29,
LocationName.pyramid_cave_animal_10: 0xFF0C2A,
LocationName.death_chamber_animal_10: 0xFF0C2B,
LocationName.eternal_engine_animal_10: 0xFF0C2C,
LocationName.meteor_herd_animal_10: 0xFF0C2D,
LocationName.crazy_gadget_animal_10: 0xFF0C2E,
LocationName.final_rush_animal_10: 0xFF0C2F,
LocationName.iron_gate_animal_10: 0xFF0C30,
LocationName.dry_lagoon_animal_10: 0xFF0C31,
LocationName.sand_ocean_animal_10: 0xFF0C32,
LocationName.radical_highway_animal_10: 0xFF0C33,
LocationName.egg_quarters_animal_10: 0xFF0C34,
LocationName.lost_colony_animal_10: 0xFF0C35,
LocationName.weapons_bed_animal_10: 0xFF0C36,
LocationName.white_jungle_animal_10: 0xFF0C38,
LocationName.sky_rail_animal_10: 0xFF0C3A,
LocationName.mad_space_animal_10: 0xFF0C3B,
LocationName.cosmic_wall_animal_10: 0xFF0C3C,
LocationName.final_chase_animal_10: 0xFF0C3D,
LocationName.cannon_core_animal_10: 0xFF0C3E,
LocationName.city_escape_animal_11: 0xFF0C40,
LocationName.prison_lane_animal_11: 0xFF0C42,
LocationName.metal_harbor_animal_11: 0xFF0C43,
LocationName.green_forest_animal_11: 0xFF0C44,
LocationName.pumpkin_hill_animal_11: 0xFF0C45,
LocationName.mission_street_animal_11: 0xFF0C46,
LocationName.hidden_base_animal_11: 0xFF0C49,
LocationName.pyramid_cave_animal_11: 0xFF0C4A,
LocationName.eternal_engine_animal_11: 0xFF0C4C,
LocationName.meteor_herd_animal_11: 0xFF0C4D,
LocationName.crazy_gadget_animal_11: 0xFF0C4E,
LocationName.final_rush_animal_11: 0xFF0C4F,
LocationName.iron_gate_animal_11: 0xFF0C50,
LocationName.dry_lagoon_animal_11: 0xFF0C51,
LocationName.sand_ocean_animal_11: 0xFF0C52,
LocationName.radical_highway_animal_11: 0xFF0C53,
LocationName.lost_colony_animal_11: 0xFF0C55,
LocationName.weapons_bed_animal_11: 0xFF0C56,
LocationName.white_jungle_animal_11: 0xFF0C58,
LocationName.sky_rail_animal_11: 0xFF0C5A,
LocationName.cosmic_wall_animal_11: 0xFF0C5C,
LocationName.final_chase_animal_11: 0xFF0C5D,
LocationName.cannon_core_animal_11: 0xFF0C5E,
LocationName.city_escape_animal_12: 0xFF0C60,
LocationName.prison_lane_animal_12: 0xFF0C62,
LocationName.metal_harbor_animal_12: 0xFF0C63,
LocationName.green_forest_animal_12: 0xFF0C64,
LocationName.mission_street_animal_12: 0xFF0C66,
LocationName.hidden_base_animal_12: 0xFF0C69,
LocationName.pyramid_cave_animal_12: 0xFF0C6A,
LocationName.eternal_engine_animal_12: 0xFF0C6C,
LocationName.crazy_gadget_animal_12: 0xFF0C6E,
LocationName.final_rush_animal_12: 0xFF0C6F,
LocationName.iron_gate_animal_12: 0xFF0C70,
LocationName.sand_ocean_animal_12: 0xFF0C72,
LocationName.radical_highway_animal_12: 0xFF0C73,
LocationName.lost_colony_animal_12: 0xFF0C75,
LocationName.weapons_bed_animal_12: 0xFF0C76,
LocationName.white_jungle_animal_12: 0xFF0C78,
LocationName.sky_rail_animal_12: 0xFF0C7A,
LocationName.cosmic_wall_animal_12: 0xFF0C7C,
LocationName.final_chase_animal_12: 0xFF0C7D,
LocationName.cannon_core_animal_12: 0xFF0C7E,
LocationName.city_escape_animal_13: 0xFF0C80,
LocationName.prison_lane_animal_13: 0xFF0C82,
LocationName.metal_harbor_animal_13: 0xFF0C83,
LocationName.green_forest_animal_13: 0xFF0C84,
LocationName.mission_street_animal_13: 0xFF0C86,
LocationName.hidden_base_animal_13: 0xFF0C89,
LocationName.pyramid_cave_animal_13: 0xFF0C8A,
LocationName.eternal_engine_animal_13: 0xFF0C8C,
LocationName.crazy_gadget_animal_13: 0xFF0C8E,
LocationName.final_rush_animal_13: 0xFF0C8F,
LocationName.iron_gate_animal_13: 0xFF0C90,
LocationName.sand_ocean_animal_13: 0xFF0C92,
LocationName.radical_highway_animal_13: 0xFF0C93,
LocationName.lost_colony_animal_13: 0xFF0C95,
LocationName.weapons_bed_animal_13: 0xFF0C96,
LocationName.white_jungle_animal_13: 0xFF0C98,
LocationName.sky_rail_animal_13: 0xFF0C9A,
LocationName.cosmic_wall_animal_13: 0xFF0C9C,
LocationName.final_chase_animal_13: 0xFF0C9D,
LocationName.cannon_core_animal_13: 0xFF0C9E,
LocationName.city_escape_animal_14: 0xFF0CA0,
LocationName.prison_lane_animal_14: 0xFF0CA2,
LocationName.metal_harbor_animal_14: 0xFF0CA3,
LocationName.green_forest_animal_14: 0xFF0CA4,
LocationName.mission_street_animal_14: 0xFF0CA6,
LocationName.hidden_base_animal_14: 0xFF0CA9,
LocationName.pyramid_cave_animal_14: 0xFF0CAA,
LocationName.eternal_engine_animal_14: 0xFF0CAC,
LocationName.crazy_gadget_animal_14: 0xFF0CAE,
LocationName.final_rush_animal_14: 0xFF0CAF,
LocationName.iron_gate_animal_14: 0xFF0CB0,
LocationName.sand_ocean_animal_14: 0xFF0CB2,
LocationName.radical_highway_animal_14: 0xFF0CB3,
LocationName.lost_colony_animal_14: 0xFF0CB5,
LocationName.weapons_bed_animal_14: 0xFF0CB6,
LocationName.white_jungle_animal_14: 0xFF0CB8,
LocationName.sky_rail_animal_14: 0xFF0CBA,
LocationName.cosmic_wall_animal_14: 0xFF0CBC,
LocationName.final_chase_animal_14: 0xFF0CBD,
LocationName.cannon_core_animal_14: 0xFF0CBE,
LocationName.city_escape_animal_15: 0xFF0CC0,
LocationName.prison_lane_animal_15: 0xFF0CC2,
LocationName.green_forest_animal_15: 0xFF0CC4,
LocationName.mission_street_animal_15: 0xFF0CC6,
LocationName.hidden_base_animal_15: 0xFF0CC9,
LocationName.pyramid_cave_animal_15: 0xFF0CCA,
LocationName.eternal_engine_animal_15: 0xFF0CCC,
LocationName.crazy_gadget_animal_15: 0xFF0CCE,
LocationName.final_rush_animal_15: 0xFF0CCF,
LocationName.iron_gate_animal_15: 0xFF0CD0,
LocationName.sand_ocean_animal_15: 0xFF0CD2,
LocationName.radical_highway_animal_15: 0xFF0CD3,
LocationName.weapons_bed_animal_15: 0xFF0CD6,
LocationName.white_jungle_animal_15: 0xFF0CD8,
LocationName.sky_rail_animal_15: 0xFF0CDA,
LocationName.cosmic_wall_animal_15: 0xFF0CDC,
LocationName.final_chase_animal_15: 0xFF0CDD,
LocationName.cannon_core_animal_15: 0xFF0CDE,
LocationName.city_escape_animal_16: 0xFF0CE0,
LocationName.green_forest_animal_16: 0xFF0CE4,
LocationName.mission_street_animal_16: 0xFF0CE6,
LocationName.pyramid_cave_animal_16: 0xFF0CEA,
LocationName.crazy_gadget_animal_16: 0xFF0CEE,
LocationName.final_rush_animal_16: 0xFF0CEF,
LocationName.radical_highway_animal_16: 0xFF0CF3,
LocationName.white_jungle_animal_16: 0xFF0CF8,
LocationName.sky_rail_animal_16: 0xFF0CFA,
LocationName.final_chase_animal_16: 0xFF0CFD,
LocationName.cannon_core_animal_16: 0xFF0CFE,
LocationName.city_escape_animal_17: 0xFF0D00,
LocationName.green_forest_animal_17: 0xFF0D04,
LocationName.pyramid_cave_animal_17: 0xFF0D0A,
LocationName.radical_highway_animal_17: 0xFF0D13,
LocationName.sky_rail_animal_17: 0xFF0D1A,
LocationName.final_chase_animal_17: 0xFF0D1D,
LocationName.cannon_core_animal_17: 0xFF0D1E,
LocationName.city_escape_animal_18: 0xFF0D20,
LocationName.green_forest_animal_18: 0xFF0D24,
LocationName.pyramid_cave_animal_18: 0xFF0D2A,
LocationName.radical_highway_animal_18: 0xFF0D33,
LocationName.sky_rail_animal_18: 0xFF0D3A,
LocationName.cannon_core_animal_18: 0xFF0D3E,
LocationName.city_escape_animal_19: 0xFF0D40,
LocationName.pyramid_cave_animal_19: 0xFF0D4A,
LocationName.radical_highway_animal_19: 0xFF0D53,
LocationName.sky_rail_animal_19: 0xFF0D5A,
LocationName.cannon_core_animal_19: 0xFF0D5E,
LocationName.city_escape_animal_20: 0xFF0D60,
LocationName.radical_highway_animal_20: 0xFF0D73,
LocationName.sky_rail_animal_20: 0xFF0D7A,
}
boss_gate_location_table = {
LocationName.gate_1_boss: 0xFF0100,
LocationName.gate_2_boss: 0xFF0101,
LocationName.gate_3_boss: 0xFF0102,
LocationName.gate_4_boss: 0xFF0103,
LocationName.gate_5_boss: 0xFF0104,
}
boss_rush_location_table = {
LocationName.boss_rush_1: 0xFF0105,
LocationName.boss_rush_2: 0xFF0106,
LocationName.boss_rush_3: 0xFF0107,
LocationName.boss_rush_4: 0xFF0108,
LocationName.boss_rush_5: 0xFF0109,
LocationName.boss_rush_6: 0xFF010A,
LocationName.boss_rush_7: 0xFF010B,
LocationName.boss_rush_8: 0xFF010C,
LocationName.boss_rush_9: 0xFF010D,
LocationName.boss_rush_10: 0xFF010E,
LocationName.boss_rush_11: 0xFF010F,
LocationName.boss_rush_12: 0xFF0110,
LocationName.boss_rush_13: 0xFF0111,
LocationName.boss_rush_14: 0xFF0112,
LocationName.boss_rush_15: 0xFF0113,
LocationName.boss_rush_16: 0xFF0114,
}
chao_race_beginner_location_table = {
LocationName.chao_race_crab_pool_1: 0xFF0200,
LocationName.chao_race_crab_pool_2: 0xFF0201,
LocationName.chao_race_crab_pool_3: 0xFF0202,
LocationName.chao_race_stump_valley_1: 0xFF0203,
LocationName.chao_race_stump_valley_2: 0xFF0204,
LocationName.chao_race_stump_valley_3: 0xFF0205,
LocationName.chao_race_mushroom_forest_1: 0xFF0206,
LocationName.chao_race_mushroom_forest_2: 0xFF0207,
LocationName.chao_race_mushroom_forest_3: 0xFF0208,
LocationName.chao_race_block_canyon_1: 0xFF0209,
LocationName.chao_race_block_canyon_2: 0xFF020A,
LocationName.chao_race_block_canyon_3: 0xFF020B,
}
chao_karate_beginner_location_table = {
LocationName.chao_beginner_karate_1: 0xFF0300,
LocationName.chao_beginner_karate_2: 0xFF0301,
LocationName.chao_beginner_karate_3: 0xFF0302,
LocationName.chao_beginner_karate_4: 0xFF0303,
LocationName.chao_beginner_karate_5: 0xFF0304,
}
chao_race_intermediate_location_table = {
LocationName.chao_race_challenge_1: 0xFF022A,
LocationName.chao_race_challenge_2: 0xFF022B,
LocationName.chao_race_challenge_3: 0xFF022C,
LocationName.chao_race_challenge_4: 0xFF022D,
LocationName.chao_race_challenge_5: 0xFF022E,
LocationName.chao_race_challenge_6: 0xFF022F,
LocationName.chao_race_challenge_7: 0xFF0230,
LocationName.chao_race_challenge_8: 0xFF0231,
LocationName.chao_race_challenge_9: 0xFF0232,
LocationName.chao_race_challenge_10: 0xFF0233,
LocationName.chao_race_challenge_11: 0xFF0234,
LocationName.chao_race_challenge_12: 0xFF0235,
LocationName.chao_race_hero_1: 0xFF0236,
LocationName.chao_race_hero_2: 0xFF0237,
LocationName.chao_race_hero_3: 0xFF0238,
LocationName.chao_race_hero_4: 0xFF0239,
LocationName.chao_race_dark_1: 0xFF023A,
LocationName.chao_race_dark_2: 0xFF023B,
LocationName.chao_race_dark_3: 0xFF023C,
LocationName.chao_race_dark_4: 0xFF023D,
}
chao_karate_intermediate_location_table = {
LocationName.chao_standard_karate_1: 0xFF0305,
LocationName.chao_standard_karate_2: 0xFF0306,
LocationName.chao_standard_karate_3: 0xFF0307,
LocationName.chao_standard_karate_4: 0xFF0308,
LocationName.chao_standard_karate_5: 0xFF0309,
}
chao_race_expert_location_table = {
LocationName.chao_race_aquamarine_1: 0xFF020C,
LocationName.chao_race_aquamarine_2: 0xFF020D,
LocationName.chao_race_aquamarine_3: 0xFF020E,
LocationName.chao_race_aquamarine_4: 0xFF020F,
LocationName.chao_race_aquamarine_5: 0xFF0210,
LocationName.chao_race_topaz_1: 0xFF0211,
LocationName.chao_race_topaz_2: 0xFF0212,
LocationName.chao_race_topaz_3: 0xFF0213,
LocationName.chao_race_topaz_4: 0xFF0214,
LocationName.chao_race_topaz_5: 0xFF0215,
LocationName.chao_race_peridot_1: 0xFF0216,
LocationName.chao_race_peridot_2: 0xFF0217,
LocationName.chao_race_peridot_3: 0xFF0218,
LocationName.chao_race_peridot_4: 0xFF0219,
LocationName.chao_race_peridot_5: 0xFF021A,
LocationName.chao_race_garnet_1: 0xFF021B,
LocationName.chao_race_garnet_2: 0xFF021C,
LocationName.chao_race_garnet_3: 0xFF021D,
LocationName.chao_race_garnet_4: 0xFF021E,
LocationName.chao_race_garnet_5: 0xFF021F,
LocationName.chao_race_onyx_1: 0xFF0220,
LocationName.chao_race_onyx_2: 0xFF0221,
LocationName.chao_race_onyx_3: 0xFF0222,
LocationName.chao_race_onyx_4: 0xFF0223,
LocationName.chao_race_onyx_5: 0xFF0224,
LocationName.chao_race_diamond_1: 0xFF0225,
LocationName.chao_race_diamond_2: 0xFF0226,
LocationName.chao_race_diamond_3: 0xFF0227,
LocationName.chao_race_diamond_4: 0xFF0228,
LocationName.chao_race_diamond_5: 0xFF0229,
}
chao_karate_expert_location_table = {
LocationName.chao_expert_karate_1: 0xFF030A,
LocationName.chao_expert_karate_2: 0xFF030B,
LocationName.chao_expert_karate_3: 0xFF030C,
LocationName.chao_expert_karate_4: 0xFF030D,
LocationName.chao_expert_karate_5: 0xFF030E,
}
chao_karate_super_location_table = {
LocationName.chao_super_karate_1: 0xFF030F,
LocationName.chao_super_karate_2: 0xFF0310,
LocationName.chao_super_karate_3: 0xFF0311,
LocationName.chao_super_karate_4: 0xFF0312,
LocationName.chao_super_karate_5: 0xFF0313,
}
chao_stat_swim_table = { LocationName.chao_stat_swim_base + str(index): (0xFF0E00 + index) for index in range(1,100) }
chao_stat_fly_table = { LocationName.chao_stat_fly_base + str(index): (0xFF0E80 + index) for index in range(1,100) }
chao_stat_run_table = { LocationName.chao_stat_run_base + str(index): (0xFF0F00 + index) for index in range(1,100) }
chao_stat_power_table = { LocationName.chao_stat_power_base + str(index): (0xFF0F80 + index) for index in range(1,100) }
chao_stat_stamina_table = { LocationName.chao_stat_stamina_base + str(index): (0xFF1000 + index) for index in range(1,100) }
chao_stat_luck_table = { LocationName.chao_stat_luck_base + str(index): (0xFF1080 + index) for index in range(1,100) }
chao_stat_intelligence_table = { LocationName.chao_stat_intelligence_base + str(index): (0xFF1100 + index) for index in range(1,100) }
chao_animal_event_location_table = {
LocationName.animal_penguin: None,
LocationName.animal_seal: None,
LocationName.animal_otter: None,
LocationName.animal_rabbit: None,
LocationName.animal_cheetah: None,
LocationName.animal_warthog: None,
LocationName.animal_bear: None,
LocationName.animal_tiger: None,
LocationName.animal_gorilla: None,
LocationName.animal_peacock: None,
LocationName.animal_parrot: None,
LocationName.animal_condor: None,
LocationName.animal_skunk: None,
LocationName.animal_sheep: None,
LocationName.animal_raccoon: None,
LocationName.animal_halffish: None,
LocationName.animal_skeleton_dog: None,
LocationName.animal_bat: None,
LocationName.animal_dragon: None,
LocationName.animal_unicorn: None,
LocationName.animal_phoenix: None,
}
chao_animal_part_location_table = {
LocationName.chao_penguin_arms: 0xFF1220,
LocationName.chao_penguin_forehead: 0xFF1222,
LocationName.chao_penguin_legs: 0xFF1224,
LocationName.chao_seal_arms: 0xFF1228,
LocationName.chao_seal_tail: 0xFF122E,
LocationName.chao_otter_arms: 0xFF1230,
LocationName.chao_otter_ears: 0xFF1231,
LocationName.chao_otter_face: 0xFF1233,
LocationName.chao_otter_legs: 0xFF1234,
LocationName.chao_otter_tail: 0xFF1236,
LocationName.chao_rabbit_arms: 0xFF1238,
LocationName.chao_rabbit_ears: 0xFF1239,
LocationName.chao_rabbit_legs: 0xFF123C,
LocationName.chao_rabbit_tail: 0xFF123E,
LocationName.chao_cheetah_arms: 0xFF1240,
LocationName.chao_cheetah_ears: 0xFF1241,
LocationName.chao_cheetah_legs: 0xFF1244,
LocationName.chao_cheetah_tail: 0xFF1246,
LocationName.chao_warthog_arms: 0xFF1248,
LocationName.chao_warthog_ears: 0xFF1249,
LocationName.chao_warthog_face: 0xFF124B,
LocationName.chao_warthog_legs: 0xFF124C,
LocationName.chao_warthog_tail: 0xFF124E,
LocationName.chao_bear_arms: 0xFF1250,
LocationName.chao_bear_ears: 0xFF1251,
LocationName.chao_bear_legs: 0xFF1254,
LocationName.chao_tiger_arms: 0xFF1258,
LocationName.chao_tiger_ears: 0xFF1259,
LocationName.chao_tiger_legs: 0xFF125C,
LocationName.chao_tiger_tail: 0xFF125E,
LocationName.chao_gorilla_arms: 0xFF1260,
LocationName.chao_gorilla_ears: 0xFF1261,
LocationName.chao_gorilla_forehead: 0xFF1262,
LocationName.chao_gorilla_legs: 0xFF1264,
LocationName.chao_peacock_forehead: 0xFF126A,
LocationName.chao_peacock_legs: 0xFF126C,
LocationName.chao_peacock_tail: 0xFF126E,
LocationName.chao_peacock_wings: 0xFF126F,
LocationName.chao_parrot_forehead: 0xFF1272,
LocationName.chao_parrot_legs: 0xFF1274,
LocationName.chao_parrot_tail: 0xFF1276,
LocationName.chao_parrot_wings: 0xFF1277,
LocationName.chao_condor_ears: 0xFF1279,
LocationName.chao_condor_legs: 0xFF127C,
LocationName.chao_condor_tail: 0xFF127E,
LocationName.chao_condor_wings: 0xFF127F,
LocationName.chao_skunk_arms: 0xFF1280,
LocationName.chao_skunk_forehead: 0xFF1282,
LocationName.chao_skunk_legs: 0xFF1284,
LocationName.chao_skunk_tail: 0xFF1286,
LocationName.chao_sheep_arms: 0xFF1288,
LocationName.chao_sheep_ears: 0xFF1289,
LocationName.chao_sheep_legs: 0xFF128C,
LocationName.chao_sheep_horn: 0xFF128D,
LocationName.chao_sheep_tail: 0xFF128E,
LocationName.chao_raccoon_arms: 0xFF1290,
LocationName.chao_raccoon_ears: 0xFF1291,
LocationName.chao_raccoon_legs: 0xFF1294,
LocationName.chao_dragon_arms: 0xFF12A0,
LocationName.chao_dragon_ears: 0xFF12A1,
LocationName.chao_dragon_legs: 0xFF12A4,
LocationName.chao_dragon_horn: 0xFF12A5,
LocationName.chao_dragon_tail: 0xFF12A6,
LocationName.chao_dragon_wings: 0xFF12A7,
LocationName.chao_unicorn_arms: 0xFF12A8,
LocationName.chao_unicorn_ears: 0xFF12A9,
LocationName.chao_unicorn_forehead: 0xFF12AA,
LocationName.chao_unicorn_legs: 0xFF12AC,
LocationName.chao_unicorn_tail: 0xFF12AE,
LocationName.chao_phoenix_forehead: 0xFF12B2,
LocationName.chao_phoenix_legs: 0xFF12B4,
LocationName.chao_phoenix_tail: 0xFF12B6,
LocationName.chao_phoenix_wings: 0xFF12B7,
}
chao_kindergarten_location_table = {
LocationName.chao_kindergarten_drawing_1: 0xFF12D0,
LocationName.chao_kindergarten_drawing_2: 0xFF12D1,
LocationName.chao_kindergarten_drawing_3: 0xFF12D2,
LocationName.chao_kindergarten_drawing_4: 0xFF12D3,
LocationName.chao_kindergarten_drawing_5: 0xFF12D4,
LocationName.chao_kindergarten_shake_dance: 0xFF12D8,
LocationName.chao_kindergarten_spin_dance: 0xFF12D9,
LocationName.chao_kindergarten_step_dance: 0xFF12DA,
LocationName.chao_kindergarten_gogo_dance: 0xFF12DB,
LocationName.chao_kindergarten_exercise: 0xFF12DC,
LocationName.chao_kindergarten_song_1: 0xFF12E0,
LocationName.chao_kindergarten_song_2: 0xFF12E1,
LocationName.chao_kindergarten_song_3: 0xFF12E2,
LocationName.chao_kindergarten_song_4: 0xFF12E3,
LocationName.chao_kindergarten_song_5: 0xFF12E4,
LocationName.chao_kindergarten_bell: 0xFF12E8,
LocationName.chao_kindergarten_castanets: 0xFF12E9,
LocationName.chao_kindergarten_cymbals: 0xFF12EA,
LocationName.chao_kindergarten_drum: 0xFF12EB,
LocationName.chao_kindergarten_flute: 0xFF12EC,
LocationName.chao_kindergarten_maracas: 0xFF12ED,
LocationName.chao_kindergarten_trumpet: 0xFF12EE,
LocationName.chao_kindergarten_tambourine: 0xFF12EF,
}
chao_kindergarten_basics_location_table = {
LocationName.chao_kindergarten_any_drawing: 0xFF12F0,
LocationName.chao_kindergarten_any_dance: 0xFF12F1,
LocationName.chao_kindergarten_any_song: 0xFF12F2,
LocationName.chao_kindergarten_any_instrument: 0xFF12F3,
}
black_market_location_table = { LocationName.chao_black_market_base + str(index): (0xFF1300 + index) for index in range(1,65) }
kart_race_beginner_location_table = {
LocationName.kart_race_beginner_sonic: 0xFF0A00,
LocationName.kart_race_beginner_tails: 0xFF0A01,
LocationName.kart_race_beginner_knuckles: 0xFF0A02,
LocationName.kart_race_beginner_shadow: 0xFF0A03,
LocationName.kart_race_beginner_eggman: 0xFF0A04,
LocationName.kart_race_beginner_rouge: 0xFF0A05,
}
kart_race_standard_location_table = {
LocationName.kart_race_standard_sonic: 0xFF0A06,
LocationName.kart_race_standard_tails: 0xFF0A07,
LocationName.kart_race_standard_knuckles: 0xFF0A08,
LocationName.kart_race_standard_shadow: 0xFF0A09,
LocationName.kart_race_standard_eggman: 0xFF0A0A,
LocationName.kart_race_standard_rouge: 0xFF0A0B,
}
kart_race_expert_location_table = {
LocationName.kart_race_expert_sonic: 0xFF0A0C,
LocationName.kart_race_expert_tails: 0xFF0A0D,
LocationName.kart_race_expert_knuckles: 0xFF0A0E,
LocationName.kart_race_expert_shadow: 0xFF0A0F,
LocationName.kart_race_expert_eggman: 0xFF0A10,
LocationName.kart_race_expert_rouge: 0xFF0A11,
}
kart_race_mini_location_table = {
LocationName.kart_race_beginner: 0xFF0A12,
LocationName.kart_race_standard: 0xFF0A13,
LocationName.kart_race_expert: 0xFF0A14,
}
green_hill_location_table = {
LocationName.green_hill: 0xFF001F,
}
green_hill_chao_location_table = {
LocationName.green_hill_chao_1: 0xFF041F,
}
green_hill_animal_location_table = {
#LocationName.green_hill_animal_1: 0xFF0B1F, # Disabled for technical reasons, may return
}
final_boss_location_table = {
# LocationName.biolizard: 0xFF003F,
LocationName.finalhazard: 0xFF005F,
}
grand_prix_location_table = {
LocationName.grand_prix: 0xFF007F,
}
chaos_chao_location_table = {
LocationName.chaos_chao: 0xFF009F,
}
all_locations = {
**mission_location_table,
**upgrade_location_table,
**boss_gate_location_table,
**boss_rush_location_table,
**chao_key_location_table,
**pipe_location_table,
**hidden_whistle_location_table,
**beetle_location_table,
**omochao_location_table,
**animal_location_table,
**chao_race_beginner_location_table,
**chao_karate_beginner_location_table,
**chao_race_intermediate_location_table,
**chao_karate_intermediate_location_table,
**chao_race_expert_location_table,
**chao_karate_expert_location_table,
**chao_karate_super_location_table,
**kart_race_beginner_location_table,
**kart_race_standard_location_table,
**kart_race_expert_location_table,
**kart_race_mini_location_table,
**green_hill_location_table,
**green_hill_chao_location_table,
**green_hill_animal_location_table,
**final_boss_location_table,
**grand_prix_location_table,
**chaos_chao_location_table,
**chao_stat_swim_table,
**chao_stat_fly_table,
**chao_stat_run_table,
**chao_stat_power_table,
**chao_stat_stamina_table,
**chao_stat_luck_table,
**chao_stat_intelligence_table,
**chao_animal_part_location_table,
**chao_kindergarten_location_table,
**chao_kindergarten_basics_location_table,
**black_market_location_table,
}
boss_gate_set = [
LocationName.gate_1_boss,
LocationName.gate_2_boss,
LocationName.gate_3_boss,
LocationName.gate_4_boss,
LocationName.gate_5_boss,
]
chao_race_prize_set = [
LocationName.chao_race_crab_pool_3,
LocationName.chao_race_stump_valley_3,
LocationName.chao_race_mushroom_forest_3,
LocationName.chao_race_block_canyon_3,
LocationName.chao_race_aquamarine_5,
LocationName.chao_race_topaz_5,
LocationName.chao_race_peridot_5,
LocationName.chao_race_garnet_5,
LocationName.chao_race_onyx_5,
LocationName.chao_race_diamond_5,
LocationName.chao_race_challenge_4,
LocationName.chao_race_challenge_8,
LocationName.chao_race_challenge_12,
LocationName.chao_race_hero_2,
LocationName.chao_race_hero_4,
LocationName.chao_race_dark_2,
LocationName.chao_race_dark_4,
LocationName.chao_beginner_karate_5,
LocationName.chao_standard_karate_5,
LocationName.chao_expert_karate_5,
LocationName.chao_super_karate_5,
]
def setup_locations(world: World, player: int, mission_map: typing.Dict[int, int], mission_count_map: typing.Dict[int, int]):
location_table = {}
chao_location_table = {}
if world.options.goal == 3:
if world.options.kart_race_checks == 2:
location_table.update({**kart_race_beginner_location_table})
location_table.update({**kart_race_standard_location_table})
location_table.update({**kart_race_expert_location_table})
elif world.options.kart_race_checks == 1:
location_table.update({**kart_race_mini_location_table})
location_table.update({**grand_prix_location_table})
else:
for i in range(31):
mission_count = mission_count_map[i]
mission_order: typing.List[int] = mission_orders[mission_map[i]]
stage_prefix: str = stage_name_prefixes[i]
for j in range(mission_count):
mission_number = mission_order[j]
location_name: str = stage_prefix + str(mission_number)
location_table[location_name] = mission_location_table[location_name]
location_table.update({**upgrade_location_table})
if world.options.keysanity:
location_table.update({**chao_key_location_table})
if world.options.whistlesanity.value == 1:
location_table.update({**pipe_location_table})
elif world.options.whistlesanity.value == 2:
location_table.update({**hidden_whistle_location_table})
elif world.options.whistlesanity.value == 3:
location_table.update({**pipe_location_table})
location_table.update({**hidden_whistle_location_table})
if world.options.beetlesanity:
location_table.update({**beetle_location_table})
if world.options.omosanity:
location_table.update({**omochao_location_table})
if world.options.animalsanity:
location_table.update({**animal_location_table})
if world.options.kart_race_checks == 2:
location_table.update({**kart_race_beginner_location_table})
location_table.update({**kart_race_standard_location_table})
location_table.update({**kart_race_expert_location_table})
elif world.options.kart_race_checks == 1:
location_table.update({**kart_race_mini_location_table})
if world.options.goal.value in [0, 2, 4, 5, 6]:
location_table.update({**final_boss_location_table})
elif world.options.goal.value in [7]:
location_table.update({**chaos_chao_location_table})
if world.options.goal.value in [1, 2]:
location_table.update({**green_hill_location_table})
if world.options.keysanity:
location_table.update({**green_hill_chao_location_table})
if world.options.animalsanity:
location_table.update({**green_hill_animal_location_table})
if world.options.goal.value in [4, 5, 6]:
location_table.update({**boss_rush_location_table})
if world.options.chao_race_difficulty.value >= 1:
chao_location_table.update({**chao_race_beginner_location_table})
if world.options.chao_race_difficulty.value >= 2:
chao_location_table.update({**chao_race_intermediate_location_table})
if world.options.chao_race_difficulty.value >= 3:
chao_location_table.update({**chao_race_expert_location_table})
if world.options.chao_karate_difficulty.value >= 1:
chao_location_table.update({**chao_karate_beginner_location_table})
if world.options.chao_karate_difficulty.value >= 2:
chao_location_table.update({**chao_karate_intermediate_location_table})
if world.options.chao_karate_difficulty.value >= 3:
chao_location_table.update({**chao_karate_expert_location_table})
if world.options.chao_karate_difficulty.value >= 4:
chao_location_table.update({**chao_karate_super_location_table})
for key, value in chao_location_table.items():
if key not in chao_race_prize_set:
if world.options.chao_stadium_checks == "all":
location_table[key] = value
else:
location_table[key] = value
for index in range(1, world.options.chao_stats.value + 1):
if (index % world.options.chao_stats_frequency.value) == (world.options.chao_stats.value % world.options.chao_stats_frequency.value):
location_table[LocationName.chao_stat_swim_base + str(index)] = chao_stat_swim_table[ LocationName.chao_stat_swim_base + str(index)]
location_table[LocationName.chao_stat_fly_base + str(index)] = chao_stat_fly_table[ LocationName.chao_stat_fly_base + str(index)]
location_table[LocationName.chao_stat_run_base + str(index)] = chao_stat_run_table[ LocationName.chao_stat_run_base + str(index)]
location_table[LocationName.chao_stat_power_base + str(index)] = chao_stat_power_table[ LocationName.chao_stat_power_base + str(index)]
if world.options.chao_stats_stamina:
location_table[LocationName.chao_stat_stamina_base + str(index)] = chao_stat_stamina_table[LocationName.chao_stat_stamina_base + str(index)]
if world.options.chao_stats_hidden:
location_table[LocationName.chao_stat_luck_base + str(index)] = chao_stat_luck_table[ LocationName.chao_stat_luck_base + str(index)]
location_table[LocationName.chao_stat_intelligence_base + str(index)] = chao_stat_intelligence_table[LocationName.chao_stat_intelligence_base + str(index)]
if world.options.chao_animal_parts:
location_table.update({**chao_animal_part_location_table})
if world.options.chao_kindergarten.value == 1:
location_table.update({**chao_kindergarten_basics_location_table})
elif world.options.chao_kindergarten.value == 2:
location_table.update({**chao_kindergarten_location_table})
for index in range(1, world.options.black_market_slots.value + 1):
location_table[LocationName.chao_black_market_base + str(index)] = black_market_location_table[LocationName.chao_black_market_base + str(index)]
for x in range(len(boss_gate_set)):
if x < world.options.number_of_level_gates.value:
location_table[boss_gate_set[x]] = boss_gate_location_table[boss_gate_set[x]]
return location_table
lookup_id_to_name: typing.Dict[int, str] = {id: name for name, _ in all_locations.items()}