mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-06 06:32:56 +01:00
add global macros for research variables
This commit is contained in:
@@ -102,7 +102,7 @@ void finance_pay_research()
|
||||
if (gParkFlags & PARK_FLAGS_NO_MONEY)
|
||||
return;
|
||||
|
||||
level = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8);
|
||||
level = gResearchFundingLevel;
|
||||
finance_payment(research_cost_table[level] / 4, RCT_EXPENDITURE_TYPE_RESEARCH);
|
||||
}
|
||||
|
||||
@@ -221,7 +221,7 @@ void finance_update_daily_profit()
|
||||
}
|
||||
|
||||
// Research costs
|
||||
uint8 level = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8);
|
||||
uint8 level = gResearchFundingLevel;
|
||||
current_profit -= research_cost_table[level];
|
||||
|
||||
// Loan costs
|
||||
|
||||
@@ -76,29 +76,27 @@ void research_update_uncompleted_types()
|
||||
*/
|
||||
static void research_calculate_expected_date()
|
||||
{
|
||||
int progress = RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS, uint16);
|
||||
int progressStage = RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8);
|
||||
int researchLevel = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8);
|
||||
int currentDay = gDateMonthTicks;
|
||||
int currentMonth = gDateMonthsElapsed;
|
||||
int progress = gResearchProgress;
|
||||
int progressStage = gResearchProgressStage;
|
||||
int researchLevel = gResearchFundingLevel;
|
||||
int expectedDay, expectedMonth, dayQuotient, dayRemainder, progressRemaining, daysRemaining;
|
||||
|
||||
if (progressStage == RESEARCH_STAGE_INITIAL_RESEARCH || researchLevel == RESEARCH_FUNDING_NONE) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_EXPECTED_DAY, uint8) = 255;
|
||||
gResearchExpectedDay = 255;
|
||||
} else {
|
||||
progressRemaining = progressStage == RESEARCH_STAGE_COMPLETING_DESIGN ? 0x10000 : 0x20000;
|
||||
progressRemaining -= progress;
|
||||
daysRemaining = (progressRemaining / _researchRate[researchLevel]) * 128;
|
||||
|
||||
expectedDay = currentDay + (daysRemaining & 0xFFFF);
|
||||
expectedDay = gDateMonthTicks + (daysRemaining & 0xFFFF);
|
||||
dayQuotient = expectedDay / 0x10000;
|
||||
dayRemainder = expectedDay % 0x10000;
|
||||
|
||||
expectedMonth = date_get_month(currentMonth + dayQuotient + (daysRemaining >> 16));
|
||||
expectedMonth = date_get_month(gDateMonthsElapsed + dayQuotient + (daysRemaining >> 16));
|
||||
expectedDay = (dayRemainder * days_in_month[expectedMonth]) >> 16;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_EXPECTED_DAY, uint8) = expectedDay;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_EXPECTED_MONTH, uint8) = expectedMonth;
|
||||
gResearchExpectedDay = expectedDay;
|
||||
gResearchExpectedMonth = expectedMonth;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,7 +114,6 @@ static void research_next_design()
|
||||
{
|
||||
rct_research_item *firstUnresearchedItem, *researchItem, tmp;
|
||||
int ignoreActiveResearchTypes;
|
||||
int activeResearchTypes = RCT2_GLOBAL(RCT2_ADDRESS_ACTIVE_RESEARCH_TYPES, uint16);
|
||||
|
||||
// Skip already researched items
|
||||
firstUnresearchedItem = gResearchItems;
|
||||
@@ -133,22 +130,22 @@ static void research_next_design()
|
||||
researchItem = firstUnresearchedItem;
|
||||
continue;
|
||||
} else {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS, uint16) = 0;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) = RESEARCH_STAGE_FINISHED_ALL;
|
||||
gResearchProgress = 0;
|
||||
gResearchProgressStage = RESEARCH_STAGE_FINISHED_ALL;
|
||||
research_invalidate_related_windows();
|
||||
// Reset funding to 0 if no more rides.
|
||||
research_set_funding(0);
|
||||
return;
|
||||
}
|
||||
} else if (ignoreActiveResearchTypes || (activeResearchTypes & (1 << researchItem->category))) {
|
||||
} else if (ignoreActiveResearchTypes || (gResearchPriorities & (1 << researchItem->category))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_ITEM, uint32) = researchItem->entryIndex;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_CATEGORY, uint8) = researchItem->category;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS, uint16) = 0;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) = RESEARCH_STAGE_DESIGNING;
|
||||
gResearchNextItem = researchItem->entryIndex;
|
||||
gResearchNextCategory = researchItem->category;
|
||||
gResearchProgress = 0;
|
||||
gResearchProgressStage = RESEARCH_STAGE_DESIGNING;
|
||||
|
||||
// Bubble research item up until it is above the researched items separator
|
||||
do {
|
||||
@@ -250,28 +247,28 @@ void research_update()
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_SCENARIO_TICKS, uint32) % 32 != 0)
|
||||
return;
|
||||
|
||||
researchLevel = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8);
|
||||
researchLevel = gResearchFundingLevel;
|
||||
|
||||
currentResearchProgress = RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS, uint16);
|
||||
currentResearchProgress = gResearchProgress;
|
||||
currentResearchProgress += _researchRate[researchLevel];
|
||||
if (currentResearchProgress <= 0xFFFF) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS, uint16) = currentResearchProgress;
|
||||
gResearchProgress = currentResearchProgress;
|
||||
} else {
|
||||
switch (RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8)) {
|
||||
switch (gResearchProgressStage) {
|
||||
case RESEARCH_STAGE_INITIAL_RESEARCH:
|
||||
research_next_design();
|
||||
research_calculate_expected_date();
|
||||
break;
|
||||
case RESEARCH_STAGE_DESIGNING:
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS, uint16) = 0;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) = RESEARCH_STAGE_COMPLETING_DESIGN;
|
||||
gResearchProgress = 0;
|
||||
gResearchProgressStage = RESEARCH_STAGE_COMPLETING_DESIGN;
|
||||
research_calculate_expected_date();
|
||||
research_invalidate_related_windows();
|
||||
break;
|
||||
case RESEARCH_STAGE_COMPLETING_DESIGN:
|
||||
research_finish_item(RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_ITEM, sint32));
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS, uint16) = 0;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) = 0;
|
||||
research_finish_item((sint32)gResearchNextItem);
|
||||
gResearchProgress = 0;
|
||||
gResearchProgressStage = 0;
|
||||
research_calculate_expected_date();
|
||||
research_update_uncompleted_types();
|
||||
research_invalidate_related_windows();
|
||||
@@ -338,8 +335,8 @@ void sub_684AC3(){
|
||||
}
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_LAST_RESEARCHED_ITEM_SUBJECT, sint32) = -1;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) = 0;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS, uint16) = 0;
|
||||
gResearchProgressStage = 0;
|
||||
gResearchProgress = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -565,10 +562,10 @@ void game_command_set_research_funding(int* eax, int* ebx, int* ecx, int* edx, i
|
||||
log_warning("Invalid research rate %d", fundingAmount);
|
||||
return;
|
||||
}
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8) = fundingAmount;
|
||||
gResearchFundingLevel = fundingAmount;
|
||||
}
|
||||
else
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_ACTIVE_RESEARCH_TYPES, uint8) = activeCategories;
|
||||
gResearchPriorities = activeCategories;
|
||||
|
||||
window_invalidate_by_class(WC_FINANCES);
|
||||
window_invalidate_by_class(WC_RESEARCH);
|
||||
|
||||
@@ -66,6 +66,15 @@ enum {
|
||||
RESEARCH_CATEGORY_SCENERYSET
|
||||
};
|
||||
|
||||
#define gResearchFundingLevel RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8)
|
||||
#define gResearchPriorities RCT2_GLOBAL(RCT2_ADDRESS_ACTIVE_RESEARCH_TYPES, uint8)
|
||||
#define gResearchProgress RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS, uint16)
|
||||
#define gResearchProgressStage RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8)
|
||||
#define gResearchExpectedMonth RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_EXPECTED_MONTH, uint8)
|
||||
#define gResearchExpectedDay RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_EXPECTED_DAY, uint8)
|
||||
#define gResearchNextCategory RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_CATEGORY, uint8)
|
||||
#define gResearchNextItem RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_ITEM, uint32)
|
||||
|
||||
extern rct_research_item *gResearchItems;
|
||||
extern uint8 gResearchUncompletedCategories;
|
||||
extern bool gSilentResearch;
|
||||
|
||||
@@ -856,7 +856,7 @@ void S4Importer::ImportResearch()
|
||||
research_remove_non_separate_vehicle_types();
|
||||
|
||||
// Research funding / priority
|
||||
uint16 activeResearchTypes = 0;
|
||||
uint8 activeResearchTypes = 0;
|
||||
if (_s4.research_priority & RCT1_RESEARCH_EXPENDITURE_ROLLERCOASTERS)
|
||||
{
|
||||
activeResearchTypes |= (1 << RESEARCH_CATEGORY_ROLLERCOASTER);
|
||||
@@ -879,16 +879,16 @@ void S4Importer::ImportResearch()
|
||||
{
|
||||
activeResearchTypes |= (1 << RESEARCH_CATEGORY_SCENERYSET);
|
||||
}
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_ACTIVE_RESEARCH_TYPES, uint16) = activeResearchTypes;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8) = _s4.research_level;
|
||||
gResearchPriorities = activeResearchTypes;
|
||||
gResearchFundingLevel = _s4.research_level;
|
||||
|
||||
// Research history
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS, uint8) = _s4.research_progress;
|
||||
// RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) =
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_ITEM, uint8) = _s4.next_research_item;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_CATEGORY, uint8) = _s4.next_research_category;
|
||||
// RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_EXPECTED_DAY, uint8) =
|
||||
// RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_EXPECTED_MONTH, uint8) =
|
||||
gResearchProgress = _s4.research_progress;
|
||||
// gResearchProgressStage =
|
||||
gResearchNextItem = _s4.next_research_item;
|
||||
gResearchNextCategory = _s4.next_research_category;
|
||||
// gResearchExpectedDay =
|
||||
// gResearchExpectedMonth =
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1263,7 +1263,7 @@ static void window_finances_research_mouseup(rct_window *w, int widgetIndex)
|
||||
case WIDX_WATER_RIDES:
|
||||
case WIDX_SHOPS_AND_STALLS:
|
||||
case WIDX_SCENERY_AND_THEMING:
|
||||
activeResearchTypes = RCT2_GLOBAL(RCT2_ADDRESS_ACTIVE_RESEARCH_TYPES, uint16);
|
||||
activeResearchTypes = gResearchPriorities;
|
||||
activeResearchTypes ^= 1 << (widgetIndex - WIDX_TRANSPORT_RIDES);
|
||||
research_set_priority(activeResearchTypes);
|
||||
break;
|
||||
@@ -1298,7 +1298,7 @@ static void window_finances_research_mousedown(int widgetIndex, rct_window *w, r
|
||||
dropdownWidget->right - dropdownWidget->left - 3
|
||||
);
|
||||
|
||||
int currentResearchLevel = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8);
|
||||
int currentResearchLevel = gResearchFundingLevel;
|
||||
dropdown_set_checked(currentResearchLevel, true);
|
||||
}
|
||||
|
||||
@@ -1340,17 +1340,17 @@ static void window_finances_research_invalidate(rct_window *w)
|
||||
}
|
||||
|
||||
window_finances_set_pressed_tab(w);
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) == RESEARCH_STAGE_FINISHED_ALL) {
|
||||
if (gResearchProgressStage == RESEARCH_STAGE_FINISHED_ALL) {
|
||||
window_finances_research_widgets[WIDX_RESEARCH_FUNDING].type = WWT_EMPTY;
|
||||
window_finances_research_widgets[WIDX_RESEARCH_FUNDING_DROPDOWN_BUTTON].type = WWT_EMPTY;
|
||||
}
|
||||
int currentResearchLevel = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8);
|
||||
int currentResearchLevel = gResearchFundingLevel;
|
||||
|
||||
// Current funding
|
||||
window_finances_research_widgets[WIDX_RESEARCH_FUNDING].image = STR_NO_FUNDING + currentResearchLevel;
|
||||
|
||||
// Checkboxes
|
||||
int activeResearchTypes = RCT2_GLOBAL(RCT2_ADDRESS_ACTIVE_RESEARCH_TYPES, uint16);
|
||||
uint8 activeResearchTypes = gResearchPriorities;
|
||||
int uncompletedResearchTypes = gResearchUncompletedCategories;
|
||||
for (int i = 0; i < 7; i++) {
|
||||
int mask = 1 << i;
|
||||
|
||||
@@ -330,7 +330,7 @@ void window_research_development_page_paint(rct_window *w, rct_drawpixelinfo *dp
|
||||
int y = w->y + w->widgets[WIDX_CURRENTLY_IN_DEVELOPMENT_GROUP + baseWidgetIndex].top + 12;
|
||||
rct_string_id stringId;
|
||||
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) == RESEARCH_STAGE_FINISHED_ALL) {
|
||||
if (gResearchProgressStage == RESEARCH_STAGE_FINISHED_ALL) {
|
||||
stringId = STR_RESEARCH_UNKNOWN;
|
||||
gfx_draw_string_left_wrapped(dpi, &stringId, x, y, 296, STR_RESEARCH_TYPE_LABEL, 0);
|
||||
y += 25;
|
||||
@@ -345,10 +345,10 @@ void window_research_development_page_paint(rct_window *w, rct_drawpixelinfo *dp
|
||||
} else {
|
||||
// Research type
|
||||
stringId = STR_RESEARCH_UNKNOWN;
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) != RESEARCH_STAGE_INITIAL_RESEARCH) {
|
||||
stringId = STR_TRANSPORT_RIDE + RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_CATEGORY, uint8);
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) != RESEARCH_STAGE_DESIGNING) {
|
||||
uint32 typeId = RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_ITEM, uint32);
|
||||
if (gResearchProgressStage != RESEARCH_STAGE_INITIAL_RESEARCH) {
|
||||
stringId = STR_TRANSPORT_RIDE + gResearchNextCategory;
|
||||
if (gResearchProgressStage != RESEARCH_STAGE_DESIGNING) {
|
||||
uint32 typeId = gResearchNextItem;
|
||||
if (typeId >= 0x10000) {
|
||||
rct_ride_entry *rideEntry = get_ride_entry(typeId & 0xFF);
|
||||
stringId = (rideEntry->flags & RIDE_ENTRY_FLAG_SEPARATE_RIDE_NAME) ?
|
||||
@@ -363,18 +363,18 @@ void window_research_development_page_paint(rct_window *w, rct_drawpixelinfo *dp
|
||||
y += 25;
|
||||
|
||||
// Progress
|
||||
stringId = 2285 + RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8);
|
||||
stringId = 2285 + gResearchProgressStage;
|
||||
gfx_draw_string_left_wrapped(dpi, &stringId, x, y, 296, STR_RESEARCH_PROGRESS_LABEL, 0);
|
||||
y += 15;
|
||||
|
||||
// Expected
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS, uint16) = STR_UNKNOWN;
|
||||
if (RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) != 0) {
|
||||
uint16 expectedDay = RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_EXPECTED_DAY, uint8);
|
||||
if (gResearchProgressStage != 0) {
|
||||
uint16 expectedDay = gResearchExpectedDay;
|
||||
if (expectedDay != 255) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS, uint16) = 2289;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS + 2, uint16) = STR_DATE_DAY_1 + expectedDay;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS + 4, uint16) = STR_MONTH_MARCH + RCT2_GLOBAL(RCT2_ADDRESS_NEXT_RESEARCH_EXPECTED_MONTH, uint8);
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS + 4, uint16) = STR_MONTH_MARCH + gResearchExpectedMonth;
|
||||
}
|
||||
}
|
||||
gfx_draw_string_left(dpi, STR_RESEARCH_EXPECTED_LABEL, (void*)RCT2_ADDRESS_COMMON_FORMAT_ARGS, 0, x, y);
|
||||
@@ -429,7 +429,7 @@ static void window_research_funding_mouseup(rct_window *w, int widgetIndex)
|
||||
case WIDX_WATER_RIDES:
|
||||
case WIDX_SHOPS_AND_STALLS:
|
||||
case WIDX_SCENERY_AND_THEMING:
|
||||
activeResearchTypes = RCT2_GLOBAL(RCT2_ADDRESS_ACTIVE_RESEARCH_TYPES, uint16);
|
||||
activeResearchTypes = gResearchPriorities;
|
||||
activeResearchTypes ^= 1 << (widgetIndex - WIDX_TRANSPORT_RIDES);
|
||||
research_set_priority(activeResearchTypes);
|
||||
break;
|
||||
@@ -464,7 +464,7 @@ static void window_research_funding_mousedown(int widgetIndex, rct_window *w, rc
|
||||
dropdownWidget->right - dropdownWidget->left - 3
|
||||
);
|
||||
|
||||
int currentResearchLevel = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8);
|
||||
int currentResearchLevel = gResearchFundingLevel;
|
||||
dropdown_set_checked(currentResearchLevel, true);
|
||||
}
|
||||
|
||||
@@ -509,7 +509,7 @@ static void window_research_funding_invalidate(rct_window *w)
|
||||
window_research_set_pressed_tab(w);
|
||||
|
||||
if ((gParkFlags & PARK_FLAGS_NO_MONEY) ||
|
||||
(RCT2_GLOBAL(RCT2_ADDRESS_RESEARH_PROGRESS_STAGE, uint8) == RESEARCH_STAGE_FINISHED_ALL)) {
|
||||
(gResearchProgressStage == RESEARCH_STAGE_FINISHED_ALL)) {
|
||||
//window_research_funding_widgets[WIDX_FUNDING_GROUP].type = WWT_EMPTY;
|
||||
window_research_funding_widgets[WIDX_RESEARCH_FUNDING].type = WWT_EMPTY;
|
||||
window_research_funding_widgets[WIDX_RESEARCH_FUNDING_DROPDOWN_BUTTON].type = WWT_EMPTY;
|
||||
@@ -519,12 +519,12 @@ static void window_research_funding_invalidate(rct_window *w)
|
||||
window_research_funding_widgets[WIDX_RESEARCH_FUNDING_DROPDOWN_BUTTON].type = WWT_DROPDOWN_BUTTON;
|
||||
|
||||
// Current funding
|
||||
int currentResearchLevel = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8);
|
||||
int currentResearchLevel = gResearchFundingLevel;
|
||||
window_research_funding_widgets[WIDX_RESEARCH_FUNDING].image = STR_NO_FUNDING + currentResearchLevel;
|
||||
}
|
||||
|
||||
// Checkboxes
|
||||
int activeResearchTypes = RCT2_GLOBAL(RCT2_ADDRESS_ACTIVE_RESEARCH_TYPES, uint16);
|
||||
uint8 activeResearchTypes = gResearchPriorities;
|
||||
int uncompletedResearchTypes = gResearchUncompletedCategories;
|
||||
for (int i = 0; i < 7; i++) {
|
||||
int mask = 1 << i;
|
||||
@@ -563,7 +563,7 @@ void window_research_funding_page_paint(rct_window *w, rct_drawpixelinfo *dpi, i
|
||||
if (gParkFlags & PARK_FLAGS_NO_MONEY)
|
||||
return;
|
||||
|
||||
int currentResearchLevel = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8);
|
||||
int currentResearchLevel = gResearchFundingLevel;
|
||||
money32 currentResearchCostPerWeek = research_cost_table[currentResearchLevel];
|
||||
gfx_draw_string_left(dpi, STR_RESEARCH_COST_PER_MONTH, ¤tResearchCostPerWeek, 0, w->x + 10, w->y + 77);
|
||||
}
|
||||
|
||||
@@ -109,9 +109,16 @@ void park_init()
|
||||
|
||||
gParkEntranceFee = MONEY(10, 00);
|
||||
gPeepSpawns[0].x = UINT16_MAX;
|
||||
RCT2_GLOBAL(0x013573F8, sint16) = -1;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_ACTIVE_RESEARCH_TYPES, uint16) = 127;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_RESEARCH_LEVEL, uint8) = 2;
|
||||
gPeepSpawns[1].x = UINT16_MAX;
|
||||
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_SCENERYSET);
|
||||
gResearchFundingLevel = RESEARCH_FUNDING_NORMAL;
|
||||
|
||||
gGuestInitialCash = MONEY(50,00); // Cash per guest (average)
|
||||
gGuestInitialHappiness = calculate_guest_initial_happiness(50); // 50%
|
||||
|
||||
Reference in New Issue
Block a user