const struct Chapters { const unsigned int begin; const unsigned int end; const char* const name; } chapters[] = { {0, 5, "The Courtesy Call"}, {5, 11, "The Cold Boot"}, {11, 20, "The Return"}, {20, 25, "The Surprise"}, {25, 28, "The Escape"}, {28, 34, "The Fall"}, {34, 38, "The Reunion"}, {38, 48, "The Itch"}, {48, 51, "The Part Where..."}, {51, 57, "Team Building"}, {57, 65, "Mass and Velocity"}, {65, 73, "Hard Light"}, {73, 82, "Excursion Funnels"}, {82, 90, "Mobility Gels"}, {90, 99, "Advanced Chambers"}, }; const struct Leaderboards { const int portals; const int time; const char* const name; const char* const map; } leaderboards[] = { {47459, 47458, "Portal Gun", "sp_a1_intro3"}, {47454, 47455, "Smooth Jazz", "sp_a1_intro4"}, {47451, 47452, "Cube Momentum", "sp_a1_intro5"}, {47107, 47106, "Future Starter", "sp_a1_intro6"}, {47734, 47735, "Incinerator", "sp_a2_intro"}, {47737, 47736, "Laser Stairs", "sp_a2_laser_stairs"}, {47739, 47738, "Dual Lasers", "sp_a2_dual_lasers"}, {47743, 47742, "Laser Over Goo", "sp_a2_laser_over_goo"}, {47745, 47744, "Trust Fling", "sp_a2_trust_fling"}, {47466, 47465, "Pit Flings", "sp_a2_pit_flings"}, {47747, 47746, "Fizzler Intro", "sp_a2_fizzler_intro"}, {47749, 47748, "Ceiling Catapult", "sp_a2_sphere_peek"}, {47750, 47751, "Ricochet", "sp_a2_ricochet"}, {47753, 47752, "Bridge Intro", "sp_a2_bridge_intro"}, {47754, 47755, "Bridge the Gap", "sp_a2_bridge_the_gap"}, {47757, 47756, "Turret Intro", "sp_a2_turret_intro"}, {47758, 47759, "Laser Relays", "sp_a2_laser_relays"}, {47761, 47760, "Turret Blocker", "sp_a2_turret_blocker"}, {47762, 47763, "Laser vs. Turret", "sp_a2_laser_vs_turret"}, {47765, 47764, "Pull the Rug", "sp_a2_pull_the_rug"}, {47767, 47766, "Column Blocker", "sp_a2_column_blocker"}, {47769, 47768, "Laser Chaining", "sp_a2_laser_chaining"}, {47771, 47770, "Triple Laser", "sp_a2_triple_laser"}, {47772, 47773, "Jail Break", "sp_a2_bts1"}, {47775, 47774, "Escape", "sp_a2_bts2"}, {47777, 47776, "Turret Factory", "sp_a2_bts3"}, {47778, 47779, "Turret Sabotage", "sp_a2_bts4"}, {47781, 47780, "Neurotoxin Sabotage", "sp_a2_bts5"}, {47782, 47783, "Underground", "sp_a3_01"}, {47785, 47784, "Cave Johnson", "sp_a3_03"}, {47786, 47787, "Repulsion Intro", "sp_a3_jump_intro"}, {47467, 47468, "Bomb Flings", "sp_a3_bomb_flings"}, {47470, 47469, "Crazy Box", "sp_a3_crazy_box"}, {47471, 47472, "PotatOS", "sp_a3_transition01"}, {47792, 47791, "Propulsion Intro", "sp_a3_speed_ramp"}, {47794, 47793, "Propulsion Flings", "sp_a3_speed_flings"}, {47796, 47795, "Conversion Intro", "sp_a3_portal_intro"}, {47799, 47798, "Three Gels", "sp_a3_end"}, {47801, 47800, "Funnel Intro", "sp_a4_tb_intro"}, {47803, 47802, "Ceiling Button", "sp_a4_tb_trust_drop"}, {47805, 47804, "Wall Button", "sp_a4_tb_wall_button"}, {47807, 47806, "Polarity", "sp_a4_tb_polarity"}, {47809, 47808, "Funnel Catch", "sp_a4_tb_catch"}, {47812, 47811, "Stop the Box", "sp_a4_stop_the_box"}, {47814, 47813, "Laser Catapult", "sp_a4_laser_catapult"}, {47816, 47815, "Laser Platform", "sp_a4_laser_platform"}, {47818, 47817, "Propulsion Catch", "sp_a4_speed_tb_catch"}, {47820, 47819, "Repulsion Polarity", "sp_a4_jump_polarity"}, {47822, 47821, "Finale 2", "sp_a4_finale2"}, {47823, 47824, "Finale 3", "sp_a4_finale3"}, {47457, 47456, "Finale 4", "sp_a4_finale4"}, {47740, 47741, "01 Doors", "mp_coop_doors"}, {47826, 47825, "02 Buttons", "mp_coop_race_2"}, {47827, 47828, "03 Lasers", "mp_coop_laser_2"}, {47830, 47829, "04 Rat Maze", "mp_coop_rat_maze"}, {45466, 45467, "05 Laser Crusher", "mp_coop_laser_crusher"}, {46361, 46362, "06 Behind the Scenes", "mp_coop_teambts"}, {47832, 47831, "01 Flings", "mp_coop_fling_3"}, {47834, 47833, "02 Infinifling", "mp_coop_infinifling_train"}, {47836, 47835, "03 Team Retrieval", "mp_coop_come_along"}, {47838, 47837, "04 Vertical Flings", "mp_coop_fling_1"}, {47839, 47840, "05 Catapults", "mp_coop_catapult_1"}, {47842, 47841, "06 Multifling", "mp_coop_multifling_1"}, {47843, 47844, "07 Fling Crushers", "mp_coop_fling_crushers"}, {47846, 47845, "08 Industrial Fan", "mp_coop_fan"}, {47847, 47848, "01 Cooperative Bridges", "mp_coop_wall_intro"}, {47850, 47849, "02 Bridge Swap", "mp_coop_wall_2"}, {47855, 47854, "03 Fling Block", "mp_coop_catapult_wall_intro"}, {47857, 47856, "04 Catapult Block", "mp_coop_wall_block"}, {47859, 47858, "05 Bridge Fling", "mp_coop_catapult_2"}, {47860, 47861, "06 Turret Walls", "mp_coop_turret_walls"}, {52641, 52642, "07 Turret Assassin", "mp_coop_turret_ball"}, {52659, 52660, "08 Bridge Testing", "mp_coop_wall_5"}, {52661, 52662, "01 Cooperative Funnels", "mp_coop_tbeam_redirect"}, {52664, 52663, "02 Funnel Drill", "mp_coop_tbeam_drill"}, {52666, 52665, "03 Funnel Catch", "mp_coop_tbeam_catch_grind_1"}, {52668, 52667, "04 Funnel Laser", "mp_coop_tbeam_laser_1"}, {52672, 52671, "05 Cooperative Polarity", "mp_coop_tbeam_polarity"}, {52688, 52687, "06 Funnel Hop", "mp_coop_tbeam_polarity2"}, {52690, 52689, "07 Advanced Polarity", "mp_coop_tbeam_polarity3"}, {52692, 52691, "08 Funnel Maze", "mp_coop_tbeam_maze"}, {52778, 52777, "09 Turret Warehouse", "mp_coop_tbeam_end"}, {52693, 52694, "01 Repulsion Jumps", "mp_coop_paint_come_along"}, {52712, 52711, "02 Double Bounce", "mp_coop_paint_redirect"}, {52713, 52714, "03 Bridge Repulsion", "mp_coop_paint_bridge"}, {52716, 52715, "04 Wall Repulsion", "mp_coop_paint_walljumps"}, {52718, 52717, "05 Propulsion Crushers", "mp_coop_paint_speed_fling"}, {52736, 52735, "06 Turret Ninja", "mp_coop_paint_red_racer"}, {52737, 52738, "07 Propulsion Retrieval", "mp_coop_paint_speed_catch"}, {52739, 52740, "08 Vault Entrance", "mp_coop_paint_longjump_intro"}, {49342, 49341, "01 Separation", "mp_coop_separation_1"}, {49344, 49343, "02 Triple Axis", "mp_coop_tripleaxis"}, {49346, 49345, "03 Catapult Catch", "mp_coop_catapult_catch"}, {49348, 49347, "04 Bridge Gels", "mp_coop_2paints_1bridge"}, {49350, 49349, "05 Maintenance", "mp_coop_paint_conversion"}, {49352, 49351, "06 Bridge Catch", "mp_coop_bridge_catch"}, {52758, 52757, "07 Double Lift", "mp_coop_laser_tbeam"}, {52760, 52759, "08 Gel Maze", "mp_coop_paint_rat_maze"}, {48288, 48287, "09 Crazier Box", "mp_coop_paint_crazy_box"}, };