/** * * rct2: 0x006AB199 */ static void window_editor_object_selection_close() { rct_window* w; window_get_register(w); //if (!(RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_EDITOR)) // return; RCT2_CALLPROC_EBPSAFE(0x6ABB66); editor_load_selected_objects(); reset_loaded_objects(); object_free_scenario_text(); RCT2_CALLPROC_EBPSAFE(0x6AB316); if (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & SCREEN_FLAGS_EDITOR) { research_populate_list_random(); research_remove_non_separate_vehicle_types(); } else { // Used for in-game object selection cheat research_reset_items(); research_populate_list_researched(); gSilentResearch = true; sub_684AC3(); gSilentResearch = false; } window_new_ride_init_vars(); }
/** * * rct2: 0x00667132 */ void park_init() { int i; RCT2_GLOBAL(0x013CA740, uint8) = 0; RCT2_GLOBAL(0x013573D4, uint16) = 777; RCT2_GLOBAL(RCT2_ADDRESS_HANDYMAN_COLOUR, uint8) = 28; RCT2_GLOBAL(RCT2_ADDRESS_MECHANIC_COLOUR, uint8) = 28; RCT2_GLOBAL(RCT2_ADDRESS_SECURITY_COLOUR, uint8) = 28; RCT2_GLOBAL(RCT2_ADDRESS_GUESTS_IN_PARK, uint16) = 0; RCT2_GLOBAL(0x01357BC8, uint16) = 0; RCT2_GLOBAL(RCT2_ADDRESS_GUESTS_HEADING_FOR_PARK, uint16) = 0; RCT2_GLOBAL(0x013573FE, uint16) = 0; RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_PARK_RATING, uint16) = 0; _guestGenerationProbability = 0; RCT2_GLOBAL(RCT2_TOTAL_RIDE_VALUE, uint16) = 0; RCT2_GLOBAL(RCT2_ADDRESS_LAST_RESEARCHED_ITEM_SUBJECT, sint32) = -1; for (i = 0; i < 20; i++) RCT2_ADDRESS(0x01358102, uint8)[i] = 0; research_reset_items(); finance_init(); for (i = 0; i < 2; i++) RCT2_ADDRESS(0x01357404, uint32)[i] = 0; for (i = 0; i < 56; i++) RCT2_ADDRESS(0x01357BD0, sint32)[i] = -1; RCT2_GLOBAL(RCT2_ADDRESS_PARK_ENTRANCE_FEE, money16) = MONEY(10, 00); RCT2_GLOBAL(RCT2_ADDRESS_PEEP_SPAWNS, sint16) = -1; RCT2_GLOBAL(0x013573F8, sint16) = -1; RCT2_GLOBAL(RCT2_ADDRESS_ACTIVE_RESEARCH_TYPES, uint16) = 127; RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8) = 2; RCT2_GLOBAL(RCT2_ADDRESS_GUEST_INITIAL_CASH, uint16) = MONEY(50,00); // Cash per guest (average) RCT2_GLOBAL(RCT2_ADDRESS_GUEST_INITIAL_HAPPINESS, uint8) = calculate_guest_initial_happiness(50); // 50% RCT2_GLOBAL(RCT2_ADDRESS_GUEST_INITIAL_HUNGER, uint8) = 200; RCT2_GLOBAL(RCT2_ADDRESS_GUEST_INITIAL_THIRST, uint8) = 200; RCT2_GLOBAL(RCT2_ADDRESS_OBJECTIVE_TYPE, uint8) = 1; RCT2_GLOBAL(RCT2_ADDRESS_OBJECTIVE_YEAR, uint8) = 4; RCT2_GLOBAL(RCT2_ADDRESS_OBJECTIVE_NUM_GUESTS, uint16) = 1000; RCT2_GLOBAL(RCT2_ADDRESS_LAND_COST, uint16) = MONEY(90, 00); RCT2_GLOBAL(RCT2_ADDRESS_CONSTRUCTION_RIGHTS_COST, uint16) = MONEY(40,00); RCT2_GLOBAL(0x01358774, uint16) = 0; RCT2_GLOBAL(RCT2_ADDRESS_PARK_FLAGS, uint32) = PARK_FLAGS_NO_MONEY | PARK_FLAGS_SHOW_REAL_GUEST_NAMES; park_reset_history(); finance_reset_history(); award_reset(); rct_s6_info *info = (rct_s6_info*)0x0141F570; info->name[0] = '\0'; format_string(info->details, STR_NO_DETAILS_YET, NULL); }
/** * * rct2: 0x00685675 */ void research_populate_list_random() { research_reset_items(); // Rides for (int32_t i = 0; i < MAX_RIDE_OBJECTS; i++) { rct_ride_entry* rideEntry = get_ride_entry(i); if (rideEntry == nullptr) { continue; } int32_t researched = (scenario_rand() & 0xFF) > 128; for (auto rideType : rideEntry->ride_type) { if (rideType != RIDE_TYPE_NULL) { research_insert(researched, RESEARCH_ENTRY_RIDE_MASK | (rideType << 8) | i, rideEntry->category[0]); } } } // Scenery for (int32_t i = 0; i < MAX_SCENERY_GROUP_OBJECTS; i++) { rct_scenery_group_entry* sceneryGroupEntry = get_scenery_group_entry(i); if (sceneryGroupEntry == nullptr) { continue; } int32_t researched = (scenario_rand() & 0xFF) > 85; research_insert(researched, i, RESEARCH_CATEGORY_SCENERY_GROUP); } }
/** * * rct2: 0x00667132 */ void park_init() { sint32 i; gUnk13CA740 = 0; gParkName = STR_UNNAMED_PARK; gStaffHandymanColour = COLOUR_BRIGHT_RED; gStaffMechanicColour = COLOUR_LIGHT_BLUE; gStaffSecurityColour = COLOUR_YELLOW; gNumGuestsInPark = 0; gNumGuestsInParkLastWeek = 0; gNumGuestsHeadingForPark = 0; gGuestChangeModifier = 0; gParkRating = 0; _guestGenerationProbability = 0; gTotalRideValueForMoney = 0; gResearchLastItem.rawValue = RESEARCHED_ITEMS_SEPARATOR; for (i = 0; i < 20; i++) gMarketingCampaignDaysLeft[i] = 0; research_reset_items(); finance_init(); set_every_ride_type_not_invented(); set_all_scenery_items_invented(); gParkEntranceFee = MONEY(10, 00); for (auto &peepSpawn : gPeepSpawns) { peepSpawn.x = PEEP_SPAWN_UNDEFINED; } gResearchPriorities = (1 << RESEARCH_CATEGORY_TRANSPORT) | (1 << RESEARCH_CATEGORY_GENTLE) | (1 << RESEARCH_CATEGORY_ROLLERCOASTER) | (1 << RESEARCH_CATEGORY_THRILL) | (1 << RESEARCH_CATEGORY_WATER) | (1 << RESEARCH_CATEGORY_SHOP) | (1 << RESEARCH_CATEGORY_SCENERY_GROUP); gResearchFundingLevel = RESEARCH_FUNDING_NORMAL; gGuestInitialCash = MONEY(50,00); // Cash per guest (average) gGuestInitialHappiness = calculate_guest_initial_happiness(50); // 50% gGuestInitialHunger = 200; gGuestInitialThirst = 200; gScenarioObjectiveType = OBJECTIVE_GUESTS_BY; gScenarioObjectiveYear = 4; gScenarioObjectiveNumGuests = 1000; gLandPrice = MONEY(90, 00); gConstructionRightsPrice = MONEY(40,00); gParkFlags = PARK_FLAGS_NO_MONEY | PARK_FLAGS_SHOW_REAL_GUEST_NAMES; park_reset_history(); finance_reset_history(); award_reset(); gS6Info.name[0] = '\0'; format_string(gS6Info.details, 256, STR_NO_DETAILS_YET, nullptr); }