mirror of https://github.com/OpenRCT2/OpenRCT2.git
Refactor peep struct
This commit is contained in:
parent
453855993d
commit
cdec457abd
|
@ -207,9 +207,9 @@ public:
|
|||
switch (intent->GetWindowClass())
|
||||
{
|
||||
case WC_PEEP:
|
||||
return window_guest_open((rct_peep*)intent->GetPointerExtra(INTENT_EXTRA_PEEP));
|
||||
return window_guest_open((Peep*)intent->GetPointerExtra(INTENT_EXTRA_PEEP));
|
||||
case WC_FIRE_PROMPT:
|
||||
return window_staff_fire_prompt_open((rct_peep*)intent->GetPointerExtra(INTENT_EXTRA_PEEP));
|
||||
return window_staff_fire_prompt_open((Peep*)intent->GetPointerExtra(INTENT_EXTRA_PEEP));
|
||||
case WC_INSTALL_TRACK:
|
||||
return window_install_track_open(intent->GetStringExtra(INTENT_EXTRA_PATH).c_str());
|
||||
case WC_GUEST_LIST:
|
||||
|
|
|
@ -41,7 +41,7 @@ static void viewport_interaction_remove_footpath_item(TileElement* tileElement,
|
|||
static void viewport_interaction_remove_park_wall(TileElement* tileElement, int32_t x, int32_t y);
|
||||
static void viewport_interaction_remove_large_scenery(TileElement* tileElement, int32_t x, int32_t y);
|
||||
static void viewport_interaction_remove_park_entrance(TileElement* tileElement, int32_t x, int32_t y);
|
||||
static rct_peep* viewport_interaction_get_closest_peep(int32_t x, int32_t y, int32_t maxDistance);
|
||||
static Peep* viewport_interaction_get_closest_peep(int32_t x, int32_t y, int32_t maxDistance);
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -581,13 +581,13 @@ static void viewport_interaction_remove_large_scenery(TileElement* tileElement,
|
|||
}
|
||||
}
|
||||
|
||||
static rct_peep* viewport_interaction_get_closest_peep(int32_t x, int32_t y, int32_t maxDistance)
|
||||
static Peep* viewport_interaction_get_closest_peep(int32_t x, int32_t y, int32_t maxDistance)
|
||||
{
|
||||
int32_t distance, closestDistance;
|
||||
uint16_t spriteIndex;
|
||||
rct_window* w;
|
||||
rct_viewport* viewport;
|
||||
rct_peep *peep, *closestPeep;
|
||||
Peep *peep, *closestPeep;
|
||||
|
||||
w = window_find_from_point(x, y);
|
||||
if (w == nullptr)
|
||||
|
|
|
@ -607,7 +607,7 @@ static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo* dpi, rc
|
|||
break;
|
||||
}
|
||||
|
||||
rct_peep* peep = GET_PEEP(newsItem->Assoc);
|
||||
Peep* peep = GET_PEEP(newsItem->Assoc);
|
||||
int32_t clip_x = 10, clip_y = 19;
|
||||
|
||||
if (peep->type == PEEP_TYPE_STAFF && peep->staff_type == STAFF_TYPE_ENTERTAINER)
|
||||
|
|
|
@ -474,7 +474,7 @@ static constexpr const uint32_t window_guest_page_enabled_widgets[] = {
|
|||
* rct2: 0x006989E9
|
||||
*
|
||||
*/
|
||||
rct_window* window_guest_open(rct_peep* peep)
|
||||
rct_window* window_guest_open(Peep* peep)
|
||||
{
|
||||
if (peep->type == PEEP_TYPE_STAFF)
|
||||
{
|
||||
|
@ -530,7 +530,7 @@ rct_window* window_guest_open(rct_peep* peep)
|
|||
*/
|
||||
void window_guest_disable_widgets(rct_window* w)
|
||||
{
|
||||
rct_peep* peep = &get_sprite(w->number)->peep;
|
||||
Peep* peep = &get_sprite(w->number)->peep;
|
||||
uint64_t disabled_widgets = 0;
|
||||
|
||||
if (peep_can_be_picked_up(peep))
|
||||
|
@ -604,7 +604,7 @@ void window_guest_overview_resize(rct_window* w)
|
|||
*/
|
||||
void window_guest_overview_mouse_up(rct_window* w, rct_widgetindex widgetIndex)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
switch (widgetIndex)
|
||||
{
|
||||
|
@ -709,7 +709,7 @@ void window_guest_viewport_init(rct_window* w)
|
|||
|
||||
focus.sprite.sprite_id = w->number;
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
if (peep->state == PEEP_STATE_PICKED)
|
||||
{
|
||||
|
@ -839,7 +839,7 @@ static void window_guest_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dp
|
|||
x = 14;
|
||||
y = 20;
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
if (peep->type == PEEP_TYPE_STAFF && peep->staff_type == STAFF_TYPE_ENTERTAINER)
|
||||
y++;
|
||||
|
@ -896,7 +896,7 @@ static void window_guest_stats_tab_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
int32_t x = widget->left + w->x;
|
||||
int32_t y = widget->top + w->y;
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
int32_t image_id = get_peep_face_sprite_large(peep);
|
||||
if (w->page == WINDOW_GUEST_STATS)
|
||||
{
|
||||
|
@ -1032,7 +1032,7 @@ void window_guest_overview_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
|
||||
// Draw the centred label
|
||||
uint32_t argument1, argument2;
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
get_arguments_from_action(peep, &argument1, &argument2);
|
||||
set_format_arg(0, uint32_t, argument1);
|
||||
set_format_arg(4, uint32_t, argument2);
|
||||
|
@ -1095,7 +1095,7 @@ void window_guest_overview_invalidate(rct_window* w)
|
|||
| (1ULL << WIDX_TAB_6));
|
||||
w->pressed_widgets |= 1ULL << (w->page + WIDX_TAB_1);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
set_format_arg(0, rct_string_id, peep->name_string_idx);
|
||||
set_format_arg(2, uint32_t, peep->id);
|
||||
|
||||
|
@ -1170,7 +1170,7 @@ void window_guest_overview_update(rct_window* w)
|
|||
int32_t random = util_rand() & 0xFFFF;
|
||||
if (random <= 0x2AAA)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
peep_insert_new_thought(peep, PEEP_THOUGHT_TYPE_WATCHED, PEEP_THOUGHT_ITEM_NONE);
|
||||
}
|
||||
}
|
||||
|
@ -1232,7 +1232,7 @@ void window_guest_overview_tool_update(rct_window* w, rct_widgetindex widgetInde
|
|||
w->picked_peep_frame = 0;
|
||||
}
|
||||
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
peep = GET_PEEP(w->number);
|
||||
|
||||
uint32_t imageId = g_peep_animation_entries[peep->sprite_type].sprite_animation[PEEP_ACTION_SPRITE_TYPE_UI].base_image;
|
||||
|
@ -1321,7 +1321,7 @@ void window_guest_unknown_05(rct_window* w)
|
|||
void window_guest_stats_update(rct_window* w)
|
||||
{
|
||||
w->frame_no++;
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
peep->window_invalidate_flags &= ~PEEP_INVALIDATE_PEEP_STATS;
|
||||
|
||||
window_invalidate(w);
|
||||
|
@ -1341,7 +1341,7 @@ void window_guest_stats_invalidate(rct_window* w)
|
|||
|
||||
w->pressed_widgets |= 1ULL << (w->page + WIDX_TAB_1);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
set_format_arg(0, rct_string_id, peep->name_string_idx);
|
||||
set_format_arg(2, uint32_t, peep->id);
|
||||
|
||||
|
@ -1405,7 +1405,7 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
window_guest_inventory_tab_paint(w, dpi);
|
||||
|
||||
// ebx
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
// Not sure why this is not stats widgets
|
||||
// cx
|
||||
|
@ -1589,7 +1589,7 @@ void window_guest_rides_update(rct_window* w)
|
|||
widget_invalidate(w, WIDX_TAB_2);
|
||||
widget_invalidate(w, WIDX_TAB_3);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
// Every 2048 ticks do a full window_invalidate
|
||||
int32_t number_of_ticks = gScenarioTicks - peep->time_in_park;
|
||||
|
@ -1697,7 +1697,7 @@ void window_guest_rides_invalidate(rct_window* w)
|
|||
|
||||
w->pressed_widgets |= 1ULL << (w->page + WIDX_TAB_1);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
set_format_arg(0, uint16_t, peep->name_string_idx);
|
||||
set_format_arg(2, uint32_t, peep->id);
|
||||
|
||||
|
@ -1732,7 +1732,7 @@ void window_guest_rides_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
window_guest_thoughts_tab_paint(w, dpi);
|
||||
window_guest_inventory_tab_paint(w, dpi);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
// cx
|
||||
int32_t x = w->x + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].left + 2;
|
||||
|
@ -1829,7 +1829,7 @@ void window_guest_finance_invalidate(rct_window* w)
|
|||
|
||||
w->pressed_widgets |= 1ULL << (w->page + WIDX_TAB_1);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
set_format_arg(0, rct_string_id, peep->name_string_idx);
|
||||
set_format_arg(2, uint32_t, peep->id);
|
||||
|
@ -1862,7 +1862,7 @@ void window_guest_finance_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
window_guest_thoughts_tab_paint(w, dpi);
|
||||
window_guest_inventory_tab_paint(w, dpi);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
// cx
|
||||
int32_t x = w->x + window_guest_finance_widgets[WIDX_PAGE_BACKGROUND].left + 4;
|
||||
|
@ -1944,7 +1944,7 @@ void window_guest_finance_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
*/
|
||||
void window_guest_thoughts_resize(rct_window* w)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
if (peep->window_invalidate_flags & PEEP_INVALIDATE_PEEP_THOUGHTS)
|
||||
{
|
||||
peep->window_invalidate_flags &= ~PEEP_INVALIDATE_PEEP_THOUGHTS;
|
||||
|
@ -1980,7 +1980,7 @@ void window_guest_thoughts_invalidate(rct_window* w)
|
|||
|
||||
w->pressed_widgets |= 1ULL << (w->page + WIDX_TAB_1);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
set_format_arg(0, rct_string_id, peep->name_string_idx);
|
||||
set_format_arg(2, uint32_t, peep->id);
|
||||
|
@ -2013,7 +2013,7 @@ void window_guest_thoughts_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
window_guest_thoughts_tab_paint(w, dpi);
|
||||
window_guest_inventory_tab_paint(w, dpi);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
// cx
|
||||
int32_t x = w->x + window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].left + 4;
|
||||
|
@ -2048,7 +2048,7 @@ void window_guest_thoughts_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
*/
|
||||
void window_guest_inventory_resize(rct_window* w)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
if (peep->window_invalidate_flags & PEEP_INVALIDATE_PEEP_INVENTORY)
|
||||
{
|
||||
peep->window_invalidate_flags &= ~PEEP_INVALIDATE_PEEP_INVENTORY;
|
||||
|
@ -2084,7 +2084,7 @@ void window_guest_inventory_invalidate(rct_window* w)
|
|||
|
||||
w->pressed_widgets |= 1ULL << (w->page + WIDX_TAB_1);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
set_format_arg(0, rct_string_id, peep->name_string_idx);
|
||||
set_format_arg(2, uint32_t, peep->id);
|
||||
|
@ -2103,7 +2103,7 @@ void window_guest_inventory_invalidate(rct_window* w)
|
|||
window_align_tabs(w, WIDX_TAB_1, WIDX_TAB_6);
|
||||
}
|
||||
|
||||
static rct_string_id window_guest_inventory_format_item(rct_peep* peep, int32_t item)
|
||||
static rct_string_id window_guest_inventory_format_item(Peep* peep, int32_t item)
|
||||
{
|
||||
Ride* ride;
|
||||
|
||||
|
@ -2192,33 +2192,35 @@ void window_guest_inventory_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
window_guest_thoughts_tab_paint(w, dpi);
|
||||
window_guest_inventory_tab_paint(w, dpi);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
|
||||
rct_widget* pageBackgroundWidget = &window_guest_inventory_widgets[WIDX_PAGE_BACKGROUND];
|
||||
int32_t x = w->x + pageBackgroundWidget->left + 4;
|
||||
int32_t y = w->y + pageBackgroundWidget->top + 2;
|
||||
int32_t itemNameWidth = pageBackgroundWidget->right - pageBackgroundWidget->left - 8;
|
||||
|
||||
int32_t maxY = w->y + w->height - 22;
|
||||
int32_t numItems = 0;
|
||||
|
||||
gfx_draw_string_left(dpi, STR_CARRYING, nullptr, COLOUR_BLACK, x, y);
|
||||
y += 10;
|
||||
|
||||
for (int32_t item = 0; item < SHOP_ITEM_COUNT; item++)
|
||||
const auto guest = (GET_PEEP(w->number))->AsGuest();
|
||||
if (guest != nullptr)
|
||||
{
|
||||
if (y >= maxY)
|
||||
break;
|
||||
if (!peep->HasItem(item))
|
||||
continue;
|
||||
rct_widget* pageBackgroundWidget = &window_guest_inventory_widgets[WIDX_PAGE_BACKGROUND];
|
||||
int32_t x = w->x + pageBackgroundWidget->left + 4;
|
||||
int32_t y = w->y + pageBackgroundWidget->top + 2;
|
||||
int32_t itemNameWidth = pageBackgroundWidget->right - pageBackgroundWidget->left - 8;
|
||||
|
||||
rct_string_id stringId = window_guest_inventory_format_item(peep, item);
|
||||
y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, itemNameWidth, stringId, COLOUR_BLACK);
|
||||
numItems++;
|
||||
}
|
||||
int32_t maxY = w->y + w->height - 22;
|
||||
int32_t numItems = 0;
|
||||
|
||||
if (numItems == 0)
|
||||
{
|
||||
gfx_draw_string_left(dpi, STR_NOTHING, nullptr, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_CARRYING, nullptr, COLOUR_BLACK, x, y);
|
||||
y += 10;
|
||||
|
||||
for (int32_t item = 0; item < SHOP_ITEM_COUNT; item++)
|
||||
{
|
||||
if (y >= maxY)
|
||||
break;
|
||||
if (!guest->HasItem(item))
|
||||
continue;
|
||||
|
||||
rct_string_id stringId = window_guest_inventory_format_item(guest, item);
|
||||
y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, itemNameWidth, stringId, COLOUR_BLACK);
|
||||
numItems++;
|
||||
}
|
||||
|
||||
if (numItems == 0)
|
||||
{
|
||||
gfx_draw_string_left(dpi, STR_NOTHING, nullptr, COLOUR_BLACK, x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -158,12 +158,12 @@ static uint8_t _window_guest_list_group_index[240];
|
|||
|
||||
static char _window_guest_list_filter_name[32];
|
||||
|
||||
static int32_t window_guest_list_is_peep_in_filter(rct_peep* peep);
|
||||
static int32_t window_guest_list_is_peep_in_filter(Peep* peep);
|
||||
static void window_guest_list_find_groups();
|
||||
|
||||
static void get_arguments_from_peep(rct_peep* peep, uint32_t* argument_1, uint32_t* argument_2);
|
||||
static void get_arguments_from_peep(Peep* peep, uint32_t* argument_1, uint32_t* argument_2);
|
||||
|
||||
static bool guest_should_be_visible(rct_peep* peep);
|
||||
static bool guest_should_be_visible(Peep* peep);
|
||||
|
||||
void window_guest_list_init_vars()
|
||||
{
|
||||
|
@ -471,7 +471,7 @@ static void window_guest_list_update(rct_window* w)
|
|||
static void window_guest_list_scrollgetsize(rct_window* w, int32_t scrollIndex, int32_t* width, int32_t* height)
|
||||
{
|
||||
int32_t i, y, numGuests, spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
switch (_window_guest_list_selected_tab)
|
||||
{
|
||||
|
@ -538,7 +538,7 @@ static void window_guest_list_scrollgetsize(rct_window* w, int32_t scrollIndex,
|
|||
static void window_guest_list_scrollmousedown(rct_window* w, int32_t scrollIndex, int32_t x, int32_t y)
|
||||
{
|
||||
int32_t i, spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
switch (_window_guest_list_selected_tab)
|
||||
{
|
||||
|
@ -717,7 +717,7 @@ static void window_guest_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi,
|
|||
{
|
||||
int32_t spriteIndex, numGuests, i, j, y;
|
||||
rct_string_id format;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
rct_peep_thought* thought;
|
||||
uint32_t argument_1, argument_2;
|
||||
|
||||
|
@ -863,7 +863,7 @@ static void window_guest_list_textinput(rct_window* w, rct_widgetindex widgetInd
|
|||
* returns 0 for in filter and 1 for not in filter
|
||||
* rct2: 0x0069B865
|
||||
*/
|
||||
static int32_t window_guest_list_is_peep_in_filter(rct_peep* peep)
|
||||
static int32_t window_guest_list_is_peep_in_filter(Peep* peep)
|
||||
{
|
||||
char temp;
|
||||
|
||||
|
@ -893,7 +893,7 @@ static int32_t window_guest_list_is_peep_in_filter(rct_peep* peep)
|
|||
* argument_1 (0x013CE952) gCommonFormatArgs
|
||||
* argument_2 (0x013CE954) gCommonFormatArgs + 2
|
||||
*/
|
||||
static void get_arguments_from_peep(rct_peep* peep, uint32_t* argument_1, uint32_t* argument_2)
|
||||
static void get_arguments_from_peep(Peep* peep, uint32_t* argument_1, uint32_t* argument_2)
|
||||
{
|
||||
switch (_window_guest_list_selected_view)
|
||||
{
|
||||
|
@ -933,7 +933,7 @@ static void get_arguments_from_peep(rct_peep* peep, uint32_t* argument_1, uint32
|
|||
static void window_guest_list_find_groups()
|
||||
{
|
||||
int32_t spriteIndex, spriteIndex2, groupIndex, faceIndex;
|
||||
rct_peep *peep, *peep2;
|
||||
Peep *peep, *peep2;
|
||||
|
||||
uint32_t tick256 = floor2(gScenarioTicks, 256);
|
||||
if (_window_guest_list_selected_view == _window_guest_list_last_find_groups_selected_view)
|
||||
|
@ -1061,7 +1061,7 @@ static void window_guest_list_find_groups()
|
|||
}
|
||||
}
|
||||
|
||||
static bool guest_should_be_visible(rct_peep* peep)
|
||||
static bool guest_should_be_visible(Peep* peep)
|
||||
{
|
||||
if (_window_guest_list_tracking_only && !(peep->peep_flags & PEEP_FLAGS_TRACKING))
|
||||
return false;
|
||||
|
|
|
@ -1042,7 +1042,7 @@ static MapCoordsXY window_map_transform_to_map_coords(CoordsXY c)
|
|||
*/
|
||||
static void window_map_paint_peep_overlay(rct_drawpixelinfo* dpi)
|
||||
{
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
uint16_t spriteIndex;
|
||||
|
||||
FOR_ALL_PEEPS (spriteIndex, peep)
|
||||
|
|
|
@ -318,7 +318,7 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32
|
|||
break;
|
||||
}
|
||||
|
||||
rct_peep* peep = GET_PEEP(newsItem->Assoc);
|
||||
Peep* peep = GET_PEEP(newsItem->Assoc);
|
||||
int32_t clip_x = 10, clip_y = 19;
|
||||
|
||||
// If normal peep set sprite to normal (no food)
|
||||
|
|
|
@ -1714,7 +1714,7 @@ rct_window* window_ride_open_vehicle(rct_vehicle* vehicle)
|
|||
rct_window* w2 = window_find_by_number(WC_PEEP, peepSpriteIndex);
|
||||
if (w2 == nullptr)
|
||||
{
|
||||
rct_peep* peep = &(get_sprite(peepSpriteIndex)->peep);
|
||||
Peep* peep = &(get_sprite(peepSpriteIndex)->peep);
|
||||
auto intent = Intent(WC_PEEP);
|
||||
intent.putExtra(INTENT_EXTRA_PEEP, peep);
|
||||
context_open_intent(&intent);
|
||||
|
@ -3758,7 +3758,7 @@ static void window_ride_operating_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
static void window_ride_locate_mechanic(rct_window* w)
|
||||
{
|
||||
Ride* ride;
|
||||
rct_peep* mechanic;
|
||||
Peep* mechanic;
|
||||
|
||||
ride = get_ride(w->number);
|
||||
|
||||
|
@ -4176,14 +4176,14 @@ static void window_ride_maintenance_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
// Mechanic status
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN)
|
||||
{
|
||||
rct_peep* peep;
|
||||
uint16_t spriteIndex;
|
||||
|
||||
switch (ride->mechanic_status)
|
||||
{
|
||||
case RIDE_MECHANIC_STATUS_CALLING:
|
||||
{
|
||||
stringId = STR_NO_MECHANICS_ARE_HIRED_MESSAGE;
|
||||
|
||||
uint16_t spriteIndex;
|
||||
Peep* peep;
|
||||
FOR_ALL_STAFF (spriteIndex, peep)
|
||||
{
|
||||
if (peep->staff_type == STAFF_TYPE_MECHANIC)
|
||||
|
@ -4193,6 +4193,7 @@ static void window_ride_maintenance_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RIDE_MECHANIC_STATUS_HEADING:
|
||||
stringId = STR_MEHCANIC_IS_HEADING_FOR_THE_RIDE;
|
||||
break;
|
||||
|
@ -4213,11 +4214,11 @@ static void window_ride_maintenance_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
}
|
||||
else
|
||||
{
|
||||
rct_peep* mechanicSprite = &(get_sprite(ride->mechanic)->peep);
|
||||
if (mechanicSprite->IsMechanic())
|
||||
auto peep = (&(get_sprite(ride->mechanic)->peep))->AsStaff();
|
||||
if (peep != nullptr && peep->IsMechanic())
|
||||
{
|
||||
set_format_arg(0, rct_string_id, mechanicSprite->name_string_idx);
|
||||
set_format_arg(2, uint32_t, mechanicSprite->id);
|
||||
set_format_arg(0, rct_string_id, peep->name_string_idx);
|
||||
set_format_arg(2, uint32_t, peep->id);
|
||||
gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x + 4, y, 280, stringId, COLOUR_BLACK);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -308,7 +308,7 @@ static PatrolAreaValue _staffPatrolAreaPaintValue = PatrolAreaValue::NONE;
|
|||
*
|
||||
* rct2: 0x006BEE98
|
||||
*/
|
||||
rct_window* window_staff_open(rct_peep* peep)
|
||||
rct_window* window_staff_open(Peep* peep)
|
||||
{
|
||||
rct_window* w = window_bring_to_front_by_number(WC_PEEP, peep->sprite_index);
|
||||
if (w == nullptr)
|
||||
|
@ -351,7 +351,7 @@ rct_window* window_staff_open(rct_peep* peep)
|
|||
*/
|
||||
void window_staff_disable_widgets(rct_window* w)
|
||||
{
|
||||
rct_peep* peep = &get_sprite(w->number)->peep;
|
||||
Peep* peep = &get_sprite(w->number)->peep;
|
||||
uint64_t disabled_widgets = (1 << WIDX_TAB_4);
|
||||
|
||||
if (peep->staff_type == STAFF_TYPE_SECURITY)
|
||||
|
@ -444,7 +444,7 @@ void window_staff_set_page(rct_window* w, int32_t page)
|
|||
*/
|
||||
void window_staff_overview_mouseup(rct_window* w, rct_widgetindex widgetIndex)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
switch (widgetIndex)
|
||||
{
|
||||
|
@ -563,7 +563,7 @@ void window_staff_overview_mousedown(rct_window* w, rct_widgetindex widgetIndex,
|
|||
window_dropdown_show_text(x, y, extray, w->colours[1], 0, 2);
|
||||
gDropdownDefaultIndex = 0;
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
// Disable clear patrol area if no area is set.
|
||||
if (!(gStaffModes[peep->staff_id] & 2))
|
||||
|
@ -586,7 +586,7 @@ void window_staff_overview_dropdown(rct_window* w, rct_widgetindex widgetIndex,
|
|||
// Clear patrol
|
||||
if (dropdownIndex == 1)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
for (int32_t i = 0; i < STAFF_PATROL_AREA_SIZE; i++)
|
||||
{
|
||||
gStaffPatrolAreas[peep->staff_id * STAFF_PATROL_AREA_SIZE + i] = 0;
|
||||
|
@ -629,7 +629,7 @@ void window_staff_overview_update(rct_window* w)
|
|||
*/
|
||||
static void window_staff_set_order(rct_window* w, int32_t order_id)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
uint8_t newOrders = peep->staff_orders ^ (1 << order_id);
|
||||
auto staffSetOrdersAction = StaffSetOrdersAction(w->number, newOrders);
|
||||
|
@ -735,7 +735,7 @@ void window_staff_stats_update(rct_window* w)
|
|||
w->frame_no++;
|
||||
widget_invalidate(w, WIDX_TAB_3);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
if (peep->window_invalidate_flags & PEEP_INVALIDATE_STAFF_STATS)
|
||||
{
|
||||
peep->window_invalidate_flags &= ~PEEP_INVALIDATE_STAFF_STATS;
|
||||
|
@ -768,7 +768,7 @@ void window_staff_stats_invalidate(rct_window* w)
|
|||
|
||||
w->pressed_widgets |= 1ULL << (w->page + WIDX_TAB_1);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
set_format_arg(0, rct_string_id, peep->name_string_idx);
|
||||
set_format_arg(2, uint32_t, peep->id);
|
||||
|
@ -803,7 +803,7 @@ void window_staff_options_invalidate(rct_window* w)
|
|||
|
||||
w->pressed_widgets |= 1ULL << (w->page + WIDX_TAB_1);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
set_format_arg(0, rct_string_id, peep->name_string_idx);
|
||||
set_format_arg(2, uint32_t, peep->id);
|
||||
|
@ -881,7 +881,7 @@ void window_staff_overview_invalidate(rct_window* w)
|
|||
|
||||
w->pressed_widgets |= 1ULL << (w->page + WIDX_TAB_1);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
set_format_arg(0, rct_string_id, peep->name_string_idx);
|
||||
set_format_arg(2, uint32_t, peep->id);
|
||||
|
@ -946,7 +946,7 @@ void window_staff_overview_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
|
||||
// Draw the centred label
|
||||
uint32_t argument1, argument2;
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
get_arguments_from_action(peep, &argument1, &argument2);
|
||||
set_format_arg(0, uint32_t, argument1);
|
||||
set_format_arg(4, uint32_t, argument2);
|
||||
|
@ -1028,7 +1028,7 @@ void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
x = 14;
|
||||
y = 20;
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
if (peep->type == PEEP_TYPE_STAFF && peep->staff_type == STAFF_TYPE_ENTERTAINER)
|
||||
y++;
|
||||
|
@ -1095,7 +1095,7 @@ void window_staff_stats_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
window_staff_options_tab_paint(w, dpi);
|
||||
window_staff_stats_tab_paint(w, dpi);
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
int32_t x = w->x + window_staff_stats_widgets[WIDX_RESIZE].left + 4;
|
||||
int32_t y = w->y + window_staff_stats_widgets[WIDX_RESIZE].top + 4;
|
||||
|
@ -1172,7 +1172,7 @@ void window_staff_overview_tool_update(rct_window* w, rct_widgetindex widgetInde
|
|||
w->picked_peep_frame = 0;
|
||||
}
|
||||
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
peep = GET_PEEP(w->number);
|
||||
|
||||
uint32_t imageId = g_peep_animation_entries[peep->sprite_type].sprite_animation[PEEP_ACTION_SPRITE_TYPE_UI].base_image;
|
||||
|
@ -1213,7 +1213,7 @@ void window_staff_overview_tool_down(rct_window* w, rct_widgetindex widgetIndex,
|
|||
if (sprite == nullptr || sprite->IsPeep() == false)
|
||||
return;
|
||||
|
||||
rct_peep& peep = sprite->peep;
|
||||
Peep& peep = sprite->peep;
|
||||
if (peep.type != PEEP_TYPE_STAFF)
|
||||
return;
|
||||
|
||||
|
@ -1253,7 +1253,7 @@ void window_staff_overview_tool_drag(rct_window* w, rct_widgetindex widgetIndex,
|
|||
if (sprite == nullptr || sprite->IsPeep() == false)
|
||||
return;
|
||||
|
||||
rct_peep& peep = sprite->peep;
|
||||
Peep& peep = sprite->peep;
|
||||
if (peep.type != PEEP_TYPE_STAFF)
|
||||
return;
|
||||
|
||||
|
@ -1325,7 +1325,7 @@ void window_staff_viewport_init(rct_window* w)
|
|||
|
||||
focus.sprite_id = w->number;
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
|
||||
if (peep->state == PEEP_STATE_PICKED)
|
||||
{
|
||||
|
@ -1396,7 +1396,7 @@ void window_staff_options_mousedown(rct_window* w, rct_widgetindex widgetIndex,
|
|||
return;
|
||||
}
|
||||
|
||||
rct_peep* peep = GET_PEEP(w->number);
|
||||
Peep* peep = GET_PEEP(w->number);
|
||||
int32_t checkedIndex = -1;
|
||||
// This will be moved below where Items Checked is when all
|
||||
// of dropdown related functions are finished. This prevents
|
||||
|
|
|
@ -75,7 +75,7 @@ static rct_window_event_list window_staff_fire_events = {
|
|||
|
||||
|
||||
/** Based off of rct2: 0x6C0A77 */
|
||||
rct_window* window_staff_fire_prompt_open(rct_peep* peep)
|
||||
rct_window* window_staff_fire_prompt_open(Peep* peep)
|
||||
{
|
||||
rct_window * w;
|
||||
|
||||
|
@ -103,7 +103,7 @@ rct_window* window_staff_fire_prompt_open(rct_peep* peep)
|
|||
*/
|
||||
static void window_staff_fire_mouseup(rct_window *w, rct_widgetindex widgetIndex)
|
||||
{
|
||||
rct_peep* peep = &get_sprite(w->number)->peep;
|
||||
Peep* peep = &get_sprite(w->number)->peep;
|
||||
|
||||
switch (widgetIndex){
|
||||
case WIDX_YES:
|
||||
|
@ -123,7 +123,7 @@ static void window_staff_fire_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
|||
{
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
rct_peep* peep = &get_sprite(w->number)->peep;
|
||||
Peep* peep = &get_sprite(w->number)->peep;
|
||||
|
||||
set_format_arg(0, rct_string_id, peep->name_string_idx);
|
||||
set_format_arg(2, uint32_t, peep->id);
|
||||
|
|
|
@ -314,7 +314,7 @@ void window_staff_list_update(rct_window* w)
|
|||
if (window_find_by_class(WC_MAP) != nullptr)
|
||||
{
|
||||
int32_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
gWindowMapFlashingFlags |= (1 << 2);
|
||||
FOR_ALL_STAFF (spriteIndex, peep)
|
||||
{
|
||||
|
@ -348,7 +348,7 @@ static void window_staff_list_tooldown(rct_window* w, rct_widgetindex widgetInde
|
|||
bool isPatrolAreaSet = staff_is_patrol_area_set(200 + selectedPeepType, x, y);
|
||||
|
||||
uint16_t spriteIndex;
|
||||
rct_peep *peep, *closestPeep = nullptr;
|
||||
Peep *peep, *closestPeep = nullptr;
|
||||
int32_t closestPeepDistance = std::numeric_limits<int32_t>::max();
|
||||
FOR_ALL_STAFF (spriteIndex, peep)
|
||||
{
|
||||
|
@ -416,7 +416,7 @@ void window_staff_list_toolabort(rct_window* w, rct_widgetindex widgetIndex)
|
|||
void window_staff_list_scrollgetsize(rct_window* w, int32_t scrollIndex, int32_t* width, int32_t* height)
|
||||
{
|
||||
int32_t i, spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
uint16_t staffCount = 0;
|
||||
FOR_ALL_STAFF (spriteIndex, peep)
|
||||
|
@ -454,7 +454,7 @@ void window_staff_list_scrollgetsize(rct_window* w, int32_t scrollIndex, int32_t
|
|||
void window_staff_list_scrollmousedown(rct_window* w, int32_t scrollIndex, int32_t x, int32_t y)
|
||||
{
|
||||
int32_t i, spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
i = y / SCROLLABLE_ROW_HEIGHT;
|
||||
FOR_ALL_STAFF (spriteIndex, peep)
|
||||
|
@ -658,7 +658,7 @@ void window_staff_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_
|
|||
int32_t spriteIndex, y, i, staffOrderIcon_x, staffOrders, staffOrderSprite;
|
||||
uint32_t argument_1, argument_2;
|
||||
uint8_t selectedTab;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ColourMapA[w->colours[1]].mid_light);
|
||||
|
||||
|
|
|
@ -622,7 +622,7 @@ static void window_title_command_editor_tool_down(rct_window* w, rct_widgetindex
|
|||
if (spriteIdentifier == SPRITE_IDENTIFIER_PEEP)
|
||||
{
|
||||
validSprite = true;
|
||||
rct_peep* peep = GET_PEEP(spriteIndex);
|
||||
Peep* peep = GET_PEEP(spriteIndex);
|
||||
format_string(command.SpriteName, USER_STRING_MAX_LENGTH, peep->name_string_idx, &peep->id);
|
||||
}
|
||||
else if (spriteIdentifier == SPRITE_IDENTIFIER_VEHICLE)
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
using loadsave_callback = void (*)(int32_t result, const utf8* path);
|
||||
using scenarioselect_callback = void (*)(const utf8* path);
|
||||
struct rct_peep;
|
||||
struct Peep;
|
||||
struct TileElement;
|
||||
struct rct_vehicle;
|
||||
|
||||
|
@ -31,7 +31,7 @@ rct_window* window_editor_main_open();
|
|||
rct_window* window_editor_objective_options_open();
|
||||
rct_window* window_editor_scenario_options_open();
|
||||
rct_window* window_footpath_open();
|
||||
rct_window* window_guest_open(rct_peep* peep);
|
||||
rct_window* window_guest_open(Peep* peep);
|
||||
rct_window* window_land_open();
|
||||
rct_window* window_land_rights_open();
|
||||
rct_window* window_main_open();
|
||||
|
@ -48,7 +48,7 @@ rct_window* window_server_start_open();
|
|||
rct_window* window_shortcut_change_open(int32_t selected_key);
|
||||
rct_window* window_shortcut_keys_open();
|
||||
rct_window* window_staff_list_open();
|
||||
rct_window* window_staff_open(rct_peep* peep);
|
||||
rct_window* window_staff_open(Peep* peep);
|
||||
rct_window* window_themes_open();
|
||||
rct_window* window_title_exit_open();
|
||||
rct_window* window_title_logo_open();
|
||||
|
@ -82,7 +82,7 @@ void window_guest_list_init_vars();
|
|||
void window_guest_list_refresh_list();
|
||||
rct_window* window_guest_list_open();
|
||||
rct_window* window_guest_list_open_with_filter(int32_t type, int32_t index);
|
||||
rct_window* window_staff_fire_prompt_open(rct_peep* peep);
|
||||
rct_window* window_staff_fire_prompt_open(Peep* peep);
|
||||
void window_title_editor_open(int32_t tab);
|
||||
void window_title_command_editor_open(struct TitleSequence* sequence, int32_t command, bool insert);
|
||||
rct_window* window_scenarioselect_open(scenarioselect_callback callback, bool titleEditor);
|
||||
|
|
|
@ -280,10 +280,11 @@ static void cheat_generate_guests(int32_t count)
|
|||
static void cheat_set_guest_parameter(int32_t parameter, int32_t value)
|
||||
{
|
||||
int32_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
|
||||
FOR_ALL_GUESTS (spriteIndex, peep)
|
||||
Peep* p;
|
||||
FOR_ALL_GUESTS (spriteIndex, p)
|
||||
{
|
||||
auto peep = p->AsGuest();
|
||||
assert(peep != nullptr);
|
||||
switch (parameter)
|
||||
{
|
||||
case GUEST_PARAMETER_HAPPINESS:
|
||||
|
@ -327,10 +328,11 @@ static void cheat_set_guest_parameter(int32_t parameter, int32_t value)
|
|||
static void cheat_give_all_guests(int32_t object)
|
||||
{
|
||||
int32_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
|
||||
FOR_ALL_GUESTS (spriteIndex, peep)
|
||||
Peep* p;
|
||||
FOR_ALL_GUESTS (spriteIndex, p)
|
||||
{
|
||||
auto peep = p->AsGuest();
|
||||
assert(peep != nullptr);
|
||||
switch (object)
|
||||
{
|
||||
case OBJECT_MONEY:
|
||||
|
@ -356,7 +358,7 @@ static void cheat_give_all_guests(int32_t object)
|
|||
|
||||
static void cheat_remove_all_guests()
|
||||
{
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
rct_vehicle* vehicle;
|
||||
uint16_t spriteIndex, nextSpriteIndex;
|
||||
ride_id_t rideIndex;
|
||||
|
@ -418,7 +420,7 @@ static void cheat_remove_all_guests()
|
|||
static void cheat_explode_guests()
|
||||
{
|
||||
int32_t sprite_index;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
FOR_ALL_GUESTS (sprite_index, peep)
|
||||
{
|
||||
|
@ -432,7 +434,7 @@ static void cheat_explode_guests()
|
|||
static void cheat_set_staff_speed(uint8_t value)
|
||||
{
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
FOR_ALL_STAFF (spriteIndex, peep)
|
||||
{
|
||||
|
|
|
@ -849,7 +849,7 @@ void game_convert_strings_to_rct2(rct_s6_data* s6)
|
|||
void game_fix_save_vars()
|
||||
{
|
||||
// Recalculates peep count after loading a save to fix corrupted files
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
uint16_t spriteIndex;
|
||||
uint16_t peepCount = 0;
|
||||
FOR_ALL_GUESTS (spriteIndex, peep)
|
||||
|
@ -863,7 +863,7 @@ void game_fix_save_vars()
|
|||
peep_sort();
|
||||
|
||||
// Peeps to remove have to be cached here, as removing them from within the loop breaks iteration
|
||||
std::vector<rct_peep*> peepsToRemove;
|
||||
std::vector<Peep*> peepsToRemove;
|
||||
|
||||
// Fix possibly invalid field values
|
||||
FOR_ALL_GUESTS (spriteIndex, peep)
|
||||
|
|
|
@ -62,7 +62,7 @@ public:
|
|||
GA_ERROR::INVALID_PARAMETERS, STR_CANT_NAME_GUEST, STR_ERR_INVALID_NAME_FOR_GUEST);
|
||||
}
|
||||
|
||||
rct_peep* peep = GET_PEEP(_spriteIndex);
|
||||
Peep* peep = GET_PEEP(_spriteIndex);
|
||||
if (peep->type != PEEP_TYPE_GUEST)
|
||||
{
|
||||
log_warning("Invalid game command for sprite %u", _spriteIndex);
|
||||
|
@ -91,7 +91,7 @@ public:
|
|||
return std::make_unique<GameActionResult>(GA_ERROR::UNKNOWN, STR_CANT_NAME_GUEST, gGameCommandErrorText);
|
||||
}
|
||||
|
||||
rct_peep* peep = GET_PEEP(_spriteIndex);
|
||||
Peep* peep = GET_PEEP(_spriteIndex);
|
||||
if (peep->type != PEEP_TYPE_GUEST)
|
||||
{
|
||||
log_warning("Invalid game command for sprite %u", _spriteIndex);
|
||||
|
|
|
@ -140,7 +140,7 @@ private:
|
|||
}
|
||||
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
FOR_ALL_GUESTS (spriteIndex, peep)
|
||||
{
|
||||
uint8_t ride_id_bit = _rideIndex % 8;
|
||||
|
|
|
@ -66,7 +66,7 @@ public:
|
|||
|
||||
// Update each staff member's uniform
|
||||
int32_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
FOR_ALL_PEEPS (spriteIndex, peep)
|
||||
{
|
||||
if (peep->type == PEEP_TYPE_STAFF && peep->staff_type == _staffType)
|
||||
|
|
|
@ -73,7 +73,7 @@ public:
|
|||
return std::make_unique<GameActionResult>(GA_ERROR::INVALID_PARAMETERS, STR_NONE);
|
||||
}
|
||||
|
||||
rct_peep* peep = GET_PEEP(_spriteIndex);
|
||||
Peep* peep = GET_PEEP(_spriteIndex);
|
||||
if (peep->type != PEEP_TYPE_STAFF || peep->staff_type != STAFF_TYPE_ENTERTAINER)
|
||||
{
|
||||
log_warning("Invalid game command for sprite %u", _spriteIndex);
|
||||
|
@ -91,7 +91,7 @@ public:
|
|||
|
||||
GameActionResult::Ptr Execute() const override
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(_spriteIndex);
|
||||
Peep* peep = GET_PEEP(_spriteIndex);
|
||||
|
||||
auto spriteType = static_cast<PeepSpriteType>(_costume + 4);
|
||||
peep->sprite_type = spriteType;
|
||||
|
|
|
@ -63,7 +63,7 @@ public:
|
|||
return std::make_unique<GameActionResult>(GA_ERROR::INVALID_PARAMETERS, STR_STAFF_ERROR_CANT_NAME_STAFF_MEMBER);
|
||||
}
|
||||
|
||||
rct_peep* peep = GET_PEEP(_spriteIndex);
|
||||
Peep* peep = GET_PEEP(_spriteIndex);
|
||||
if (peep->type != PEEP_TYPE_STAFF)
|
||||
{
|
||||
log_warning("Invalid game command for sprite %u", _spriteIndex);
|
||||
|
@ -95,7 +95,7 @@ public:
|
|||
GA_ERROR::UNKNOWN, STR_STAFF_ERROR_CANT_NAME_STAFF_MEMBER, gGameCommandErrorText);
|
||||
}
|
||||
|
||||
rct_peep* peep = GET_PEEP(_spriteIndex);
|
||||
Peep* peep = GET_PEEP(_spriteIndex);
|
||||
if (peep->type != PEEP_TYPE_STAFF)
|
||||
{
|
||||
log_warning("Invalid game command for sprite %u", _spriteIndex);
|
||||
|
|
|
@ -53,7 +53,7 @@ public:
|
|||
return std::make_unique<GameActionResult>(GA_ERROR::INVALID_PARAMETERS, STR_NONE);
|
||||
}
|
||||
|
||||
rct_peep* peep = GET_PEEP(_spriteIndex);
|
||||
Peep* peep = GET_PEEP(_spriteIndex);
|
||||
if (peep->type != PEEP_TYPE_STAFF
|
||||
|| (peep->staff_type != STAFF_TYPE_HANDYMAN && peep->staff_type != STAFF_TYPE_MECHANIC))
|
||||
{
|
||||
|
@ -66,7 +66,7 @@ public:
|
|||
|
||||
GameActionResult::Ptr Execute() const override
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(_spriteIndex);
|
||||
Peep* peep = GET_PEEP(_spriteIndex);
|
||||
|
||||
peep->staff_orders = _ordersId;
|
||||
|
||||
|
|
|
@ -373,7 +373,7 @@ static int32_t cc_staff(InteractiveConsole& console, const arguments_t& argv)
|
|||
{
|
||||
if (argv[0] == "list")
|
||||
{
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
int32_t i;
|
||||
FOR_ALL_STAFF (i, peep)
|
||||
{
|
||||
|
@ -409,7 +409,7 @@ static int32_t cc_staff(InteractiveConsole& console, const arguments_t& argv)
|
|||
|
||||
if (int_valid[0] && int_valid[1] && ((GET_PEEP(int_val[0])) != nullptr))
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(int_val[0]);
|
||||
Peep* peep = GET_PEEP(int_val[0]);
|
||||
|
||||
peep->energy = int_val[1];
|
||||
peep->energy_target = int_val[1];
|
||||
|
@ -421,7 +421,7 @@ static int32_t cc_staff(InteractiveConsole& console, const arguments_t& argv)
|
|||
bool int_valid[2] = { false };
|
||||
int_val[0] = console_parse_int(argv[2], &int_valid[0]);
|
||||
int_val[1] = console_parse_int(argv[3], &int_valid[1]);
|
||||
rct_peep* peep = nullptr;
|
||||
Peep* peep = nullptr;
|
||||
if (!int_valid[0])
|
||||
{
|
||||
console.WriteLineError("Invalid staff ID");
|
||||
|
|
|
@ -661,7 +661,7 @@ void viewport_update_smart_sprite_follow(rct_window* window)
|
|||
}
|
||||
else if (sprite->generic.sprite_identifier == SPRITE_IDENTIFIER_PEEP)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(window->viewport_smart_follow_sprite);
|
||||
Peep* peep = GET_PEEP(window->viewport_smart_follow_sprite);
|
||||
|
||||
if (peep->type == PEEP_TYPE_GUEST)
|
||||
viewport_update_smart_guest_follow(window, peep);
|
||||
|
@ -686,7 +686,7 @@ void viewport_update_smart_sprite_follow(rct_window* window)
|
|||
}
|
||||
}
|
||||
|
||||
void viewport_update_smart_guest_follow(rct_window* window, rct_peep* peep)
|
||||
void viewport_update_smart_guest_follow(rct_window* window, Peep* peep)
|
||||
{
|
||||
union
|
||||
{
|
||||
|
@ -748,7 +748,7 @@ void viewport_update_smart_guest_follow(rct_window* window, rct_peep* peep)
|
|||
window->viewport_target_sprite = window->viewport_focus_sprite.sprite_id;
|
||||
}
|
||||
|
||||
void viewport_update_smart_staff_follow(rct_window* window, rct_peep* peep)
|
||||
void viewport_update_smart_staff_follow(rct_window* window, Peep* peep)
|
||||
{
|
||||
sprite_focus focus = {};
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
struct paint_session;
|
||||
struct paint_struct;
|
||||
struct rct_drawpixelinfo;
|
||||
struct rct_peep;
|
||||
struct Peep;
|
||||
struct TileElement;
|
||||
struct rct_vehicle;
|
||||
struct rct_window;
|
||||
|
@ -91,7 +91,7 @@ struct viewport_interaction_info
|
|||
{
|
||||
TileElement* tileElement;
|
||||
rct_sprite* sprite;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
rct_vehicle* vehicle;
|
||||
};
|
||||
};
|
||||
|
@ -126,8 +126,8 @@ void viewport_create(
|
|||
void viewport_update_position(rct_window* window);
|
||||
void viewport_update_sprite_follow(rct_window* window);
|
||||
void viewport_update_smart_sprite_follow(rct_window* window);
|
||||
void viewport_update_smart_guest_follow(rct_window* window, rct_peep* peep);
|
||||
void viewport_update_smart_staff_follow(rct_window* window, rct_peep* peep);
|
||||
void viewport_update_smart_guest_follow(rct_window* window, Peep* peep);
|
||||
void viewport_update_smart_staff_follow(rct_window* window, Peep* peep);
|
||||
void viewport_update_smart_vehicle_follow(rct_window* window);
|
||||
void viewport_render(
|
||||
rct_drawpixelinfo* dpi, rct_viewport* viewport, int32_t left, int32_t top, int32_t right, int32_t bottom,
|
||||
|
|
|
@ -74,7 +74,7 @@ bool award_is_positive(int32_t type)
|
|||
static bool award_is_deserved_most_untidy(int32_t activeAwardTypes)
|
||||
{
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
int32_t negativeCount;
|
||||
|
||||
if (activeAwardTypes & (1 << PARK_AWARD_MOST_BEAUTIFUL))
|
||||
|
@ -108,7 +108,7 @@ static bool award_is_deserved_most_untidy(int32_t activeAwardTypes)
|
|||
static bool award_is_deserved_most_tidy(int32_t activeAwardTypes)
|
||||
{
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
int32_t positiveCount;
|
||||
int32_t negativeCount;
|
||||
|
||||
|
@ -198,7 +198,7 @@ static bool award_is_deserved_best_value(int32_t activeAwardTypes)
|
|||
static bool award_is_deserved_most_beautiful(int32_t activeAwardTypes)
|
||||
{
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
int32_t positiveCount;
|
||||
int32_t negativeCount;
|
||||
|
||||
|
@ -252,7 +252,7 @@ static bool award_is_deserved_safest([[maybe_unused]] int32_t activeAwardTypes)
|
|||
{
|
||||
int32_t i, peepsWhoDislikeVandalism;
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
Ride* ride;
|
||||
|
||||
peepsWhoDislikeVandalism = 0;
|
||||
|
@ -281,7 +281,7 @@ static bool award_is_deserved_safest([[maybe_unused]] int32_t activeAwardTypes)
|
|||
static bool award_is_deserved_best_staff(int32_t activeAwardTypes)
|
||||
{
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
int32_t peepCount, staffCount;
|
||||
int32_t staffTypeFlags;
|
||||
|
||||
|
@ -315,7 +315,7 @@ static bool award_is_deserved_best_food(int32_t activeAwardTypes)
|
|||
Ride* ride;
|
||||
rct_ride_entry* rideEntry;
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
if (activeAwardTypes & (1 << PARK_AWARD_WORST_FOOD))
|
||||
return false;
|
||||
|
@ -368,7 +368,7 @@ static bool award_is_deserved_worst_food(int32_t activeAwardTypes)
|
|||
Ride* ride;
|
||||
rct_ride_entry* rideEntry;
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
if (activeAwardTypes & (1 << PARK_AWARD_BEST_FOOD))
|
||||
return false;
|
||||
|
@ -419,7 +419,7 @@ static bool award_is_deserved_best_restrooms([[maybe_unused]] int32_t activeAwar
|
|||
uint32_t i, numRestrooms, guestsWhoNeedRestroom;
|
||||
Ride* ride;
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
// Count open restrooms
|
||||
numRestrooms = 0;
|
||||
|
@ -582,7 +582,7 @@ static bool award_is_deserved_most_confusing_layout([[maybe_unused]] int32_t act
|
|||
{
|
||||
uint32_t peepsCounted, peepsLost;
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
peepsCounted = 0;
|
||||
peepsLost = 0;
|
||||
|
|
|
@ -126,7 +126,7 @@ void finance_payment(money32 amount, rct_expenditure_type type)
|
|||
*/
|
||||
void finance_pay_wages()
|
||||
{
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
uint16_t spriteIndex;
|
||||
|
||||
if (gParkFlags & PARK_FLAGS_NO_MONEY)
|
||||
|
@ -273,7 +273,7 @@ void finance_update_daily_profit()
|
|||
{
|
||||
// Staff costs
|
||||
uint16_t sprite_index;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
FOR_ALL_STAFF (sprite_index, peep)
|
||||
{
|
||||
|
|
|
@ -123,7 +123,7 @@ void marketing_update()
|
|||
window_invalidate_by_class(WC_FINANCES);
|
||||
}
|
||||
|
||||
void marketing_set_guest_campaign(rct_peep* peep, int32_t campaignType)
|
||||
void marketing_set_guest_campaign(Peep* peep, int32_t campaignType)
|
||||
{
|
||||
auto campaign = marketing_get_campaign(campaignType);
|
||||
if (campaign == nullptr)
|
||||
|
|
|
@ -61,7 +61,7 @@ extern std::vector<MarketingCampaign> gMarketingCampaigns;
|
|||
|
||||
uint16_t marketing_get_campaign_guest_generation_probability(int32_t campaign);
|
||||
void marketing_update();
|
||||
void marketing_set_guest_campaign(rct_peep* peep, int32_t campaign);
|
||||
void marketing_set_guest_campaign(Peep* peep, int32_t campaign);
|
||||
bool marketing_is_campaign_type_applicable(int32_t campaignType);
|
||||
MarketingCampaign* marketing_get_campaign(int32_t campaignType);
|
||||
void marketing_new_campaign(const MarketingCampaign& campaign);
|
||||
|
|
|
@ -209,7 +209,7 @@ static int32_t news_item_get_new_history_slot()
|
|||
void news_item_get_subject_location(int32_t type, int32_t subject, int32_t* x, int32_t* y, int32_t* z)
|
||||
{
|
||||
Ride* ride;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
rct_vehicle* vehicle;
|
||||
|
||||
switch (type)
|
||||
|
@ -329,7 +329,7 @@ NewsItem* news_item_add_to_queue_raw(uint8_t type, const utf8* text, uint32_t as
|
|||
*/
|
||||
void news_item_open_subject(int32_t type, int32_t subject)
|
||||
{
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
rct_window* window;
|
||||
|
||||
switch (type)
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
#define NETWORK_STREAM_VERSION "49"
|
||||
#define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION
|
||||
|
||||
static rct_peep* _pickup_peep = nullptr;
|
||||
static Peep* _pickup_peep = nullptr;
|
||||
static int32_t _pickup_peep_old_x = LOCATION_NULL;
|
||||
|
||||
#ifndef DISABLE_NETWORK
|
||||
|
@ -2032,7 +2032,7 @@ void Network::RemoveClient(std::unique_ptr<NetworkConnection>& connection)
|
|||
}
|
||||
|
||||
chat_history_add(text);
|
||||
rct_peep* pickup_peep = network_get_pickup_peep(connection_player->Id);
|
||||
Peep* pickup_peep = network_get_pickup_peep(connection_player->Id);
|
||||
if (pickup_peep)
|
||||
{
|
||||
game_command_playerid = connection_player->Id;
|
||||
|
@ -3664,7 +3664,7 @@ int32_t network_can_perform_command(uint32_t groupindex, int32_t index)
|
|||
return gNetwork.group_list[groupindex]->CanPerformCommand(index);
|
||||
}
|
||||
|
||||
void network_set_pickup_peep(uint8_t playerid, rct_peep* peep)
|
||||
void network_set_pickup_peep(uint8_t playerid, Peep* peep)
|
||||
{
|
||||
if (gNetwork.GetMode() == NETWORK_MODE_NONE)
|
||||
{
|
||||
|
@ -3680,7 +3680,7 @@ void network_set_pickup_peep(uint8_t playerid, rct_peep* peep)
|
|||
}
|
||||
}
|
||||
|
||||
rct_peep* network_get_pickup_peep(uint8_t playerid)
|
||||
Peep* network_get_pickup_peep(uint8_t playerid)
|
||||
{
|
||||
if (gNetwork.GetMode() == NETWORK_MODE_NONE)
|
||||
{
|
||||
|
@ -4049,11 +4049,11 @@ int32_t network_can_perform_command(uint32_t groupindex, int32_t index)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
void network_set_pickup_peep(uint8_t playerid, rct_peep* peep)
|
||||
void network_set_pickup_peep(uint8_t playerid, Peep* peep)
|
||||
{
|
||||
_pickup_peep = peep;
|
||||
}
|
||||
rct_peep* network_get_pickup_peep(uint8_t playerid)
|
||||
Peep* network_get_pickup_peep(uint8_t playerid)
|
||||
{
|
||||
return _pickup_peep;
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ public:
|
|||
int32_t LastAction = -999;
|
||||
uint32_t LastActionTime = 0;
|
||||
LocationXYZ16 LastActionCoord = {};
|
||||
rct_peep* PickupPeep = nullptr;
|
||||
Peep* PickupPeep = nullptr;
|
||||
int32_t PickupPeepOldX = LOCATION_NULL;
|
||||
std::string KeyHash;
|
||||
uint32_t LastDemolishRideTime = 0;
|
||||
|
|
|
@ -418,7 +418,7 @@ namespace Twitch
|
|||
{
|
||||
// Check what followers are already in the park
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
FOR_ALL_GUESTS (spriteIndex, peep)
|
||||
{
|
||||
if (is_user_string_id(peep->name_string_idx))
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#include <string>
|
||||
|
||||
struct GameAction;
|
||||
struct rct_peep;
|
||||
struct Peep;
|
||||
struct LocationXYZ16;
|
||||
|
||||
namespace OpenRCT2
|
||||
|
@ -75,8 +75,8 @@ int32_t network_get_num_actions();
|
|||
rct_string_id network_get_action_name_string_id(uint32_t index);
|
||||
int32_t network_can_perform_action(uint32_t groupindex, uint32_t index);
|
||||
int32_t network_can_perform_command(uint32_t groupindex, int32_t index);
|
||||
void network_set_pickup_peep(uint8_t playerid, rct_peep* peep);
|
||||
rct_peep* network_get_pickup_peep(uint8_t playerid);
|
||||
void network_set_pickup_peep(uint8_t playerid, Peep* peep);
|
||||
Peep* network_get_pickup_peep(uint8_t playerid);
|
||||
void network_set_pickup_peep_old_x(uint8_t playerid, int32_t x);
|
||||
int32_t network_get_pickup_peep_old_x(uint8_t playerid);
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
*
|
||||
* rct2: 0x0068F0FB
|
||||
*/
|
||||
void peep_paint(paint_session* session, const rct_peep* peep, int32_t imageDirection)
|
||||
void peep_paint(paint_session* session, const Peep* peep, int32_t imageDirection)
|
||||
{
|
||||
#ifdef __ENABLE_LIGHTFX__
|
||||
if (lightfx_is_available())
|
||||
|
|
|
@ -57,7 +57,7 @@ void sprite_paint_setup(paint_session* session, const uint16_t x, const uint16_t
|
|||
{
|
||||
if (spr->generic.sprite_identifier == SPRITE_IDENTIFIER_PEEP)
|
||||
{
|
||||
rct_peep* peep = (rct_peep*)spr;
|
||||
Peep* peep = (Peep*)spr;
|
||||
if (!(peep->type == PEEP_TYPE_STAFF && peep->staff_type == STAFF_TYPE_HANDYMAN))
|
||||
{
|
||||
continue;
|
||||
|
@ -113,7 +113,7 @@ void sprite_paint_setup(paint_session* session, const uint16_t x, const uint16_t
|
|||
vehicle_paint(session, (rct_vehicle*)spr, image_direction);
|
||||
break;
|
||||
case SPRITE_IDENTIFIER_PEEP:
|
||||
peep_paint(session, (rct_peep*)spr, image_direction);
|
||||
peep_paint(session, (Peep*)spr, image_direction);
|
||||
break;
|
||||
case SPRITE_IDENTIFIER_MISC:
|
||||
misc_paint(session, spr, image_direction);
|
||||
|
|
|
@ -19,7 +19,7 @@ void sprite_paint_setup(paint_session* session, const uint16_t x, const uint16_t
|
|||
|
||||
void misc_paint(paint_session* session, const rct_sprite* misc, int32_t imageDirection);
|
||||
void litter_paint(paint_session* session, const rct_litter* litter, int32_t imageDirection);
|
||||
void peep_paint(paint_session* session, const rct_peep* peep, int32_t imageDirection);
|
||||
void peep_paint(paint_session* session, const Peep* peep, int32_t imageDirection);
|
||||
|
||||
extern const uint32_t vehicle_particle_base_sprites[5];
|
||||
|
||||
|
|
|
@ -892,7 +892,7 @@ void path_paint(paint_session* session, uint16_t height, const TileElement* tile
|
|||
|
||||
if (!is_staff_list)
|
||||
{
|
||||
rct_peep* staff = GET_PEEP(staffIndex);
|
||||
Peep* staff = GET_PEEP(staffIndex);
|
||||
if (!staff_is_patrol_area_set(staff->staff_id, x, y))
|
||||
{
|
||||
patrolColour = COLOUR_GREY;
|
||||
|
|
|
@ -1040,7 +1040,7 @@ void surface_paint(paint_session* session, uint8_t direction, uint16_t height, c
|
|||
|
||||
if (!is_staff_list)
|
||||
{
|
||||
rct_peep* staff = GET_PEEP(staffIndex);
|
||||
Peep* staff = GET_PEEP(staffIndex);
|
||||
if (!staff_is_patrol_area_set(staff->staff_id, x, y))
|
||||
{
|
||||
patrolColour = COLOUR_GREY;
|
||||
|
|
|
@ -349,27 +349,27 @@ static constexpr const ride_rating NauseaMinimumThresholds[] = {
|
|||
};
|
||||
// clang-format on
|
||||
|
||||
static bool peep_has_voucher_for_free_ride(rct_peep* peep, Ride* ride);
|
||||
static void peep_ride_is_too_intense(rct_peep* peep, Ride* ride, bool peepAtRide);
|
||||
static void peep_reset_ride_heading(rct_peep* peep);
|
||||
static void peep_tried_to_enter_full_queue(rct_peep* peep, Ride* ride);
|
||||
static int16_t peep_calculate_ride_satisfaction(rct_peep* peep, Ride* ride);
|
||||
static void peep_update_favourite_ride(rct_peep* peep, Ride* ride);
|
||||
static int16_t peep_calculate_ride_value_satisfaction(rct_peep* peep, Ride* ride);
|
||||
static int16_t peep_calculate_ride_intensity_nausea_satisfaction(rct_peep* peep, Ride* ride);
|
||||
static void peep_update_ride_nausea_growth(rct_peep* peep, Ride* ride);
|
||||
static bool peep_should_go_on_ride_again(rct_peep* peep, Ride* ride);
|
||||
static bool peep_should_preferred_intensity_increase(rct_peep* peep);
|
||||
static bool peep_really_liked_ride(rct_peep* peep, Ride* ride);
|
||||
static bool peep_has_voucher_for_free_ride(Peep* peep, Ride* ride);
|
||||
static void peep_ride_is_too_intense(Guest* peep, Ride* ride, bool peepAtRide);
|
||||
static void peep_reset_ride_heading(Peep* peep);
|
||||
static void peep_tried_to_enter_full_queue(Peep* peep, Ride* ride);
|
||||
static int16_t peep_calculate_ride_satisfaction(Guest* peep, Ride* ride);
|
||||
static void peep_update_favourite_ride(Peep* peep, Ride* ride);
|
||||
static int16_t peep_calculate_ride_value_satisfaction(Peep* peep, Ride* ride);
|
||||
static int16_t peep_calculate_ride_intensity_nausea_satisfaction(Peep* peep, Ride* ride);
|
||||
static void peep_update_ride_nausea_growth(Peep* peep, Ride* ride);
|
||||
static bool peep_should_go_on_ride_again(Peep* peep, Ride* ride);
|
||||
static bool peep_should_preferred_intensity_increase(Peep* peep);
|
||||
static bool peep_really_liked_ride(Peep* peep, Ride* ride);
|
||||
static PeepThoughtType peep_assess_surroundings(int16_t centre_x, int16_t centre_y, int16_t centre_z);
|
||||
static void peep_update_hunger(rct_peep* peep);
|
||||
static void peep_decide_whether_to_leave_park(rct_peep* peep);
|
||||
static void peep_leave_park(rct_peep* peep);
|
||||
static void peep_head_for_nearest_ride_type(rct_peep* peep, int32_t rideType);
|
||||
static void peep_head_for_nearest_ride_with_flags(rct_peep* peep, int32_t rideTypeFlags);
|
||||
bool loc_690FD0(rct_peep* peep, uint8_t* rideToView, uint8_t* rideSeatToView, TileElement* tileElement);
|
||||
static void peep_update_hunger(Peep* peep);
|
||||
static void peep_decide_whether_to_leave_park(Peep* peep);
|
||||
static void peep_leave_park(Peep* peep);
|
||||
static void peep_head_for_nearest_ride_type(Guest* peep, int32_t rideType);
|
||||
static void peep_head_for_nearest_ride_with_flags(Guest* peep, int32_t rideTypeFlags);
|
||||
bool loc_690FD0(Peep* peep, uint8_t* rideToView, uint8_t* rideSeatToView, TileElement* tileElement);
|
||||
|
||||
void rct_peep::Tick128UpdateGuest(int32_t index)
|
||||
void Guest::Tick128UpdateGuest(int32_t index)
|
||||
{
|
||||
if ((uint32_t)(index & 0x1FF) == (gCurrentTicks & 0x1FF))
|
||||
{
|
||||
|
@ -867,7 +867,7 @@ void rct_peep::Tick128UpdateGuest(int32_t index)
|
|||
*
|
||||
* rct2: 0x00691677
|
||||
*/
|
||||
void rct_peep::TryGetUpFromSitting()
|
||||
void Guest::TryGetUpFromSitting()
|
||||
{
|
||||
// Eats all food first
|
||||
if (HasFood())
|
||||
|
@ -890,7 +890,7 @@ void rct_peep::TryGetUpFromSitting()
|
|||
*
|
||||
* rct2: 0x0069152B
|
||||
*/
|
||||
void rct_peep::UpdateSitting()
|
||||
void Guest::UpdateSitting()
|
||||
{
|
||||
if (sub_state == PEEP_SITTING_TRYING_TO_SIT)
|
||||
{
|
||||
|
@ -999,42 +999,7 @@ void rct_peep::UpdateSitting()
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006966A9
|
||||
*/
|
||||
void rct_peep::RemoveFromQueue()
|
||||
{
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
||||
auto& station = ride->stations[current_ride_station];
|
||||
// Make sure we don't underflow, building while paused might reset it to 0 where peeps have
|
||||
// not yet left the queue.
|
||||
if (station.QueueLength > 0)
|
||||
{
|
||||
station.QueueLength--;
|
||||
}
|
||||
|
||||
if (sprite_index == station.LastPeepInQueue)
|
||||
{
|
||||
station.LastPeepInQueue = next_in_queue;
|
||||
return;
|
||||
}
|
||||
|
||||
auto spriteId = station.LastPeepInQueue;
|
||||
while (spriteId != SPRITE_INDEX_NULL)
|
||||
{
|
||||
rct_peep* other_peep = GET_PEEP(spriteId);
|
||||
if (sprite_index == other_peep->next_in_queue)
|
||||
{
|
||||
other_peep->next_in_queue = next_in_queue;
|
||||
return;
|
||||
}
|
||||
spriteId = other_peep->next_in_queue;
|
||||
}
|
||||
}
|
||||
|
||||
bool rct_peep::HasItem(int32_t peepItem) const
|
||||
bool Guest::HasItem(int32_t peepItem) const
|
||||
{
|
||||
if (peepItem < 32)
|
||||
{
|
||||
|
@ -1046,7 +1011,7 @@ bool rct_peep::HasItem(int32_t peepItem) const
|
|||
}
|
||||
}
|
||||
|
||||
int32_t rct_peep::HasFoodStandardFlag() const
|
||||
int32_t Guest::HasFoodStandardFlag() const
|
||||
{
|
||||
return item_standard_flags
|
||||
& (PEEP_ITEM_DRINK | PEEP_ITEM_BURGER | PEEP_ITEM_CHIPS | PEEP_ITEM_ICE_CREAM | PEEP_ITEM_CANDYFLOSS | PEEP_ITEM_PIZZA
|
||||
|
@ -1054,7 +1019,7 @@ int32_t rct_peep::HasFoodStandardFlag() const
|
|||
| PEEP_ITEM_COFFEE | PEEP_ITEM_CHICKEN | PEEP_ITEM_LEMONADE);
|
||||
}
|
||||
|
||||
int32_t rct_peep::HasFoodExtraFlag() const
|
||||
int32_t Guest::HasFoodExtraFlag() const
|
||||
{
|
||||
return item_extra_flags
|
||||
& (PEEP_ITEM_PRETZEL | PEEP_ITEM_CHOCOLATE | PEEP_ITEM_ICED_TEA | PEEP_ITEM_FUNNEL_CAKE | PEEP_ITEM_BEEF_NOODLES
|
||||
|
@ -1063,12 +1028,12 @@ int32_t rct_peep::HasFoodExtraFlag() const
|
|||
| PEEP_ITEM_ROAST_SAUSAGE);
|
||||
}
|
||||
|
||||
bool rct_peep::HasDrinkStandardFlag() const
|
||||
bool Guest::HasDrinkStandardFlag() const
|
||||
{
|
||||
return item_standard_flags & (PEEP_ITEM_DRINK | PEEP_ITEM_COFFEE | PEEP_ITEM_LEMONADE);
|
||||
}
|
||||
|
||||
bool rct_peep::HasDrinkExtraFlag() const
|
||||
bool Guest::HasDrinkExtraFlag() const
|
||||
{
|
||||
return item_extra_flags
|
||||
& (PEEP_ITEM_CHOCOLATE | PEEP_ITEM_ICED_TEA | PEEP_ITEM_FRUIT_JUICE | PEEP_ITEM_SOYBEAN_MILK | PEEP_ITEM_SU_JONGKWA);
|
||||
|
@ -1078,25 +1043,25 @@ bool rct_peep::HasDrinkExtraFlag() const
|
|||
* To simplify check of NOT(0x12BA3C0 and 0x118F48)
|
||||
* returns 0 on no food.
|
||||
*/
|
||||
bool rct_peep::HasDrink() const
|
||||
bool Guest::HasDrink() const
|
||||
{
|
||||
return HasDrinkStandardFlag() || HasDrinkExtraFlag();
|
||||
}
|
||||
|
||||
int32_t rct_peep::HasEmptyContainerStandardFlag() const
|
||||
int32_t Guest::HasEmptyContainerStandardFlag() const
|
||||
{
|
||||
return item_standard_flags
|
||||
& (PEEP_ITEM_EMPTY_CAN | PEEP_ITEM_EMPTY_BURGER_BOX | PEEP_ITEM_EMPTY_CUP | PEEP_ITEM_RUBBISH | PEEP_ITEM_EMPTY_BOX
|
||||
| PEEP_ITEM_EMPTY_BOTTLE);
|
||||
}
|
||||
|
||||
int32_t rct_peep::HasEmptyContainerExtraFlag() const
|
||||
int32_t Guest::HasEmptyContainerExtraFlag() const
|
||||
{
|
||||
return item_extra_flags
|
||||
& (PEEP_ITEM_EMPTY_BOWL_RED | PEEP_ITEM_EMPTY_DRINK_CARTON | PEEP_ITEM_EMPTY_JUICE_CUP | PEEP_ITEM_EMPTY_BOWL_BLUE);
|
||||
}
|
||||
|
||||
bool rct_peep::HasEmptyContainer() const
|
||||
bool Guest::HasEmptyContainer() const
|
||||
{
|
||||
return HasEmptyContainerStandardFlag() || HasEmptyContainerExtraFlag();
|
||||
}
|
||||
|
@ -1106,7 +1071,7 @@ bool rct_peep::HasEmptyContainer() const
|
|||
* rct2: 0x69C308
|
||||
* Check if lost.
|
||||
*/
|
||||
void rct_peep::CheckIfLost()
|
||||
void Guest::CheckIfLost()
|
||||
{
|
||||
if (!(peep_flags & PEEP_FLAGS_LOST))
|
||||
{
|
||||
|
@ -1132,7 +1097,7 @@ void rct_peep::CheckIfLost()
|
|||
* rct2: 0x69C26B
|
||||
* Check if cant find ride.
|
||||
*/
|
||||
void rct_peep::CheckCantFindRide()
|
||||
void Guest::CheckCantFindRide()
|
||||
{
|
||||
if (guest_heading_to_ride_id == RIDE_ID_NULL)
|
||||
return;
|
||||
|
@ -1164,7 +1129,7 @@ void rct_peep::CheckCantFindRide()
|
|||
* rct2: 0x69C2D0
|
||||
* Check if cant find exit.
|
||||
*/
|
||||
void rct_peep::CheckCantFindExit()
|
||||
void Guest::CheckCantFindExit()
|
||||
{
|
||||
if (!(peep_flags & PEEP_FLAGS_LEAVING_PARK))
|
||||
return;
|
||||
|
@ -1193,7 +1158,7 @@ void rct_peep::CheckCantFindExit()
|
|||
*
|
||||
* rct2: 0x0069AF1E
|
||||
*/
|
||||
bool rct_peep::DecideAndBuyItem(Ride* ride, int32_t shopItem, money32 price)
|
||||
bool Guest::DecideAndBuyItem(Ride* ride, int32_t shopItem, money32 price)
|
||||
{
|
||||
money32 itemValue;
|
||||
|
||||
|
@ -1465,7 +1430,7 @@ loc_69B221:
|
|||
* ride's satisfaction value.
|
||||
* rct2: 0x0069545B
|
||||
*/
|
||||
void rct_peep::OnEnterRide(ride_id_t rideIndex)
|
||||
void Guest::OnEnterRide(ride_id_t rideIndex)
|
||||
{
|
||||
Ride* ride = get_ride(rideIndex);
|
||||
|
||||
|
@ -1497,7 +1462,7 @@ void rct_peep::OnEnterRide(ride_id_t rideIndex)
|
|||
*
|
||||
* rct2: 0x0069576E
|
||||
*/
|
||||
void rct_peep::OnExitRide(ride_id_t rideIndex)
|
||||
void Guest::OnExitRide(ride_id_t rideIndex)
|
||||
{
|
||||
Ride* ride = get_ride(rideIndex);
|
||||
|
||||
|
@ -1552,24 +1517,11 @@ void rct_peep::OnExitRide(ride_id_t rideIndex)
|
|||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_CUSTOMER;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x0069A512
|
||||
*/
|
||||
void rct_peep::RemoveFromRide()
|
||||
{
|
||||
if (state == PEEP_STATE_QUEUING)
|
||||
{
|
||||
RemoveFromQueue();
|
||||
}
|
||||
StateReset();
|
||||
}
|
||||
|
||||
/**
|
||||
* To simplify check of 0x36BA3E0 and 0x11FF78
|
||||
* returns false on no food.
|
||||
*/
|
||||
bool rct_peep::HasFood() const
|
||||
bool Guest::HasFood() const
|
||||
{
|
||||
return HasFoodStandardFlag() || HasFoodExtraFlag();
|
||||
}
|
||||
|
@ -1578,7 +1530,7 @@ bool rct_peep::HasFood() const
|
|||
*
|
||||
* rct2: 0x00695DD2
|
||||
*/
|
||||
void rct_peep::PickRideToGoOn()
|
||||
void Guest::PickRideToGoOn()
|
||||
{
|
||||
if (state != PEEP_STATE_WALKING)
|
||||
return;
|
||||
|
@ -1615,7 +1567,7 @@ void rct_peep::PickRideToGoOn()
|
|||
}
|
||||
}
|
||||
|
||||
Ride* rct_peep::FindBestRideToGoOn()
|
||||
Ride* Guest::FindBestRideToGoOn()
|
||||
{
|
||||
// Pick the most exciting ride
|
||||
auto rideConsideration = FindRidesToGoOn();
|
||||
|
@ -1640,7 +1592,7 @@ Ride* rct_peep::FindBestRideToGoOn()
|
|||
return mostExcitingRide;
|
||||
}
|
||||
|
||||
std::bitset<MAX_RIDES> rct_peep::FindRidesToGoOn()
|
||||
std::bitset<MAX_RIDES> Guest::FindRidesToGoOn()
|
||||
{
|
||||
std::bitset<MAX_RIDES> rideConsideration;
|
||||
|
||||
|
@ -1709,7 +1661,7 @@ std::bitset<MAX_RIDES> rct_peep::FindRidesToGoOn()
|
|||
* ride/shop, or they may just be thinking about it.
|
||||
* rct2: 0x006960AB
|
||||
*/
|
||||
bool rct_peep::ShouldGoOnRide(Ride* ride, int32_t entranceNum, bool atQueue, bool thinking)
|
||||
bool Guest::ShouldGoOnRide(Ride* ride, int32_t entranceNum, bool atQueue, bool thinking)
|
||||
{
|
||||
// Indicates whether a peep is physically at the ride, or is just thinking about going on the ride.
|
||||
bool peepAtRide = !thinking;
|
||||
|
@ -1758,7 +1710,7 @@ bool rct_peep::ShouldGoOnRide(Ride* ride, int32_t entranceNum, bool atQueue, boo
|
|||
// Check if there's room in the queue for the peep to enter.
|
||||
if (ride->stations[entranceNum].LastPeepInQueue != SPRITE_INDEX_NULL)
|
||||
{
|
||||
rct_peep* lastPeepInQueue = GET_PEEP(ride->stations[entranceNum].LastPeepInQueue);
|
||||
Peep* lastPeepInQueue = GET_PEEP(ride->stations[entranceNum].LastPeepInQueue);
|
||||
if (abs(lastPeepInQueue->z - z) <= 6)
|
||||
{
|
||||
int32_t dx = abs(lastPeepInQueue->x - x);
|
||||
|
@ -1997,7 +1949,7 @@ bool rct_peep::ShouldGoOnRide(Ride* ride, int32_t entranceNum, bool atQueue, boo
|
|||
return false;
|
||||
}
|
||||
|
||||
bool rct_peep::ShouldGoToShop(Ride* ride, bool peepAtShop)
|
||||
bool Guest::ShouldGoToShop(Ride* ride, bool peepAtShop)
|
||||
{
|
||||
// Peeps won't go to the same shop twice in a row.
|
||||
if (ride->id == previous_ride)
|
||||
|
@ -2071,7 +2023,7 @@ bool rct_peep::ShouldGoToShop(Ride* ride, bool peepAtShop)
|
|||
}
|
||||
|
||||
// Used when no logging to an expend type required
|
||||
void rct_peep::SpendMoney(money32 amount)
|
||||
void Guest::SpendMoney(money32 amount)
|
||||
{
|
||||
money16 unused;
|
||||
SpendMoney(unused, amount);
|
||||
|
@ -2082,7 +2034,7 @@ void rct_peep::SpendMoney(money32 amount)
|
|||
* rct2: 0x0069926C
|
||||
* Expend type was previously an offset saved in 0x00F1AEC0
|
||||
*/
|
||||
void rct_peep::SpendMoney(money16& peep_expend_type, money32 amount)
|
||||
void Guest::SpendMoney(money16& peep_expend_type, money32 amount)
|
||||
{
|
||||
assert(!(gParkFlags & PARK_FLAGS_NO_MONEY));
|
||||
|
||||
|
@ -2109,28 +2061,28 @@ void rct_peep::SpendMoney(money16& peep_expend_type, money32 amount)
|
|||
audio_play_sound_at_location(SOUND_PURCHASE, x, y, z);
|
||||
}
|
||||
|
||||
void rct_peep::SetHasRidden(Ride* ride)
|
||||
void Guest::SetHasRidden(Ride* ride)
|
||||
{
|
||||
rides_been_on[ride->id / 8] |= 1 << (ride->id % 8);
|
||||
SetHasRiddenRideType(ride->type);
|
||||
}
|
||||
|
||||
bool rct_peep::HasRidden(Ride* ride) const
|
||||
bool Guest::HasRidden(Ride* ride) const
|
||||
{
|
||||
return rides_been_on[ride->id / 8] & (1 << (ride->id % 8));
|
||||
}
|
||||
|
||||
void rct_peep::SetHasRiddenRideType(int32_t rideType)
|
||||
void Guest::SetHasRiddenRideType(int32_t rideType)
|
||||
{
|
||||
ride_types_been_on[rideType / 8] |= 1 << (rideType % 8);
|
||||
}
|
||||
|
||||
bool rct_peep::HasRiddenRideType(int32_t rideType) const
|
||||
bool Guest::HasRiddenRideType(int32_t rideType) const
|
||||
{
|
||||
return ride_types_been_on[rideType / 8] & (1 << (rideType % 8));
|
||||
}
|
||||
|
||||
void rct_peep::ChoseNotToGoOnRide(Ride* ride, bool peepAtRide, bool updateLastRide)
|
||||
void Guest::ChoseNotToGoOnRide(Ride* ride, bool peepAtRide, bool updateLastRide)
|
||||
{
|
||||
if (peepAtRide && updateLastRide)
|
||||
{
|
||||
|
@ -2144,7 +2096,7 @@ void rct_peep::ChoseNotToGoOnRide(Ride* ride, bool peepAtRide, bool updateLastRi
|
|||
}
|
||||
}
|
||||
|
||||
void rct_peep::ReadMap()
|
||||
void Guest::ReadMap()
|
||||
{
|
||||
if (action == PEEP_ACTION_NONE_1 || action == PEEP_ACTION_NONE_2)
|
||||
{
|
||||
|
@ -2156,7 +2108,7 @@ void rct_peep::ReadMap()
|
|||
}
|
||||
}
|
||||
|
||||
static bool peep_has_voucher_for_free_ride(rct_peep* peep, Ride* ride)
|
||||
static bool peep_has_voucher_for_free_ride(Peep* peep, Ride* ride)
|
||||
{
|
||||
return peep->item_standard_flags & PEEP_ITEM_VOUCHER && peep->voucher_type == VOUCHER_TYPE_RIDE_FREE
|
||||
&& peep->voucher_arguments == ride->id;
|
||||
|
@ -2167,7 +2119,7 @@ static bool peep_has_voucher_for_free_ride(rct_peep* peep, Ride* ride)
|
|||
* Does not effect peeps that walk up to the queue entrance.
|
||||
* This flag is reset the next time a peep successfully joins the queue.
|
||||
*/
|
||||
static void peep_tried_to_enter_full_queue(rct_peep* peep, Ride* ride)
|
||||
static void peep_tried_to_enter_full_queue(Peep* peep, Ride* ride)
|
||||
{
|
||||
ride->lifecycle_flags |= RIDE_LIFECYCLE_QUEUE_FULL;
|
||||
peep->previous_ride = ride->id;
|
||||
|
@ -2179,7 +2131,7 @@ static void peep_tried_to_enter_full_queue(rct_peep* peep, Ride* ride)
|
|||
}
|
||||
}
|
||||
|
||||
static void peep_reset_ride_heading(rct_peep* peep)
|
||||
static void peep_reset_ride_heading(Peep* peep)
|
||||
{
|
||||
rct_window* w;
|
||||
|
||||
|
@ -2192,7 +2144,7 @@ static void peep_reset_ride_heading(rct_peep* peep)
|
|||
}
|
||||
}
|
||||
|
||||
static void peep_ride_is_too_intense(rct_peep* peep, Ride* ride, bool peepAtRide)
|
||||
static void peep_ride_is_too_intense(Guest* peep, Ride* ride, bool peepAtRide)
|
||||
{
|
||||
if (peepAtRide)
|
||||
{
|
||||
|
@ -2210,7 +2162,7 @@ static void peep_ride_is_too_intense(rct_peep* peep, Ride* ride, bool peepAtRide
|
|||
*
|
||||
* rct2: 0x00691C6E
|
||||
*/
|
||||
static rct_vehicle* peep_choose_car_from_ride(rct_peep* peep, Ride* ride, std::vector<uint8_t>& car_array)
|
||||
static rct_vehicle* peep_choose_car_from_ride(Peep* peep, Ride* ride, std::vector<uint8_t>& car_array)
|
||||
{
|
||||
uint8_t chosen_car = scenario_rand();
|
||||
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_HAS_G_FORCES) && ((chosen_car & 0xC) != 0xC))
|
||||
|
@ -2238,7 +2190,7 @@ static rct_vehicle* peep_choose_car_from_ride(rct_peep* peep, Ride* ride, std::v
|
|||
*
|
||||
* rct2: 0x00691CD1
|
||||
*/
|
||||
static void peep_choose_seat_from_car(rct_peep* peep, Ride* ride, rct_vehicle* vehicle)
|
||||
static void peep_choose_seat_from_car(Peep* peep, Ride* ride, rct_vehicle* vehicle)
|
||||
{
|
||||
uint8_t chosen_seat = vehicle->next_free_seat;
|
||||
|
||||
|
@ -2261,7 +2213,7 @@ static void peep_choose_seat_from_car(rct_peep* peep, Ride* ride, rct_vehicle* v
|
|||
*
|
||||
* rct2: 0x00691D27
|
||||
*/
|
||||
static void peep_go_to_ride_entrance(rct_peep* peep, Ride* ride)
|
||||
static void peep_go_to_ride_entrance(Guest* peep, Ride* ride)
|
||||
{
|
||||
TileCoordsXYZD location = ride_get_entrance_location(ride, peep->current_ride_station);
|
||||
Guard::Assert(!location.isNull());
|
||||
|
@ -2309,7 +2261,7 @@ static void peep_go_to_ride_entrance(rct_peep* peep, Ride* ride)
|
|||
peep->RemoveFromQueue();
|
||||
}
|
||||
|
||||
static bool peep_find_vehicle_to_enter(rct_peep* peep, Ride* ride, std::vector<uint8_t>& car_array)
|
||||
static bool peep_find_vehicle_to_enter(Guest* peep, Ride* ride, std::vector<uint8_t>& car_array)
|
||||
{
|
||||
uint8_t chosen_train = RideStation::NO_TRAIN;
|
||||
|
||||
|
@ -2378,7 +2330,7 @@ static bool peep_find_vehicle_to_enter(rct_peep* peep, Ride* ride, std::vector<u
|
|||
return !car_array.empty();
|
||||
}
|
||||
|
||||
static void peep_update_ride_at_entrance_try_leave(rct_peep* peep)
|
||||
static void peep_update_ride_at_entrance_try_leave(Guest* peep)
|
||||
{
|
||||
// Destination Tolerance is zero when peep has completely
|
||||
// entered entrance
|
||||
|
@ -2389,7 +2341,7 @@ static void peep_update_ride_at_entrance_try_leave(rct_peep* peep)
|
|||
}
|
||||
}
|
||||
|
||||
static bool peep_check_ride_price_at_entrance(rct_peep* peep, Ride* ride, money32 ridePrice)
|
||||
static bool peep_check_ride_price_at_entrance(Guest* peep, Ride* ride, money32 ridePrice)
|
||||
{
|
||||
if ((peep->item_standard_flags & PEEP_ITEM_VOUCHER) && peep->voucher_type == VOUCHER_TYPE_RIDE_FREE
|
||||
&& peep->voucher_arguments == peep->current_ride)
|
||||
|
@ -2430,7 +2382,7 @@ static bool peep_check_ride_price_at_entrance(rct_peep* peep, Ride* ride, money3
|
|||
* - How long the peep was waiting in the queue
|
||||
* - If the peep has been on the ride before, or on another ride of the same type
|
||||
*/
|
||||
static int16_t peep_calculate_ride_satisfaction(rct_peep* peep, Ride* ride)
|
||||
static int16_t peep_calculate_ride_satisfaction(Guest* peep, Ride* ride)
|
||||
{
|
||||
int16_t satisfaction = peep_calculate_ride_value_satisfaction(peep, ride);
|
||||
satisfaction += peep_calculate_ride_intensity_nausea_satisfaction(peep, ride);
|
||||
|
@ -2466,7 +2418,7 @@ static int16_t peep_calculate_ride_satisfaction(rct_peep* peep, Ride* ride)
|
|||
* the ride becomes the peep's favourite. (This doesn't happen right away, but will be updated once the peep
|
||||
* exits the ride.)
|
||||
*/
|
||||
static void peep_update_favourite_ride(rct_peep* peep, Ride* ride)
|
||||
static void peep_update_favourite_ride(Peep* peep, Ride* ride)
|
||||
{
|
||||
peep->peep_flags &= ~PEEP_FLAGS_RIDE_SHOULD_BE_MARKED_AS_FAVOURITE;
|
||||
uint8_t peepRideRating = std::clamp((ride->excitement / 4) + peep->happiness, 0, PEEP_MAX_HAPPINESS);
|
||||
|
@ -2481,7 +2433,7 @@ static void peep_update_favourite_ride(rct_peep* peep, Ride* ride)
|
|||
}
|
||||
|
||||
/* rct2: 0x00695555 */
|
||||
static int16_t peep_calculate_ride_value_satisfaction(rct_peep* peep, Ride* ride)
|
||||
static int16_t peep_calculate_ride_value_satisfaction(Peep* peep, Ride* ride)
|
||||
{
|
||||
if (gParkFlags & PARK_FLAGS_NO_MONEY)
|
||||
{
|
||||
|
@ -2513,7 +2465,7 @@ static int16_t peep_calculate_ride_value_satisfaction(rct_peep* peep, Ride* ride
|
|||
* of the ride fall exactly within the peep's preferences, but lower scores can still be achieved
|
||||
* if the peep's happiness is enough to offset it.
|
||||
*/
|
||||
static int16_t peep_calculate_ride_intensity_nausea_satisfaction(rct_peep* peep, Ride* ride)
|
||||
static int16_t peep_calculate_ride_intensity_nausea_satisfaction(Peep* peep, Ride* ride)
|
||||
{
|
||||
if (!ride_has_ratings(ride))
|
||||
{
|
||||
|
@ -2613,7 +2565,7 @@ static int16_t peep_calculate_ride_intensity_nausea_satisfaction(rct_peep* peep,
|
|||
* - How hungry the peep is (+0% nausea at 50% hunger up to +100% nausea at 100% hunger)
|
||||
* - The peep's nausea tolerance (Final modifier: none: 100%, low: 50%, average: 25%, high: 12.5%)
|
||||
*/
|
||||
static void peep_update_ride_nausea_growth(rct_peep* peep, Ride* ride)
|
||||
static void peep_update_ride_nausea_growth(Peep* peep, Ride* ride)
|
||||
{
|
||||
uint32_t nauseaMultiplier = std::clamp(256 - peep->happiness_target, 64, 200);
|
||||
uint32_t nauseaGrowthRateChange = (ride->nausea * nauseaMultiplier) / 512;
|
||||
|
@ -2622,7 +2574,7 @@ static void peep_update_ride_nausea_growth(rct_peep* peep, Ride* ride)
|
|||
peep->nausea_target = (uint8_t)std::min(peep->nausea_target + nauseaGrowthRateChange, 255u);
|
||||
}
|
||||
|
||||
static bool peep_should_go_on_ride_again(rct_peep* peep, Ride* ride)
|
||||
static bool peep_should_go_on_ride_again(Peep* peep, Ride* ride)
|
||||
{
|
||||
if (!ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN))
|
||||
return false;
|
||||
|
@ -2655,7 +2607,7 @@ static bool peep_should_go_on_ride_again(rct_peep* peep, Ride* ride)
|
|||
return true;
|
||||
}
|
||||
|
||||
static bool peep_should_preferred_intensity_increase(rct_peep* peep)
|
||||
static bool peep_should_preferred_intensity_increase(Peep* peep)
|
||||
{
|
||||
if (gParkFlags & PARK_FLAGS_PREF_LESS_INTENSE_RIDES)
|
||||
return false;
|
||||
|
@ -2665,7 +2617,7 @@ static bool peep_should_preferred_intensity_increase(rct_peep* peep)
|
|||
return (scenario_rand() & 0xFF) >= peep->intensity;
|
||||
}
|
||||
|
||||
static bool peep_really_liked_ride(rct_peep* peep, Ride* ride)
|
||||
static bool peep_really_liked_ride(Peep* peep, Ride* ride)
|
||||
{
|
||||
if (peep->happiness < 215)
|
||||
return false;
|
||||
|
@ -2799,7 +2751,7 @@ static PeepThoughtType peep_assess_surroundings(int16_t centre_x, int16_t centre
|
|||
*
|
||||
* rct2: 0x0068F9A9
|
||||
*/
|
||||
static void peep_update_hunger(rct_peep* peep)
|
||||
static void peep_update_hunger(Peep* peep)
|
||||
{
|
||||
if (peep->hunger >= 3)
|
||||
{
|
||||
|
@ -2816,7 +2768,7 @@ static void peep_update_hunger(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x0068F8CD
|
||||
*/
|
||||
static void peep_decide_whether_to_leave_park(rct_peep* peep)
|
||||
static void peep_decide_whether_to_leave_park(Peep* peep)
|
||||
{
|
||||
if (peep->energy_target >= 33)
|
||||
{
|
||||
|
@ -2868,7 +2820,7 @@ static void peep_decide_whether_to_leave_park(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x0068F93E
|
||||
*/
|
||||
static void peep_leave_park(rct_peep* peep)
|
||||
static void peep_leave_park(Peep* peep)
|
||||
{
|
||||
peep->guest_heading_to_ride_id = RIDE_ID_NULL;
|
||||
if (peep->peep_flags & PEEP_FLAGS_LEAVING_PARK)
|
||||
|
@ -2897,7 +2849,7 @@ static void peep_leave_park(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x00695B70
|
||||
*/
|
||||
static void peep_head_for_nearest_ride_type(rct_peep* peep, int32_t rideType)
|
||||
static void peep_head_for_nearest_ride_type(Guest* peep, int32_t rideType)
|
||||
{
|
||||
Ride* ride;
|
||||
|
||||
|
@ -3020,7 +2972,7 @@ static void peep_head_for_nearest_ride_type(rct_peep* peep, int32_t rideType)
|
|||
*
|
||||
* rct2: 0x006958D0
|
||||
*/
|
||||
static void peep_head_for_nearest_ride_with_flags(rct_peep* peep, int32_t rideTypeFlags)
|
||||
static void peep_head_for_nearest_ride_with_flags(Guest* peep, int32_t rideTypeFlags)
|
||||
{
|
||||
Ride* ride;
|
||||
|
||||
|
@ -3152,7 +3104,7 @@ static void peep_head_for_nearest_ride_with_flags(rct_peep* peep, int32_t rideTy
|
|||
* such as "I'm hungry" after visiting a food shop.
|
||||
* Works for Thirst/Hungry/Low Money/Bathroom
|
||||
*/
|
||||
void rct_peep::StopPurchaseThought(uint8_t ride_type)
|
||||
void Guest::StopPurchaseThought(uint8_t ride_type)
|
||||
{
|
||||
uint8_t thoughtType = PEEP_THOUGHT_TYPE_HUNGRY;
|
||||
|
||||
|
@ -3200,7 +3152,7 @@ void rct_peep::StopPurchaseThought(uint8_t ride_type)
|
|||
*
|
||||
* rct2: 0x0069AEB7
|
||||
*/
|
||||
static bool peep_should_use_cash_machine(rct_peep* peep, ride_id_t rideIndex)
|
||||
static bool peep_should_use_cash_machine(Peep* peep, ride_id_t rideIndex)
|
||||
{
|
||||
if (gParkFlags & PARK_FLAGS_NO_MONEY)
|
||||
return false;
|
||||
|
@ -3225,7 +3177,7 @@ static bool peep_should_use_cash_machine(rct_peep* peep, ride_id_t rideIndex)
|
|||
*
|
||||
* rct2: 0x006912A3
|
||||
*/
|
||||
void rct_peep::UpdateBuying()
|
||||
void Guest::UpdateBuying()
|
||||
{
|
||||
if (!CheckForPath())
|
||||
return;
|
||||
|
@ -3337,7 +3289,7 @@ void rct_peep::UpdateBuying()
|
|||
*
|
||||
* rct2: 0x00691A3B
|
||||
*/
|
||||
void rct_peep::UpdateRideAtEntrance()
|
||||
void Guest::UpdateRideAtEntrance()
|
||||
{
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
||||
|
@ -3416,7 +3368,7 @@ static constexpr const LocationXY16 _MazeEntranceStart[] = {
|
|||
{ 24, 8 },
|
||||
};
|
||||
|
||||
static void peep_update_ride_leave_entrance_maze(rct_peep* peep, Ride* ride, TileCoordsXYZD& entrance_loc)
|
||||
static void peep_update_ride_leave_entrance_maze(Guest* peep, Ride* ride, TileCoordsXYZD& entrance_loc)
|
||||
{
|
||||
peep->maze_last_edge = entrance_loc.direction + 1;
|
||||
entrance_loc.x *= 32;
|
||||
|
@ -3449,7 +3401,7 @@ static void peep_update_ride_leave_entrance_maze(rct_peep* peep, Ride* ride, Til
|
|||
peep->sub_state = PEEP_RIDE_MAZE_PATHFINDING;
|
||||
}
|
||||
|
||||
static void peep_update_ride_leave_entrance_spiral_slide(rct_peep* peep, Ride* ride, TileCoordsXYZD& entrance_loc)
|
||||
static void peep_update_ride_leave_entrance_spiral_slide(Guest* peep, Ride* ride, TileCoordsXYZD& entrance_loc)
|
||||
{
|
||||
entrance_loc.x = ride->stations[peep->current_ride_station].Start.x * 32;
|
||||
entrance_loc.y = ride->stations[peep->current_ride_station].Start.y * 32;
|
||||
|
@ -3475,7 +3427,7 @@ static void peep_update_ride_leave_entrance_spiral_slide(rct_peep* peep, Ride* r
|
|||
}
|
||||
|
||||
static uint8_t peep_get_waypointed_seat_location(
|
||||
rct_peep* peep, Ride* ride, rct_ride_entry_vehicle* vehicle_type, uint8_t track_direction)
|
||||
Peep* peep, Ride* ride, rct_ride_entry_vehicle* vehicle_type, uint8_t track_direction)
|
||||
{
|
||||
// The seatlocation can be split into segments around the ride base
|
||||
// to decide the segment first split off the segmentable seat location
|
||||
|
@ -3500,7 +3452,7 @@ static uint8_t peep_get_waypointed_seat_location(
|
|||
return seatLocationSegment + seatLocationFixed;
|
||||
}
|
||||
|
||||
static void peep_update_ride_leave_entrance_waypoints(rct_peep* peep, Ride* ride)
|
||||
static void peep_update_ride_leave_entrance_waypoints(Peep* peep, Ride* ride)
|
||||
{
|
||||
TileCoordsXYZD entranceLocation = ride_get_entrance_location(ride, peep->current_ride_station);
|
||||
Guard::Assert(!entranceLocation.isNull());
|
||||
|
@ -3539,7 +3491,7 @@ static void peep_update_ride_leave_entrance_waypoints(rct_peep* peep, Ride* ride
|
|||
*
|
||||
* rct2: 0x006921D3
|
||||
*/
|
||||
void rct_peep::UpdateRideAdvanceThroughEntrance()
|
||||
void Guest::UpdateRideAdvanceThroughEntrance()
|
||||
{
|
||||
int16_t actionX, actionY, actionZ, xy_distance;
|
||||
|
||||
|
@ -3681,7 +3633,7 @@ void rct_peep::UpdateRideAdvanceThroughEntrance()
|
|||
*
|
||||
* rct2: 0x0069321D
|
||||
*/
|
||||
static void peep_go_to_ride_exit(rct_peep* peep, Ride* ride, int16_t x, int16_t y, int16_t z, uint8_t exit_direction)
|
||||
static void peep_go_to_ride_exit(Peep* peep, Ride* ride, int16_t x, int16_t y, int16_t z, uint8_t exit_direction)
|
||||
{
|
||||
z += RideData5[ride->type].z;
|
||||
|
||||
|
@ -3732,7 +3684,7 @@ static void peep_go_to_ride_exit(rct_peep* peep, Ride* ride, int16_t x, int16_t
|
|||
*
|
||||
* rct2: 0x006920B4
|
||||
*/
|
||||
void rct_peep::UpdateRideFreeVehicleEnterRide(Ride* ride)
|
||||
void Guest::UpdateRideFreeVehicleEnterRide(Ride* ride)
|
||||
{
|
||||
money16 ridePrice = ride_get_price(ride);
|
||||
if (ridePrice != 0)
|
||||
|
@ -3795,7 +3747,7 @@ void rct_peep::UpdateRideFreeVehicleEnterRide(Ride* ride)
|
|||
*
|
||||
* rct2: 0x00691FD4
|
||||
*/
|
||||
static void peep_update_ride_no_free_vehicle_rejoin_queue(rct_peep* peep, Ride* ride)
|
||||
static void peep_update_ride_no_free_vehicle_rejoin_queue(Peep* peep, Ride* ride)
|
||||
{
|
||||
TileCoordsXYZD entranceLocation = ride_get_entrance_location(ride, peep->current_ride_station);
|
||||
|
||||
|
@ -3823,7 +3775,7 @@ static void peep_update_ride_no_free_vehicle_rejoin_queue(rct_peep* peep, Ride*
|
|||
* branch it out to 1 and 3. Now uses
|
||||
* separate functions.
|
||||
*/
|
||||
void rct_peep::UpdateRideFreeVehicleCheck()
|
||||
void Guest::UpdateRideFreeVehicleCheck()
|
||||
{
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
||||
|
@ -3916,7 +3868,7 @@ void rct_peep::UpdateRideFreeVehicleCheck()
|
|||
peep_update_ride_no_free_vehicle_rejoin_queue(this, ride);
|
||||
}
|
||||
|
||||
void rct_peep::UpdateRideApproachVehicle()
|
||||
void Guest::UpdateRideApproachVehicle()
|
||||
{
|
||||
int16_t actionX, actionY, xy_distance;
|
||||
if (!UpdateAction(&actionX, &actionY, &xy_distance))
|
||||
|
@ -3930,7 +3882,7 @@ void rct_peep::UpdateRideApproachVehicle()
|
|||
Invalidate();
|
||||
}
|
||||
|
||||
void rct_peep::UpdateRideEnterVehicle()
|
||||
void Guest::UpdateRideEnterVehicle()
|
||||
{
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
||||
|
@ -3948,8 +3900,8 @@ void rct_peep::UpdateRideEnterVehicle()
|
|||
|
||||
if (vehicle_is_used_in_pairs(vehicle))
|
||||
{
|
||||
rct_peep* seated_peep = GET_PEEP(vehicle->peep[current_seat ^ 1]);
|
||||
if (seated_peep->sub_state != PEEP_RIDE_ENTER_VEHICLE)
|
||||
auto seated_peep = (GET_PEEP(vehicle->peep[current_seat ^ 1]))->AsGuest();
|
||||
if (seated_peep == nullptr || seated_peep->sub_state != PEEP_RIDE_ENTER_VEHICLE)
|
||||
return;
|
||||
|
||||
vehicle->num_peeps++;
|
||||
|
@ -3985,7 +3937,7 @@ void rct_peep::UpdateRideEnterVehicle()
|
|||
*
|
||||
* rct2: 0x00693028
|
||||
*/
|
||||
void rct_peep::UpdateRideLeaveVehicle()
|
||||
void Guest::UpdateRideLeaveVehicle()
|
||||
{
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
||||
|
@ -4179,7 +4131,7 @@ void rct_peep::UpdateRideLeaveVehicle()
|
|||
*
|
||||
* rct2: 0x0069376A
|
||||
*/
|
||||
static void peep_update_ride_prepare_for_exit(rct_peep* peep)
|
||||
static void peep_update_ride_prepare_for_exit(Peep* peep)
|
||||
{
|
||||
Ride* ride = get_ride(peep->current_ride);
|
||||
|
||||
|
@ -4225,7 +4177,7 @@ static void peep_update_ride_prepare_for_exit(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x0069374F
|
||||
*/
|
||||
void rct_peep::UpdateRideApproachExit()
|
||||
void Guest::UpdateRideApproachExit()
|
||||
{
|
||||
int16_t actionX, actionY, xy_distance;
|
||||
if (UpdateAction(&actionX, &actionY, &xy_distance))
|
||||
|
@ -4243,7 +4195,7 @@ void rct_peep::UpdateRideApproachExit()
|
|||
*
|
||||
* rct2: 0x0069382E
|
||||
*/
|
||||
void rct_peep::UpdateRideInExit()
|
||||
void Guest::UpdateRideInExit()
|
||||
{
|
||||
int16_t actionX, actionY, xy_distance;
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
@ -4282,7 +4234,7 @@ void rct_peep::UpdateRideInExit()
|
|||
*
|
||||
* rct2: 0x006926AD
|
||||
*/
|
||||
void rct_peep::UpdateRideApproachVehicleWaypoints()
|
||||
void Guest::UpdateRideApproachVehicleWaypoints()
|
||||
{
|
||||
int16_t actionX, actionY, xy_distance;
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
@ -4358,7 +4310,7 @@ void rct_peep::UpdateRideApproachVehicleWaypoints()
|
|||
*
|
||||
* rct2: 0x0069357D
|
||||
*/
|
||||
void rct_peep::UpdateRideApproachExitWaypoints()
|
||||
void Guest::UpdateRideApproachExitWaypoints()
|
||||
{
|
||||
int16_t actionX, actionY, xy_distance;
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
@ -4458,7 +4410,7 @@ void rct_peep::UpdateRideApproachExitWaypoints()
|
|||
*
|
||||
* rct2: 0x006927B3
|
||||
*/
|
||||
void rct_peep::UpdateRideApproachSpiralSlide()
|
||||
void Guest::UpdateRideApproachSpiralSlide()
|
||||
{
|
||||
int16_t actionX, actionY, xy_distance;
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
@ -4552,7 +4504,7 @@ static constexpr const CoordsXY _SpiralSlideEndWaypoint[] = {
|
|||
*
|
||||
* rct2: 0x00692D83
|
||||
*/
|
||||
void rct_peep::UpdateRideOnSpiralSlide()
|
||||
void Guest::UpdateRideOnSpiralSlide()
|
||||
{
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
||||
|
@ -4637,7 +4589,7 @@ void rct_peep::UpdateRideOnSpiralSlide()
|
|||
*
|
||||
* rct2: 0x00692C6B
|
||||
*/
|
||||
void rct_peep::UpdateRideLeaveSpiralSlide()
|
||||
void Guest::UpdateRideLeaveSpiralSlide()
|
||||
{
|
||||
// Iterates through the spiral slide waypoints until it reaches
|
||||
// waypoint 0. Then it readies to leave the ride by the entrance.
|
||||
|
@ -4724,7 +4676,7 @@ static constexpr const uint8_t _MazeCurrentDirectionToOpenHedge[][4] = {
|
|||
*
|
||||
* rct2: 0x00692A83
|
||||
*/
|
||||
void rct_peep::UpdateRideMazePathfinding()
|
||||
void Guest::UpdateRideMazePathfinding()
|
||||
{
|
||||
int16_t actionX, actionY, xy_distance;
|
||||
if (UpdateAction(&actionX, &actionY, &xy_distance))
|
||||
|
@ -4886,7 +4838,7 @@ void rct_peep::UpdateRideMazePathfinding()
|
|||
*
|
||||
* rct2: 0x006938D2
|
||||
*/
|
||||
void rct_peep::UpdateRideLeaveExit()
|
||||
void Guest::UpdateRideLeaveExit()
|
||||
{
|
||||
int16_t actionX, actionY, xy_distance;
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
@ -4945,7 +4897,7 @@ void rct_peep::UpdateRideLeaveExit()
|
|||
*
|
||||
* rct2: 0x0069299C
|
||||
*/
|
||||
void rct_peep::UpdateRideShopApproach()
|
||||
void Guest::UpdateRideShopApproach()
|
||||
{
|
||||
int16_t actionX, actionY, xy_distance;
|
||||
|
||||
|
@ -4964,7 +4916,7 @@ void rct_peep::UpdateRideShopApproach()
|
|||
*
|
||||
* rct2: 0x006929BB
|
||||
*/
|
||||
void rct_peep::UpdateRideShopInteract()
|
||||
void Guest::UpdateRideShopInteract()
|
||||
{
|
||||
const int16_t tileCenterX = next_x + 16;
|
||||
const int16_t tileCenterY = next_y + 16;
|
||||
|
@ -5017,7 +4969,7 @@ void rct_peep::UpdateRideShopInteract()
|
|||
*
|
||||
* rct2: 0x00692935
|
||||
*/
|
||||
void rct_peep::UpdateRideShopLeave()
|
||||
void Guest::UpdateRideShopLeave()
|
||||
{
|
||||
int16_t actionX, actionY, xy_distance;
|
||||
|
||||
|
@ -5044,11 +4996,55 @@ void rct_peep::UpdateRideShopLeave()
|
|||
ride_update_satisfaction(ride, happiness / 64);
|
||||
}
|
||||
|
||||
void Guest::UpdateGuest()
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case PEEP_STATE_QUEUING_FRONT:
|
||||
UpdateRide();
|
||||
break;
|
||||
case PEEP_STATE_LEAVING_RIDE:
|
||||
UpdateRide();
|
||||
break;
|
||||
case PEEP_STATE_WALKING:
|
||||
UpdateWalking();
|
||||
break;
|
||||
case PEEP_STATE_QUEUING:
|
||||
UpdateQueuing();
|
||||
break;
|
||||
case PEEP_STATE_ENTERING_RIDE:
|
||||
UpdateRide();
|
||||
break;
|
||||
case PEEP_STATE_SITTING:
|
||||
UpdateSitting();
|
||||
break;
|
||||
case PEEP_STATE_ENTERING_PARK:
|
||||
UpdateEnteringPark();
|
||||
break;
|
||||
case PEEP_STATE_LEAVING_PARK:
|
||||
UpdateLeavingPark();
|
||||
break;
|
||||
case PEEP_STATE_BUYING:
|
||||
UpdateBuying();
|
||||
break;
|
||||
case PEEP_STATE_WATCHING:
|
||||
UpdateWatching();
|
||||
break;
|
||||
case PEEP_STATE_USING_BIN:
|
||||
UpdateUsingBin();
|
||||
break;
|
||||
default:
|
||||
// TODO reset to default state
|
||||
assert(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x691A30
|
||||
* Used by entering_ride and queueing_front */
|
||||
void rct_peep::UpdateRide()
|
||||
void Guest::UpdateRide()
|
||||
{
|
||||
next_flags &= ~PEEP_NEXT_FLAG_IS_SLOPED;
|
||||
|
||||
|
@ -5121,14 +5117,14 @@ void rct_peep::UpdateRide()
|
|||
}
|
||||
}
|
||||
|
||||
static void peep_update_walking_break_scenery(rct_peep* peep);
|
||||
static bool peep_find_ride_to_look_at(rct_peep* peep, uint8_t edge, uint8_t* rideToView, uint8_t* rideSeatToView);
|
||||
static void peep_update_walking_break_scenery(Peep* peep);
|
||||
static bool peep_find_ride_to_look_at(Peep* peep, uint8_t edge, uint8_t* rideToView, uint8_t* rideSeatToView);
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x0069030A
|
||||
*/
|
||||
void rct_peep::UpdateWalking()
|
||||
void Guest::UpdateWalking()
|
||||
{
|
||||
if (!CheckForPath())
|
||||
return;
|
||||
|
@ -5417,7 +5413,7 @@ void rct_peep::UpdateWalking()
|
|||
*
|
||||
* rct2: 0x69185D
|
||||
*/
|
||||
void rct_peep::UpdateQueuing()
|
||||
void Guest::UpdateQueuing()
|
||||
{
|
||||
if (!CheckForPath())
|
||||
{
|
||||
|
@ -5442,7 +5438,7 @@ void rct_peep::UpdateQueuing()
|
|||
// first check if the next in queue is actually nearby
|
||||
// if they are not then it's safe to assume that this is
|
||||
// the front of the queue.
|
||||
rct_peep* next_peep = GET_PEEP(next_in_queue);
|
||||
Peep* next_peep = GET_PEEP(next_in_queue);
|
||||
if (abs(next_peep->x - x) < 32 && abs(next_peep->y - y) < 32)
|
||||
{
|
||||
is_front = false;
|
||||
|
@ -5543,7 +5539,7 @@ void rct_peep::UpdateQueuing()
|
|||
/**
|
||||
* rct2: 0x691451
|
||||
*/
|
||||
void rct_peep::UpdateEnteringPark()
|
||||
void Guest::UpdateEnteringPark()
|
||||
{
|
||||
if (var_37 != 1)
|
||||
{
|
||||
|
@ -5580,7 +5576,7 @@ void rct_peep::UpdateEnteringPark()
|
|||
*
|
||||
* rct2: 0x6914CD
|
||||
*/
|
||||
void rct_peep::UpdateLeavingPark()
|
||||
void Guest::UpdateLeavingPark()
|
||||
{
|
||||
if (var_37 != 0)
|
||||
{
|
||||
|
@ -5622,7 +5618,7 @@ void rct_peep::UpdateLeavingPark()
|
|||
*
|
||||
* rct2: 0x6916D6
|
||||
*/
|
||||
void rct_peep::UpdateWatching()
|
||||
void Guest::UpdateWatching()
|
||||
{
|
||||
if (sub_state == 0)
|
||||
{
|
||||
|
@ -5724,7 +5720,7 @@ void rct_peep::UpdateWatching()
|
|||
*
|
||||
* rct2: 0x00691089
|
||||
*/
|
||||
void rct_peep::UpdateUsingBin()
|
||||
void Guest::UpdateUsingBin()
|
||||
{
|
||||
switch (sub_state)
|
||||
{
|
||||
|
@ -5882,7 +5878,7 @@ void rct_peep::UpdateUsingBin()
|
|||
}
|
||||
|
||||
/* Simplifies 0x690582. Returns true if should find bench*/
|
||||
bool rct_peep::ShouldFindBench()
|
||||
bool Guest::ShouldFindBench()
|
||||
{
|
||||
if (peep_flags & PEEP_FLAGS_LEAVING_PARK)
|
||||
{
|
||||
|
@ -5918,7 +5914,7 @@ bool rct_peep::ShouldFindBench()
|
|||
* rct2: 0x00690582
|
||||
* Returns true when the guest wants to sit down and has found a bench to sit on
|
||||
*/
|
||||
bool rct_peep::UpdateWalkingFindBench()
|
||||
bool Guest::UpdateWalkingFindBench()
|
||||
{
|
||||
if (!ShouldFindBench())
|
||||
return false;
|
||||
|
@ -6009,7 +6005,7 @@ bool rct_peep::UpdateWalkingFindBench()
|
|||
return true;
|
||||
}
|
||||
|
||||
bool rct_peep::UpdateWalkingFindBin()
|
||||
bool Guest::UpdateWalkingFindBin()
|
||||
{
|
||||
auto peep = this;
|
||||
if (!peep->HasEmptyContainer())
|
||||
|
@ -6095,7 +6091,7 @@ bool rct_peep::UpdateWalkingFindBin()
|
|||
*
|
||||
* rct2: 0x00690848
|
||||
*/
|
||||
static void peep_update_walking_break_scenery(rct_peep* peep)
|
||||
static void peep_update_walking_break_scenery(Peep* peep)
|
||||
{
|
||||
if (gCheatsDisableVandalism)
|
||||
return;
|
||||
|
@ -6167,7 +6163,7 @@ static void peep_update_walking_break_scenery(rct_peep* peep)
|
|||
return;
|
||||
}
|
||||
|
||||
rct_peep* inner_peep;
|
||||
Peep* inner_peep;
|
||||
uint16_t sprite_index;
|
||||
|
||||
FOR_ALL_STAFF (sprite_index, inner_peep)
|
||||
|
@ -6252,7 +6248,7 @@ static bool peep_should_watch_ride(TileElement* tileElement)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool loc_690FD0(rct_peep* peep, uint8_t* rideToView, uint8_t* rideSeatToView, TileElement* tileElement)
|
||||
bool loc_690FD0(Peep* peep, uint8_t* rideToView, uint8_t* rideSeatToView, TileElement* tileElement)
|
||||
{
|
||||
Ride* ride = get_ride(tileElement->AsTrack()->GetRideIndex());
|
||||
|
||||
|
@ -6297,7 +6293,7 @@ bool loc_690FD0(rct_peep* peep, uint8_t* rideToView, uint8_t* rideSeatToView, Ti
|
|||
* @param[out] rideSeatToView (ch)
|
||||
* @return !CF
|
||||
*/
|
||||
static bool peep_find_ride_to_look_at(rct_peep* peep, uint8_t edge, uint8_t* rideToView, uint8_t* rideSeatToView)
|
||||
static bool peep_find_ride_to_look_at(Peep* peep, uint8_t edge, uint8_t* rideToView, uint8_t* rideSeatToView)
|
||||
{
|
||||
TileElement *tileElement, *surfaceElement;
|
||||
|
||||
|
@ -6638,7 +6634,7 @@ static bool peep_find_ride_to_look_at(rct_peep* peep, uint8_t edge, uint8_t* rid
|
|||
}
|
||||
|
||||
/* Part of 0x0069B8CC rct2: 0x0069BC31 */
|
||||
void rct_peep::SetSpriteType(PeepSpriteType new_sprite_type)
|
||||
void Guest::SetSpriteType(PeepSpriteType new_sprite_type)
|
||||
{
|
||||
if (sprite_type == new_sprite_type)
|
||||
return;
|
||||
|
@ -6722,7 +6718,7 @@ static item_pref_t item_order_preference[] = {
|
|||
*
|
||||
* rct2: 0x0069B8CC
|
||||
*/
|
||||
void rct_peep::UpdateSpriteType()
|
||||
void Guest::UpdateSpriteType()
|
||||
{
|
||||
if (sprite_type == PEEP_SPRITE_TYPE_BALLOON && (scenario_rand() & 0xFFFF) <= 327)
|
||||
{
|
||||
|
@ -6818,3 +6814,8 @@ void rct_peep::UpdateSpriteType()
|
|||
|
||||
SetSpriteType(PEEP_SPRITE_TYPE_NORMAL);
|
||||
}
|
||||
|
||||
bool Guest::HeadingForRideOrParkExit() const
|
||||
{
|
||||
return (peep_flags & PEEP_FLAGS_LEAVING_PARK) || (guest_heading_to_ride_id != 0xFF);
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ static int8_t _peepPathFindMaxJunctions;
|
|||
static int32_t _peepPathFindTilesChecked;
|
||||
static uint8_t _peepPathFindFewestNumSteps;
|
||||
|
||||
static int32_t guest_surface_path_finding(rct_peep* peep);
|
||||
static int32_t guest_surface_path_finding(Peep* peep);
|
||||
|
||||
/* A junction history for the peep pathfinding heuristic search
|
||||
* The magic number 16 is the largest value returned by
|
||||
|
@ -104,7 +104,7 @@ static int32_t path_get_permitted_edges(TileElement* tileElement)
|
|||
*
|
||||
* rct2: 0x0069524E
|
||||
*/
|
||||
static int32_t peep_move_one_tile(uint8_t direction, rct_peep* peep)
|
||||
static int32_t peep_move_one_tile(uint8_t direction, Peep* peep)
|
||||
{
|
||||
assert(direction <= 3);
|
||||
int16_t x = peep->next_x;
|
||||
|
@ -133,7 +133,7 @@ static int32_t peep_move_one_tile(uint8_t direction, rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x00694C41
|
||||
*/
|
||||
static int32_t guest_surface_path_finding(rct_peep* peep)
|
||||
static int32_t guest_surface_path_finding(Peep* peep)
|
||||
{
|
||||
int16_t x = peep->next_x;
|
||||
int16_t y = peep->next_y;
|
||||
|
@ -411,7 +411,7 @@ static uint8_t footpath_element_destination_in_direction(
|
|||
*
|
||||
* rct2: 0x00695225
|
||||
*/
|
||||
static int32_t guest_path_find_aimless(rct_peep* peep, uint8_t edges)
|
||||
static int32_t guest_path_find_aimless(Peep* peep, uint8_t edges)
|
||||
{
|
||||
if (scenario_rand() & 1)
|
||||
{
|
||||
|
@ -437,7 +437,7 @@ static int32_t guest_path_find_aimless(rct_peep* peep, uint8_t edges)
|
|||
*
|
||||
* rct2: 0x0069A60A
|
||||
*/
|
||||
static uint8_t peep_pathfind_get_max_number_junctions(rct_peep* peep)
|
||||
static uint8_t peep_pathfind_get_max_number_junctions(Peep* peep)
|
||||
{
|
||||
if (peep->type == PEEP_TYPE_STAFF)
|
||||
return 8;
|
||||
|
@ -582,7 +582,7 @@ static bool path_is_thin_junction(TileElement* path, TileCoordsXYZ loc)
|
|||
* rct2: 0x0069A997
|
||||
*/
|
||||
static void peep_pathfind_heuristic_search(
|
||||
TileCoordsXYZ loc, rct_peep* peep, TileElement* currentTileElement, bool inPatrolArea, uint8_t counter, uint16_t* endScore,
|
||||
TileCoordsXYZ loc, Peep* peep, TileElement* currentTileElement, bool inPatrolArea, uint8_t counter, uint16_t* endScore,
|
||||
int32_t test_edge, uint8_t* endJunctions, TileCoordsXYZ junctionList[16], uint8_t directionList[16], TileCoordsXYZ* endXYZ,
|
||||
uint8_t* endSteps)
|
||||
{
|
||||
|
@ -1157,7 +1157,7 @@ static void peep_pathfind_heuristic_search(
|
|||
*
|
||||
* rct2: 0x0069A5F0
|
||||
*/
|
||||
int32_t peep_pathfind_choose_direction(TileCoordsXYZ loc, rct_peep* peep)
|
||||
int32_t peep_pathfind_choose_direction(TileCoordsXYZ loc, Peep* peep)
|
||||
{
|
||||
// The max number of thin junctions searched - a per-search-path limit.
|
||||
_peepPathFindMaxJunctions = peep_pathfind_get_max_number_junctions(peep);
|
||||
|
@ -1556,7 +1556,7 @@ static uint8_t get_nearest_park_entrance_index(uint16_t x, uint16_t y)
|
|||
*
|
||||
* rct2: 0x006952C0
|
||||
*/
|
||||
static int32_t guest_path_find_entering_park(rct_peep* peep, [[maybe_unused]] TileElement* tile_element, uint8_t edges)
|
||||
static int32_t guest_path_find_entering_park(Peep* peep, [[maybe_unused]] TileElement* tile_element, uint8_t edges)
|
||||
{
|
||||
// Send peeps to the nearest park entrance.
|
||||
uint8_t chosenEntrance = get_nearest_park_entrance_index(peep->next_x, peep->next_y);
|
||||
|
@ -1609,7 +1609,7 @@ static uint8_t get_nearest_peep_spawn_index(uint16_t x, uint16_t y)
|
|||
*
|
||||
* rct2: 0x0069536C
|
||||
*/
|
||||
static int32_t guest_path_find_leaving_park(rct_peep* peep, [[maybe_unused]] TileElement* tile_element, uint8_t edges)
|
||||
static int32_t guest_path_find_leaving_park(Peep* peep, [[maybe_unused]] TileElement* tile_element, uint8_t edges)
|
||||
{
|
||||
// Send peeps to the nearest spawn point.
|
||||
uint8_t chosenSpawn = get_nearest_peep_spawn_index(peep->next_x, peep->next_y);
|
||||
|
@ -1644,7 +1644,7 @@ static int32_t guest_path_find_leaving_park(rct_peep* peep, [[maybe_unused]] Til
|
|||
*
|
||||
* rct2: 0x00695161
|
||||
*/
|
||||
static int32_t guest_path_find_park_entrance(rct_peep* peep, [[maybe_unused]] TileElement* tile_element, uint8_t edges)
|
||||
static int32_t guest_path_find_park_entrance(Peep* peep, [[maybe_unused]] TileElement* tile_element, uint8_t edges)
|
||||
{
|
||||
// If entrance no longer exists, choose a new one
|
||||
if ((peep->peep_flags & PEEP_FLAGS_PARK_ENTRANCE_CHOSEN) && peep->current_ride >= gParkEntrances.size())
|
||||
|
@ -1846,7 +1846,7 @@ static void get_ride_queue_end(TileCoordsXYZ& loc)
|
|||
*
|
||||
* rct2: 0x00694C35
|
||||
*/
|
||||
int32_t guest_path_finding(rct_peep* peep)
|
||||
int32_t guest_path_finding(Guest* peep)
|
||||
{
|
||||
// int16_t x, y, z;
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -528,7 +528,10 @@ struct rct_peep_thought
|
|||
uint8_t fresh_timeout; // 3 updates every tick
|
||||
};
|
||||
|
||||
struct rct_peep : rct_sprite_common
|
||||
struct Guest;
|
||||
struct Staff;
|
||||
|
||||
struct Peep : rct_sprite_common
|
||||
{
|
||||
rct_string_id name_string_idx; // 0x22
|
||||
uint16_t next_x; // 0x24
|
||||
|
@ -686,6 +689,9 @@ struct rct_peep : rct_sprite_common
|
|||
uint32_t item_standard_flags; // 0xFC
|
||||
|
||||
public: // Peep
|
||||
Guest* AsGuest();
|
||||
Staff* AsStaff();
|
||||
|
||||
void Update();
|
||||
bool UpdateAction(int16_t* actionX, int16_t* actionY, int16_t* xy_distance);
|
||||
bool UpdateAction();
|
||||
|
@ -703,30 +709,66 @@ public: // Peep
|
|||
void Pickup();
|
||||
void PickupAbort(int32_t old_x);
|
||||
bool Place(TileCoordsXYZ location, bool apply);
|
||||
|
||||
public: // Guest
|
||||
void Tick128UpdateGuest(int32_t index);
|
||||
void RemoveFromQueue();
|
||||
void RemoveFromRide();
|
||||
|
||||
// TODO: Make these private again when done refactoring
|
||||
public: // Peep
|
||||
bool CheckForPath();
|
||||
void PerformNextAction(uint8_t& pathing_result);
|
||||
void PerformNextAction(uint8_t& pathing_result, TileElement*& tile_result);
|
||||
int32_t GetZOnSlope(int32_t tile_x, int32_t tile_y);
|
||||
void SwitchNextActionSpriteType();
|
||||
PeepActionSpriteType GetActionSpriteType();
|
||||
|
||||
private:
|
||||
void UpdateFalling();
|
||||
void Update1();
|
||||
void UpdatePicked();
|
||||
};
|
||||
|
||||
struct Guest : Peep
|
||||
{
|
||||
public:
|
||||
void UpdateGuest();
|
||||
void Tick128UpdateGuest(int32_t index);
|
||||
bool HasItem(int32_t peepItem) const;
|
||||
bool HasFood() const;
|
||||
bool HasDrink() const;
|
||||
bool HasEmptyContainer() const;
|
||||
void OnEnterRide(ride_id_t rideIndex);
|
||||
void OnExitRide(ride_id_t rideIndex);
|
||||
void RemoveFromRide();
|
||||
void UpdateSpriteType();
|
||||
bool HeadingForRideOrParkExit() const;
|
||||
void StopPurchaseThought(uint8_t ride_type);
|
||||
void TryGetUpFromSitting();
|
||||
void ChoseNotToGoOnRide(Ride* ride, bool peepAtRide, bool updateLastRide);
|
||||
void PickRideToGoOn();
|
||||
void ReadMap();
|
||||
bool ShouldGoOnRide(Ride* ride, int32_t entranceNum, bool atQueue, bool thinking);
|
||||
bool ShouldGoToShop(Ride* ride, bool peepAtShop);
|
||||
bool ShouldFindBench();
|
||||
bool UpdateWalkingFindBench();
|
||||
bool UpdateWalkingFindBin();
|
||||
void SpendMoney(money16& peep_expend_type, money32 amount);
|
||||
void SpendMoney(money32 amount);
|
||||
void SetHasRidden(Ride* ride);
|
||||
bool HasRidden(Ride* ride) const;
|
||||
void SetHasRiddenRideType(int32_t rideType);
|
||||
bool HasRiddenRideType(int32_t rideType) const;
|
||||
int32_t HasFoodStandardFlag() const;
|
||||
int32_t HasFoodExtraFlag() const;
|
||||
bool HasDrinkStandardFlag() const;
|
||||
bool HasDrinkExtraFlag() const;
|
||||
int32_t HasEmptyContainerStandardFlag() const;
|
||||
int32_t HasEmptyContainerExtraFlag() const;
|
||||
void CheckIfLost();
|
||||
void CheckCantFindRide();
|
||||
void CheckCantFindExit();
|
||||
bool DecideAndBuyItem(Ride* ride, int32_t shopItem, money32 price);
|
||||
void SetSpriteType(PeepSpriteType new_sprite_type);
|
||||
|
||||
public: // Staff
|
||||
void Tick128UpdateStaff();
|
||||
bool IsMechanic() const;
|
||||
|
||||
private: // Peep update
|
||||
void UpdateFalling();
|
||||
void Update1();
|
||||
void UpdatePicked();
|
||||
|
||||
private: // Guest update
|
||||
private:
|
||||
void UpdateRide();
|
||||
void UpdateOnRide(){}; // TODO
|
||||
void UpdateWalking();
|
||||
|
@ -757,7 +799,18 @@ private: // Guest update
|
|||
void UpdateRideShopInteract();
|
||||
void UpdateRideShopLeave();
|
||||
|
||||
private: // Staff update
|
||||
Ride* FindBestRideToGoOn();
|
||||
std::bitset<MAX_RIDES> FindRidesToGoOn();
|
||||
};
|
||||
|
||||
struct Staff : Peep
|
||||
{
|
||||
public:
|
||||
void UpdateStaff(uint32_t stepsToTake);
|
||||
void Tick128UpdateStaff();
|
||||
bool IsMechanic() const;
|
||||
|
||||
private:
|
||||
void UpdatePatrolling();
|
||||
void UpdateMowing();
|
||||
void UpdateSweeping();
|
||||
|
@ -779,48 +832,6 @@ private: // Staff update
|
|||
bool UpdateFixingLeaveByEntranceExit(bool firstRun, Ride* ride);
|
||||
void UpdateRideInspected(ride_id_t rideIndex);
|
||||
void UpdateHeadingToInspect();
|
||||
|
||||
// TODO: Make these private again when done refactoring
|
||||
public: // Peep
|
||||
bool CheckForPath();
|
||||
void PerformNextAction(uint8_t& pathing_result);
|
||||
void PerformNextAction(uint8_t& pathing_result, TileElement*& tile_result);
|
||||
int32_t GetZOnSlope(int32_t tile_x, int32_t tile_y);
|
||||
void SwitchNextActionSpriteType();
|
||||
PeepActionSpriteType GetActionSpriteType();
|
||||
|
||||
public: // Guest
|
||||
void StopPurchaseThought(uint8_t ride_type);
|
||||
void TryGetUpFromSitting();
|
||||
void ChoseNotToGoOnRide(Ride* ride, bool peepAtRide, bool updateLastRide);
|
||||
void PickRideToGoOn();
|
||||
void ReadMap();
|
||||
bool ShouldGoOnRide(Ride* ride, int32_t entranceNum, bool atQueue, bool thinking);
|
||||
bool ShouldGoToShop(Ride* ride, bool peepAtShop);
|
||||
bool ShouldFindBench();
|
||||
bool UpdateWalkingFindBench();
|
||||
bool UpdateWalkingFindBin();
|
||||
void SpendMoney(money16& peep_expend_type, money32 amount);
|
||||
void SpendMoney(money32 amount);
|
||||
void SetHasRidden(Ride* ride);
|
||||
bool HasRidden(Ride* ride) const;
|
||||
void SetHasRiddenRideType(int32_t rideType);
|
||||
bool HasRiddenRideType(int32_t rideType) const;
|
||||
int32_t HasFoodStandardFlag() const;
|
||||
int32_t HasFoodExtraFlag() const;
|
||||
bool HasDrinkStandardFlag() const;
|
||||
bool HasDrinkExtraFlag() const;
|
||||
int32_t HasEmptyContainerStandardFlag() const;
|
||||
int32_t HasEmptyContainerExtraFlag() const;
|
||||
void CheckIfLost();
|
||||
void CheckCantFindRide();
|
||||
void CheckCantFindExit();
|
||||
bool DecideAndBuyItem(Ride* ride, int32_t shopItem, money32 price);
|
||||
void SetSpriteType(PeepSpriteType new_sprite_type);
|
||||
|
||||
private:
|
||||
Ride* FindBestRideToGoOn();
|
||||
std::bitset<MAX_RIDES> FindRidesToGoOn();
|
||||
};
|
||||
|
||||
struct rct_sprite_bounds
|
||||
|
@ -920,54 +931,54 @@ extern TileCoordsXYZ gPeepPathFindGoalPosition;
|
|||
extern bool gPeepPathFindIgnoreForeignQueues;
|
||||
extern ride_id_t gPeepPathFindQueueRideIndex;
|
||||
|
||||
rct_peep* try_get_guest(uint16_t spriteIndex);
|
||||
Peep* try_get_guest(uint16_t spriteIndex);
|
||||
int32_t peep_get_staff_count();
|
||||
bool peep_can_be_picked_up(rct_peep* peep);
|
||||
bool peep_can_be_picked_up(Peep* peep);
|
||||
void peep_update_all();
|
||||
void peep_problem_warnings_update();
|
||||
void peep_stop_crowd_noise();
|
||||
void peep_update_crowd_noise();
|
||||
void peep_update_days_in_queue();
|
||||
void peep_applause();
|
||||
rct_peep* peep_generate(int32_t x, int32_t y, int32_t z);
|
||||
void get_arguments_from_action(rct_peep* peep, uint32_t* argument_1, uint32_t* argument_2);
|
||||
Peep* peep_generate(int32_t x, int32_t y, int32_t z);
|
||||
void get_arguments_from_action(Peep* peep, uint32_t* argument_1, uint32_t* argument_2);
|
||||
void peep_thought_set_format_args(rct_peep_thought* thought);
|
||||
int32_t get_peep_face_sprite_small(rct_peep* peep);
|
||||
int32_t get_peep_face_sprite_large(rct_peep* peep);
|
||||
int32_t peep_check_easteregg_name(int32_t index, rct_peep* peep);
|
||||
int32_t peep_get_easteregg_name_id(rct_peep* peep);
|
||||
int32_t get_peep_face_sprite_small(Peep* peep);
|
||||
int32_t get_peep_face_sprite_large(Peep* peep);
|
||||
int32_t peep_check_easteregg_name(int32_t index, Peep* peep);
|
||||
int32_t peep_get_easteregg_name_id(Peep* peep);
|
||||
bool peep_pickup_command(uint32_t peepnum, int32_t x, int32_t y, int32_t z, int32_t action, bool apply);
|
||||
void game_command_pickup_guest(
|
||||
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
void peep_sprite_remove(rct_peep* peep);
|
||||
void peep_sprite_remove(Peep* peep);
|
||||
|
||||
void peep_window_state_update(rct_peep* peep);
|
||||
void peep_decrement_num_riders(rct_peep* peep);
|
||||
void peep_window_state_update(Peep* peep);
|
||||
void peep_decrement_num_riders(Peep* peep);
|
||||
/**
|
||||
* rct2: 0x699F5A
|
||||
* al:thought_type
|
||||
* ah:thought_arguments
|
||||
* esi: peep
|
||||
*/
|
||||
void peep_insert_new_thought(rct_peep* peep, PeepThoughtType thought_type, uint8_t thought_arguments);
|
||||
void peep_insert_new_thought(Peep* peep, PeepThoughtType thought_type, uint8_t thought_arguments);
|
||||
|
||||
void peep_set_map_tooltip(rct_peep* peep);
|
||||
void peep_set_map_tooltip(Peep* peep);
|
||||
|
||||
void SwitchToSpecialSprite(rct_peep* peep, uint8_t special_sprite_id);
|
||||
void peep_update_name_sort(rct_peep* peep);
|
||||
void SwitchToSpecialSprite(Peep* peep, uint8_t special_sprite_id);
|
||||
void peep_update_name_sort(Peep* peep);
|
||||
void peep_sort();
|
||||
void peep_update_names(bool realNames);
|
||||
|
||||
void guest_set_name(uint16_t spriteIndex, const char* name);
|
||||
void peep_handle_easteregg_name(rct_peep* peep);
|
||||
void peep_handle_easteregg_name(Peep* peep);
|
||||
void game_command_set_guest_name(
|
||||
int32_t* eax, int32_t* ebx, int32_t* ecx, int32_t* edx, int32_t* esi, int32_t* edi, int32_t* ebp);
|
||||
|
||||
int32_t peep_pathfind_choose_direction(TileCoordsXYZ loc, rct_peep* peep);
|
||||
void peep_reset_pathfind_goal(rct_peep* peep);
|
||||
int32_t peep_pathfind_choose_direction(TileCoordsXYZ loc, Peep* peep);
|
||||
void peep_reset_pathfind_goal(Peep* peep);
|
||||
|
||||
bool is_valid_path_z_and_direction(TileElement* tileElement, int32_t currentZ, int32_t currentDirection);
|
||||
int32_t guest_path_finding(rct_peep* peep);
|
||||
int32_t guest_path_finding(Guest* peep);
|
||||
|
||||
#if defined(DEBUG_LEVEL_1) && DEBUG_LEVEL_1
|
||||
# define PATHFIND_DEBUG \
|
||||
|
@ -979,7 +990,7 @@ extern utf8 gPathFindDebugPeepName[256]; // Use to put the peep name in the log
|
|||
|
||||
// The following calls set the above two variables for a peep.
|
||||
// ... when PATHFIND_DEBUG is 1 (nonzero)
|
||||
void pathfind_logging_enable(rct_peep* peep);
|
||||
void pathfind_logging_enable(Peep* peep);
|
||||
void pathfind_logging_disable();
|
||||
#endif // defined(DEBUG_LEVEL_1) && DEBUG_LEVEL_1
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ void staff_reset_modes()
|
|||
staff_update_greyed_patrol_areas();
|
||||
}
|
||||
|
||||
static inline void staff_autoposition_new_staff_member(rct_peep* newPeep)
|
||||
static inline void staff_autoposition_new_staff_member(Peep* newPeep)
|
||||
{
|
||||
// Find a location to place new staff member
|
||||
|
||||
|
@ -90,7 +90,7 @@ static inline void staff_autoposition_new_staff_member(rct_peep* newPeep)
|
|||
int16_t x, y, z;
|
||||
uint32_t count = 0;
|
||||
uint16_t sprite_index;
|
||||
rct_peep* guest = nullptr;
|
||||
Peep* guest = nullptr;
|
||||
TileElement* guest_tile = nullptr;
|
||||
|
||||
// Count number of walking guests
|
||||
|
@ -209,7 +209,7 @@ static money32 staff_hire_new_staff_member(
|
|||
{
|
||||
int32_t newStaffId = i;
|
||||
const rct_sprite_bounds* spriteBounds;
|
||||
rct_peep* newPeep = &(create_sprite(flags)->peep);
|
||||
Peep* newPeep = &(create_sprite(flags)->peep);
|
||||
|
||||
if (newPeep == nullptr)
|
||||
{
|
||||
|
@ -249,7 +249,7 @@ static money32 staff_hire_new_staff_member(
|
|||
newPeep->staff_orders = 0;
|
||||
|
||||
uint16_t idSearchSpriteIndex;
|
||||
rct_peep* idSearchPeep;
|
||||
Peep* idSearchPeep;
|
||||
|
||||
// We search for the first available id for a given staff type
|
||||
uint32_t newStaffIndex = 0;
|
||||
|
@ -387,7 +387,7 @@ void game_command_set_staff_patrol(
|
|||
log_warning("Invalid type of sprite %u for game command", sprite_id);
|
||||
return;
|
||||
}
|
||||
rct_peep* peep = &sprite->peep;
|
||||
Peep* peep = &sprite->peep;
|
||||
int32_t patrolOffset = peep->staff_id * STAFF_PATROL_AREA_SIZE;
|
||||
|
||||
staff_toggle_patrol_area(peep->staff_id, x, y);
|
||||
|
@ -435,7 +435,7 @@ void game_command_fire_staff_member(
|
|||
*ebx = MONEY32_UNDEFINED;
|
||||
return;
|
||||
}
|
||||
rct_peep* peep = &get_sprite(sprite_id)->peep;
|
||||
Peep* peep = &get_sprite(sprite_id)->peep;
|
||||
if (peep->sprite_identifier != SPRITE_IDENTIFIER_PEEP || peep->type != PEEP_TYPE_STAFF)
|
||||
{
|
||||
log_warning(
|
||||
|
@ -477,7 +477,7 @@ uint16_t hire_new_staff_member(uint8_t staffType)
|
|||
|
||||
if ((staffType == STAFF_TYPE_HANDYMAN) && gConfigGeneral.handymen_mow_default)
|
||||
{
|
||||
rct_peep* newPeep = GET_PEEP(new_sprite_index);
|
||||
Peep* newPeep = GET_PEEP(new_sprite_index);
|
||||
uint8_t newOrders = newPeep->staff_orders | STAFF_ORDERS_MOWING;
|
||||
|
||||
auto staffSetOrdersAction = StaffSetOrdersAction(new_sprite_index, newOrders);
|
||||
|
@ -493,7 +493,7 @@ uint16_t hire_new_staff_member(uint8_t staffType)
|
|||
*/
|
||||
void staff_update_greyed_patrol_areas()
|
||||
{
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
for (int32_t staff_type = 0; staff_type < STAFF_TYPE_COUNT; ++staff_type)
|
||||
{
|
||||
|
@ -520,7 +520,7 @@ void staff_update_greyed_patrol_areas()
|
|||
}
|
||||
}
|
||||
|
||||
static bool staff_is_location_in_patrol_area(rct_peep* peep, int32_t x, int32_t y)
|
||||
static bool staff_is_location_in_patrol_area(Peep* peep, int32_t x, int32_t y)
|
||||
{
|
||||
// Patrol quads are stored in a bit map (8 patrol quads per byte)
|
||||
// Each patrol quad is 4x4
|
||||
|
@ -532,7 +532,7 @@ static bool staff_is_location_in_patrol_area(rct_peep* peep, int32_t x, int32_t
|
|||
*
|
||||
* rct2: 0x006C0905
|
||||
*/
|
||||
bool staff_is_location_in_patrol(rct_peep* staff, int32_t x, int32_t y)
|
||||
bool staff_is_location_in_patrol(Peep* staff, int32_t x, int32_t y)
|
||||
{
|
||||
// Check if location is in the park
|
||||
if (!map_is_location_owned_or_has_rights(x, y))
|
||||
|
@ -545,7 +545,7 @@ bool staff_is_location_in_patrol(rct_peep* staff, int32_t x, int32_t y)
|
|||
return staff_is_location_in_patrol_area(staff, x, y);
|
||||
}
|
||||
|
||||
bool staff_is_location_on_patrol_edge(rct_peep* mechanic, int32_t x, int32_t y)
|
||||
bool staff_is_location_on_patrol_edge(Peep* mechanic, int32_t x, int32_t y)
|
||||
{
|
||||
// Check whether the location x,y is inside and on the edge of the
|
||||
// patrol zone for mechanic.
|
||||
|
@ -561,7 +561,7 @@ bool staff_is_location_on_patrol_edge(rct_peep* mechanic, int32_t x, int32_t y)
|
|||
return onZoneEdge;
|
||||
}
|
||||
|
||||
bool staff_can_ignore_wide_flag(rct_peep* staff, int32_t x, int32_t y, uint8_t z, TileElement* path)
|
||||
bool staff_can_ignore_wide_flag(Peep* staff, int32_t x, int32_t y, uint8_t z, TileElement* path)
|
||||
{
|
||||
/* Wide flags can potentially wall off parts of a staff patrol zone
|
||||
* for the heuristic search.
|
||||
|
@ -682,7 +682,7 @@ bool staff_can_ignore_wide_flag(rct_peep* staff, int32_t x, int32_t y, uint8_t z
|
|||
* rct2: 0x006C095B
|
||||
* returns 0xF if not in a valid patrol area
|
||||
*/
|
||||
static uint8_t staff_get_valid_patrol_directions(rct_peep* peep, int16_t x, int16_t y)
|
||||
static uint8_t staff_get_valid_patrol_directions(Peep* peep, int16_t x, int16_t y)
|
||||
{
|
||||
uint8_t directions = 0;
|
||||
|
||||
|
@ -721,7 +721,7 @@ static uint8_t staff_get_valid_patrol_directions(rct_peep* peep, int16_t x, int1
|
|||
void staff_reset_stats()
|
||||
{
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
FOR_ALL_STAFF (spriteIndex, peep)
|
||||
{
|
||||
|
@ -782,7 +782,7 @@ void staff_toggle_patrol_area(int32_t staffIndex, int32_t x, int32_t y)
|
|||
*
|
||||
* Returns 0xFF when no nearby litter or unpathable litter
|
||||
*/
|
||||
static uint8_t staff_handyman_direction_to_nearest_litter(rct_peep* peep)
|
||||
static uint8_t staff_handyman_direction_to_nearest_litter(Peep* peep)
|
||||
{
|
||||
uint16_t nearestLitterDist = (uint16_t)-1;
|
||||
rct_litter* nearestLitter = nullptr;
|
||||
|
@ -870,7 +870,7 @@ static uint8_t staff_handyman_direction_to_nearest_litter(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x006BF931
|
||||
*/
|
||||
static uint8_t staff_handyman_direction_to_uncut_grass(rct_peep* peep, uint8_t valid_directions)
|
||||
static uint8_t staff_handyman_direction_to_uncut_grass(Peep* peep, uint8_t valid_directions)
|
||||
{
|
||||
if (!(peep->GetNextIsSurface()))
|
||||
{
|
||||
|
@ -923,7 +923,7 @@ static uint8_t staff_handyman_direction_to_uncut_grass(rct_peep* peep, uint8_t v
|
|||
*
|
||||
* rct2: 0x006BFD9C
|
||||
*/
|
||||
static int32_t staff_handyman_direction_rand_surface(rct_peep* peep, uint8_t validDirections)
|
||||
static int32_t staff_handyman_direction_rand_surface(Peep* peep, uint8_t validDirections)
|
||||
{
|
||||
uint8_t direction = scenario_rand() & 3;
|
||||
for (int32_t i = 0; i < 4; ++i, ++direction)
|
||||
|
@ -951,7 +951,7 @@ static int32_t staff_handyman_direction_rand_surface(rct_peep* peep, uint8_t val
|
|||
*
|
||||
* rct2: 0x006BFBA8
|
||||
*/
|
||||
static bool staff_path_finding_handyman(rct_peep* peep)
|
||||
static bool staff_path_finding_handyman(Peep* peep)
|
||||
{
|
||||
peep->staff_mowing_timeout++;
|
||||
|
||||
|
@ -1042,7 +1042,7 @@ static bool staff_path_finding_handyman(rct_peep* peep)
|
|||
return false;
|
||||
}
|
||||
|
||||
static uint8_t staff_direction_surface(rct_peep* peep, uint8_t initialDirection)
|
||||
static uint8_t staff_direction_surface(Peep* peep, uint8_t initialDirection)
|
||||
{
|
||||
uint8_t direction = initialDirection;
|
||||
for (int32_t i = 0; i < 3; ++i)
|
||||
|
@ -1085,7 +1085,7 @@ static uint8_t staff_direction_surface(rct_peep* peep, uint8_t initialDirection)
|
|||
*
|
||||
* rct2: 0x006BFF45
|
||||
*/
|
||||
static uint8_t staff_mechanic_direction_surface(rct_peep* peep)
|
||||
static uint8_t staff_mechanic_direction_surface(Peep* peep)
|
||||
{
|
||||
uint8_t direction = scenario_rand() & 3;
|
||||
|
||||
|
@ -1121,7 +1121,7 @@ static uint8_t staff_mechanic_direction_surface(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x006C02D1
|
||||
*/
|
||||
static uint8_t staff_mechanic_direction_path_rand(rct_peep* peep, uint8_t pathDirections)
|
||||
static uint8_t staff_mechanic_direction_path_rand(Peep* peep, uint8_t pathDirections)
|
||||
{
|
||||
if (scenario_rand() & 1)
|
||||
{
|
||||
|
@ -1145,7 +1145,7 @@ static uint8_t staff_mechanic_direction_path_rand(rct_peep* peep, uint8_t pathDi
|
|||
*
|
||||
* rct2: 0x006C0121
|
||||
*/
|
||||
static uint8_t staff_mechanic_direction_path(rct_peep* peep, uint8_t validDirections, TileElement* pathElement)
|
||||
static uint8_t staff_mechanic_direction_path(Peep* peep, uint8_t validDirections, TileElement* pathElement)
|
||||
{
|
||||
uint8_t direction = 0xFF;
|
||||
uint8_t pathDirections = pathElement->AsPath()->GetEdges();
|
||||
|
@ -1238,7 +1238,7 @@ static uint8_t staff_mechanic_direction_path(rct_peep* peep, uint8_t validDirect
|
|||
*
|
||||
* rct2: 0x006BFF2C
|
||||
*/
|
||||
static bool staff_path_finding_mechanic(rct_peep* peep)
|
||||
static bool staff_path_finding_mechanic(Peep* peep)
|
||||
{
|
||||
uint8_t validDirections = staff_get_valid_patrol_directions(peep, peep->next_x, peep->next_y);
|
||||
uint8_t direction = 0xFF;
|
||||
|
@ -1280,7 +1280,7 @@ static bool staff_path_finding_mechanic(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x006C050B
|
||||
*/
|
||||
static uint8_t staff_direction_path(rct_peep* peep, uint8_t validDirections, TileElement* pathElement)
|
||||
static uint8_t staff_direction_path(Peep* peep, uint8_t validDirections, TileElement* pathElement)
|
||||
{
|
||||
uint8_t direction = 0xFF;
|
||||
uint8_t pathDirections = pathElement->AsPath()->GetEdges();
|
||||
|
@ -1325,7 +1325,7 @@ static uint8_t staff_direction_path(rct_peep* peep, uint8_t validDirections, Til
|
|||
*
|
||||
* rct2: 0x006C0351
|
||||
*/
|
||||
static bool staff_path_finding_misc(rct_peep* peep)
|
||||
static bool staff_path_finding_misc(Peep* peep)
|
||||
{
|
||||
uint8_t validDirections = staff_get_valid_patrol_directions(peep, peep->next_x, peep->next_y);
|
||||
|
||||
|
@ -1365,10 +1365,10 @@ static bool staff_path_finding_misc(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x006C086D
|
||||
*/
|
||||
static void staff_entertainer_update_nearby_peeps(rct_peep* peep)
|
||||
static void staff_entertainer_update_nearby_peeps(Peep* peep)
|
||||
{
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* guest;
|
||||
Peep* guest;
|
||||
|
||||
FOR_ALL_GUESTS (spriteIndex, guest)
|
||||
{
|
||||
|
@ -1411,7 +1411,7 @@ static void staff_entertainer_update_nearby_peeps(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x006C05AE
|
||||
*/
|
||||
static int32_t staff_path_finding_entertainer(rct_peep* peep)
|
||||
static int32_t staff_path_finding_entertainer(Peep* peep)
|
||||
{
|
||||
if (((scenario_rand() & 0xFFFF) <= 0x4000) && (peep->action == PEEP_ACTION_NONE_1 || peep->action == PEEP_ACTION_NONE_2))
|
||||
{
|
||||
|
@ -1433,7 +1433,7 @@ static int32_t staff_path_finding_entertainer(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x006BF926
|
||||
*/
|
||||
int32_t staff_path_finding(rct_peep* peep)
|
||||
int32_t staff_path_finding(Staff* peep)
|
||||
{
|
||||
switch (peep->staff_type)
|
||||
{
|
||||
|
@ -1552,7 +1552,7 @@ static constexpr const LocationXY16 _MowingWaypoints[] = {
|
|||
*
|
||||
* rct2: 0x006BF567
|
||||
*/
|
||||
void rct_peep::UpdateMowing()
|
||||
void Staff::UpdateMowing()
|
||||
{
|
||||
if (!CheckForPath())
|
||||
return;
|
||||
|
@ -1605,7 +1605,7 @@ void rct_peep::UpdateMowing()
|
|||
*
|
||||
* rct2: 0x006BF7E6
|
||||
*/
|
||||
void rct_peep::UpdateWatering()
|
||||
void Staff::UpdateWatering()
|
||||
{
|
||||
staff_mowing_timeout = 0;
|
||||
if (sub_state == 0)
|
||||
|
@ -1668,7 +1668,7 @@ void rct_peep::UpdateWatering()
|
|||
*
|
||||
* rct2: 0x006BF6C9
|
||||
*/
|
||||
void rct_peep::UpdateEmptyingBin()
|
||||
void Staff::UpdateEmptyingBin()
|
||||
{
|
||||
staff_mowing_timeout = 0;
|
||||
|
||||
|
@ -1750,7 +1750,7 @@ void rct_peep::UpdateEmptyingBin()
|
|||
*
|
||||
* rct2: 0x6BF641
|
||||
*/
|
||||
void rct_peep::UpdateSweeping()
|
||||
void Staff::UpdateSweeping()
|
||||
{
|
||||
staff_mowing_timeout = 0;
|
||||
if (!CheckForPath())
|
||||
|
@ -1793,7 +1793,7 @@ void rct_peep::UpdateSweeping()
|
|||
*
|
||||
* rct2: 0x006C16D7
|
||||
*/
|
||||
void rct_peep::UpdateHeadingToInspect()
|
||||
void Staff::UpdateHeadingToInspect()
|
||||
{
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
||||
|
@ -1906,7 +1906,7 @@ void rct_peep::UpdateHeadingToInspect()
|
|||
*
|
||||
* rct2: 0x006C0CB8
|
||||
*/
|
||||
void rct_peep::UpdateAnswering()
|
||||
void Staff::UpdateAnswering()
|
||||
{
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
||||
|
@ -2029,7 +2029,7 @@ static constexpr const LocationXY16 _WateringUseOffsets[] = {
|
|||
*
|
||||
* rct2: 0x006BF483
|
||||
*/
|
||||
static int32_t peep_update_patrolling_find_watering(rct_peep* peep)
|
||||
static int32_t peep_update_patrolling_find_watering(Peep* peep)
|
||||
{
|
||||
if (!(peep->staff_orders & STAFF_ORDERS_WATER_FLOWERS))
|
||||
return 0;
|
||||
|
@ -2102,7 +2102,7 @@ static int32_t peep_update_patrolling_find_watering(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x006BF3A1
|
||||
*/
|
||||
static int32_t peep_update_patrolling_find_bin(rct_peep* peep)
|
||||
static int32_t peep_update_patrolling_find_bin(Peep* peep)
|
||||
{
|
||||
if (!(peep->staff_orders & STAFF_ORDERS_EMPTY_BINS))
|
||||
return 0;
|
||||
|
@ -2165,7 +2165,7 @@ static int32_t peep_update_patrolling_find_bin(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x006BF322
|
||||
*/
|
||||
static int32_t peep_update_patrolling_find_grass(rct_peep* peep)
|
||||
static int32_t peep_update_patrolling_find_grass(Peep* peep)
|
||||
{
|
||||
if (!(peep->staff_orders & STAFF_ORDERS_MOWING))
|
||||
return 0;
|
||||
|
@ -2197,7 +2197,7 @@ static int32_t peep_update_patrolling_find_grass(rct_peep* peep)
|
|||
*
|
||||
* rct2: 0x006BF295
|
||||
*/
|
||||
static int32_t peep_update_patrolling_find_sweeping(rct_peep* peep)
|
||||
static int32_t peep_update_patrolling_find_sweeping(Peep* peep)
|
||||
{
|
||||
if (!(peep->staff_orders & STAFF_ORDERS_SWEEPING))
|
||||
return 0;
|
||||
|
@ -2227,7 +2227,7 @@ static int32_t peep_update_patrolling_find_sweeping(rct_peep* peep)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void rct_peep::Tick128UpdateStaff()
|
||||
void Staff::Tick128UpdateStaff()
|
||||
{
|
||||
if (staff_type != STAFF_TYPE_SECURITY)
|
||||
return;
|
||||
|
@ -2255,16 +2255,54 @@ void rct_peep::Tick128UpdateStaff()
|
|||
UpdateCurrentActionSpriteType();
|
||||
}
|
||||
|
||||
bool rct_peep::IsMechanic() const
|
||||
bool Staff::IsMechanic() const
|
||||
{
|
||||
return (sprite_identifier == SPRITE_IDENTIFIER_PEEP && type == PEEP_TYPE_STAFF && staff_type == STAFF_TYPE_MECHANIC);
|
||||
}
|
||||
|
||||
void Staff::UpdateStaff(uint32_t stepsToTake)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case PEEP_STATE_PATROLLING:
|
||||
UpdatePatrolling();
|
||||
break;
|
||||
case PEEP_STATE_MOWING:
|
||||
UpdateMowing();
|
||||
break;
|
||||
case PEEP_STATE_SWEEPING:
|
||||
UpdateSweeping();
|
||||
break;
|
||||
case PEEP_STATE_ANSWERING:
|
||||
UpdateAnswering();
|
||||
break;
|
||||
case PEEP_STATE_FIXING:
|
||||
UpdateFixing(stepsToTake);
|
||||
break;
|
||||
case PEEP_STATE_INSPECTING:
|
||||
UpdateFixing(stepsToTake);
|
||||
break;
|
||||
case PEEP_STATE_EMPTYING_BIN:
|
||||
UpdateEmptyingBin();
|
||||
break;
|
||||
case PEEP_STATE_WATERING:
|
||||
UpdateWatering();
|
||||
break;
|
||||
case PEEP_STATE_HEADING_TO_INSPECTION:
|
||||
UpdateHeadingToInspect();
|
||||
break;
|
||||
default:
|
||||
// TODO reset to default state
|
||||
assert(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006BF1FD
|
||||
*/
|
||||
void rct_peep::UpdatePatrolling()
|
||||
void Staff::UpdatePatrolling()
|
||||
{
|
||||
if (!CheckForPath())
|
||||
return;
|
||||
|
@ -2414,7 +2452,7 @@ static constexpr const uint32_t FixingSubstatesForBreakdown[9] = {
|
|||
* rct2: 0x006C0E8B
|
||||
* Also used by inspecting.
|
||||
*/
|
||||
void rct_peep::UpdateFixing(int32_t steps)
|
||||
void Staff::UpdateFixing(int32_t steps)
|
||||
{
|
||||
Ride* ride = get_ride(current_ride);
|
||||
|
||||
|
@ -2524,7 +2562,7 @@ void rct_peep::UpdateFixing(int32_t steps)
|
|||
* rct2: 0x006C0EEC
|
||||
* fixing sub_state: enter_station - applies to fixing all break down reasons and ride inspections.
|
||||
*/
|
||||
bool rct_peep::UpdateFixingEnterStation(Ride* ride)
|
||||
bool Staff::UpdateFixingEnterStation(Ride* ride)
|
||||
{
|
||||
ride->mechanic_status = RIDE_MECHANIC_STATUS_FIXING;
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_MAINTENANCE;
|
||||
|
@ -2537,7 +2575,7 @@ bool rct_peep::UpdateFixingEnterStation(Ride* ride)
|
|||
* fixing sub_state: move_to_broken_down_vehicle - applies to fixing all vehicle specific breakdown reasons
|
||||
* - see FixingSubstatesForBreakdown[]
|
||||
*/
|
||||
bool rct_peep::UpdateFixingMoveToBrokenDownVehicle(bool firstRun, Ride* ride)
|
||||
bool Staff::UpdateFixingMoveToBrokenDownVehicle(bool firstRun, Ride* ride)
|
||||
{
|
||||
if (!firstRun)
|
||||
{
|
||||
|
@ -2600,7 +2638,7 @@ bool rct_peep::UpdateFixingMoveToBrokenDownVehicle(bool firstRun, Ride* ride)
|
|||
* 4. doors stuck open.
|
||||
* - see FixingSubstatesForBreakdown[]
|
||||
*/
|
||||
bool rct_peep::UpdateFixingFixVehicle(bool firstRun, Ride* ride)
|
||||
bool Staff::UpdateFixingFixVehicle(bool firstRun, Ride* ride)
|
||||
{
|
||||
if (!firstRun)
|
||||
{
|
||||
|
@ -2642,7 +2680,7 @@ bool rct_peep::UpdateFixingFixVehicle(bool firstRun, Ride* ride)
|
|||
* fixing sub_state: fix_vehicle_malfunction - applies fixing to vehicle malfunction.
|
||||
* - see FixingSubstatesForBreakdown[]
|
||||
*/
|
||||
bool rct_peep::UpdateFixingFixVehicleMalfunction(bool firstRun, Ride* ride)
|
||||
bool Staff::UpdateFixingFixVehicleMalfunction(bool firstRun, Ride* ride)
|
||||
{
|
||||
if (!firstRun)
|
||||
{
|
||||
|
@ -2691,7 +2729,7 @@ static constexpr const CoordsXY _StationFixingOffsets[] = {
|
|||
* inspection.
|
||||
* - see FixingSubstatesForBreakdown[]
|
||||
*/
|
||||
bool rct_peep::UpdateFixingMoveToStationEnd(bool firstRun, Ride* ride)
|
||||
bool Staff::UpdateFixingMoveToStationEnd(bool firstRun, Ride* ride)
|
||||
{
|
||||
if (!firstRun)
|
||||
{
|
||||
|
@ -2756,7 +2794,7 @@ bool rct_peep::UpdateFixingMoveToStationEnd(bool firstRun, Ride* ride)
|
|||
* inspection.
|
||||
* - see FixingSubstatesForBreakdown[]
|
||||
*/
|
||||
bool rct_peep::UpdateFixingFixStationEnd(bool firstRun)
|
||||
bool Staff::UpdateFixingFixStationEnd(bool firstRun)
|
||||
{
|
||||
if (!firstRun)
|
||||
{
|
||||
|
@ -2787,7 +2825,7 @@ bool rct_peep::UpdateFixingFixStationEnd(bool firstRun)
|
|||
* 3. applies to inspection.
|
||||
* - see FixingSubstatesForBreakdown[]
|
||||
*/
|
||||
bool rct_peep::UpdateFixingMoveToStationStart(bool firstRun, Ride* ride)
|
||||
bool Staff::UpdateFixingMoveToStationStart(bool firstRun, Ride* ride)
|
||||
{
|
||||
if (!firstRun)
|
||||
{
|
||||
|
@ -2873,7 +2911,7 @@ bool rct_peep::UpdateFixingMoveToStationStart(bool firstRun, Ride* ride)
|
|||
* 2. applies to inspection.
|
||||
* - see FixingSubstatesForBreakdown[]
|
||||
*/
|
||||
bool rct_peep::UpdateFixingFixStationStart(bool firstRun, Ride* ride)
|
||||
bool Staff::UpdateFixingFixStationStart(bool firstRun, Ride* ride)
|
||||
{
|
||||
if (!firstRun)
|
||||
{
|
||||
|
@ -2907,7 +2945,7 @@ bool rct_peep::UpdateFixingFixStationStart(bool firstRun, Ride* ride)
|
|||
* fixing sub_state: fix_station_brakes - applies to fixing brake failure
|
||||
* - see FixingSubstatesForBreakdown[]
|
||||
*/
|
||||
bool rct_peep::UpdateFixingFixStationBrakes(bool firstRun, Ride* ride)
|
||||
bool Staff::UpdateFixingFixStationBrakes(bool firstRun, Ride* ride)
|
||||
{
|
||||
if (!firstRun)
|
||||
{
|
||||
|
@ -2946,7 +2984,7 @@ bool rct_peep::UpdateFixingFixStationBrakes(bool firstRun, Ride* ride)
|
|||
* fixing sub_state: move_to_station_exit - applies to fixing all failures & inspections
|
||||
* - see FixingSubstatesForBreakdown[]
|
||||
*/
|
||||
bool rct_peep::UpdateFixingMoveToStationExit(bool firstRun, Ride* ride)
|
||||
bool Staff::UpdateFixingMoveToStationExit(bool firstRun, Ride* ride)
|
||||
{
|
||||
if (!firstRun)
|
||||
{
|
||||
|
@ -2996,7 +3034,7 @@ bool rct_peep::UpdateFixingMoveToStationExit(bool firstRun, Ride* ride)
|
|||
* fixing sub_state: finish_fix_or_inspect - applies to fixing all failures & inspections
|
||||
* - see FixingSubstatesForBreakdown[]
|
||||
*/
|
||||
bool rct_peep::UpdateFixingFinishFixOrInspect(bool firstRun, int32_t steps, Ride* ride)
|
||||
bool Staff::UpdateFixingFinishFixOrInspect(bool firstRun, int32_t steps, Ride* ride)
|
||||
{
|
||||
if (!firstRun)
|
||||
{
|
||||
|
@ -3040,7 +3078,7 @@ bool rct_peep::UpdateFixingFinishFixOrInspect(bool firstRun, int32_t steps, Ride
|
|||
* fixing sub_state: leave_by_entrance_exit - applies to fixing all failures & inspections
|
||||
* - see FixingSubstatesForBreakdown[]
|
||||
*/
|
||||
bool rct_peep::UpdateFixingLeaveByEntranceExit(bool firstRun, Ride* ride)
|
||||
bool Staff::UpdateFixingLeaveByEntranceExit(bool firstRun, Ride* ride)
|
||||
{
|
||||
if (!firstRun)
|
||||
{
|
||||
|
@ -3095,7 +3133,7 @@ bool rct_peep::UpdateFixingLeaveByEntranceExit(bool firstRun, Ride* ride)
|
|||
/**
|
||||
* rct2: 0x6B7588
|
||||
*/
|
||||
void rct_peep::UpdateRideInspected(ride_id_t rideIndex)
|
||||
void Staff::UpdateRideInspected(ride_id_t rideIndex)
|
||||
{
|
||||
Ride* ride = get_ride(rideIndex);
|
||||
ride->lifecycle_flags &= ~RIDE_LIFECYCLE_DUE_INSPECTION;
|
||||
|
|
|
@ -88,10 +88,10 @@ void staff_reset_modes();
|
|||
void staff_set_name(uint16_t spriteIndex, const char* name);
|
||||
uint16_t hire_new_staff_member(uint8_t staffType);
|
||||
void staff_update_greyed_patrol_areas();
|
||||
bool staff_is_location_in_patrol(rct_peep* mechanic, int32_t x, int32_t y);
|
||||
bool staff_is_location_on_patrol_edge(rct_peep* mechanic, int32_t x, int32_t y);
|
||||
bool staff_can_ignore_wide_flag(rct_peep* mechanic, int32_t x, int32_t y, uint8_t z, TileElement* path);
|
||||
int32_t staff_path_finding(rct_peep* peep);
|
||||
bool staff_is_location_in_patrol(Peep* mechanic, int32_t x, int32_t y);
|
||||
bool staff_is_location_on_patrol_edge(Peep* mechanic, int32_t x, int32_t y);
|
||||
bool staff_can_ignore_wide_flag(Peep* mechanic, int32_t x, int32_t y, uint8_t z, TileElement* path);
|
||||
int32_t staff_path_finding(Staff* peep);
|
||||
void staff_reset_stats();
|
||||
bool staff_is_patrol_area_set(int32_t staffIndex, int32_t x, int32_t y);
|
||||
void staff_set_patrol_area(int32_t staffIndex, int32_t x, int32_t y, bool value);
|
||||
|
|
|
@ -1343,7 +1343,7 @@ private:
|
|||
if (_s4.sprites[i].unknown.sprite_identifier == SPRITE_IDENTIFIER_PEEP)
|
||||
{
|
||||
rct1_peep* srcPeep = &_s4.sprites[i].peep;
|
||||
rct_peep* peep = (rct_peep*)create_sprite(SPRITE_IDENTIFIER_PEEP);
|
||||
Peep* peep = (Peep*)create_sprite(SPRITE_IDENTIFIER_PEEP);
|
||||
move_sprite_to_list((rct_sprite*)peep, SPRITE_LIST_PEEP * 2);
|
||||
spriteIndexMap[i] = peep->sprite_index;
|
||||
|
||||
|
@ -1362,7 +1362,7 @@ private:
|
|||
|
||||
int i;
|
||||
Ride* ride;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
FOR_ALL_RIDES (i, ride)
|
||||
{
|
||||
|
@ -1399,7 +1399,7 @@ private:
|
|||
staff_update_greyed_patrol_areas();
|
||||
}
|
||||
|
||||
void ImportPeep(rct_peep* dst, rct1_peep* src)
|
||||
void ImportPeep(Peep* dst, rct1_peep* src)
|
||||
{
|
||||
dst->sprite_identifier = SPRITE_IDENTIFIER_PEEP;
|
||||
// Peep vs. staff (including which kind)
|
||||
|
@ -1605,12 +1605,12 @@ private:
|
|||
}
|
||||
}
|
||||
|
||||
void FixPeepNextInQueue(rct_peep* peep, const uint16_t* spriteIndexMap)
|
||||
void FixPeepNextInQueue(Peep* peep, const uint16_t* spriteIndexMap)
|
||||
{
|
||||
peep->next_in_queue = MapSpriteIndex(peep->next_in_queue, spriteIndexMap);
|
||||
}
|
||||
|
||||
void ImportStaffPatrolArea(rct_peep* staffmember)
|
||||
void ImportStaffPatrolArea(Peep* staffmember)
|
||||
{
|
||||
// The patrol areas in RCT1 are encoded as follows, for coordinates x and y, separately for every staff member:
|
||||
// - Chop off the 7 lowest bits of the x and y coordinates, which leaves 5 bits per coordinate.
|
||||
|
|
|
@ -888,7 +888,7 @@ void S6Exporter::ExportSpriteVehicle(RCT2SpriteVehicle* dst, const rct_vehicle*
|
|||
dst->target_seat_rotation = src->target_seat_rotation;
|
||||
}
|
||||
|
||||
void S6Exporter::ExportSpritePeep(RCT2SpritePeep* dst, const rct_peep* src)
|
||||
void S6Exporter::ExportSpritePeep(RCT2SpritePeep* dst, const Peep* src)
|
||||
{
|
||||
ExportSpriteCommonProperties(dst, (const rct_sprite_common*)src);
|
||||
dst->name_string_idx = src->name_string_idx;
|
||||
|
|
|
@ -42,7 +42,7 @@ public:
|
|||
void ExportSprite(RCT2Sprite* dst, const rct_sprite* src);
|
||||
void ExportSpriteCommonProperties(RCT12SpriteBase* dst, const rct_sprite_common* src);
|
||||
void ExportSpriteVehicle(RCT2SpriteVehicle* dst, const rct_vehicle* src);
|
||||
void ExportSpritePeep(RCT2SpritePeep* dst, const rct_peep* src);
|
||||
void ExportSpritePeep(RCT2SpritePeep* dst, const Peep* src);
|
||||
void ExportSpriteMisc(RCT12SpriteBase* dst, const rct_sprite_common* src);
|
||||
void ExportSpriteLitter(RCT12SpriteLitter* dst, const rct_litter* src);
|
||||
|
||||
|
|
|
@ -1152,7 +1152,7 @@ public:
|
|||
dst->target_seat_rotation = src->target_seat_rotation;
|
||||
}
|
||||
|
||||
void ImportSpritePeep(rct_peep* dst, const RCT2SpritePeep* src)
|
||||
void ImportSpritePeep(Peep* dst, const RCT2SpritePeep* src)
|
||||
{
|
||||
ImportSpriteCommonProperties((rct_sprite_common*)dst, src);
|
||||
dst->name_string_idx = src->name_string_idx;
|
||||
|
|
|
@ -200,11 +200,11 @@ uint8_t gRideEntranceExitPlaceDirection;
|
|||
uint8_t gLastEntranceStyle;
|
||||
|
||||
// Static function declarations
|
||||
rct_peep* find_closest_mechanic(int32_t x, int32_t y, int32_t forInspection);
|
||||
Peep* find_closest_mechanic(int32_t x, int32_t y, int32_t forInspection);
|
||||
static void ride_breakdown_status_update(Ride* ride);
|
||||
static void ride_breakdown_update(Ride* ride);
|
||||
static void ride_call_closest_mechanic(Ride* ride);
|
||||
static void ride_call_mechanic(Ride* ride, rct_peep* mechanic, int32_t forInspection);
|
||||
static void ride_call_mechanic(Ride* ride, Peep* mechanic, int32_t forInspection);
|
||||
static void ride_chairlift_update(Ride* ride);
|
||||
static void ride_entrance_exit_connected(Ride* ride);
|
||||
static void ride_set_name_to_vehicle_default(Ride* ride, rct_ride_entry* rideEntry);
|
||||
|
@ -362,10 +362,10 @@ int32_t ride_get_max_queue_time(Ride* ride)
|
|||
return (int32_t)queueTime;
|
||||
}
|
||||
|
||||
rct_peep* ride_get_queue_head_guest(Ride* ride, int32_t stationIndex)
|
||||
Peep* ride_get_queue_head_guest(Ride* ride, int32_t stationIndex)
|
||||
{
|
||||
rct_peep* peep;
|
||||
rct_peep* result = nullptr;
|
||||
Peep* peep;
|
||||
Peep* result = nullptr;
|
||||
uint16_t spriteIndex = ride->stations[stationIndex].LastPeepInQueue;
|
||||
while ((peep = try_get_guest(spriteIndex)) != nullptr)
|
||||
{
|
||||
|
@ -378,7 +378,7 @@ rct_peep* ride_get_queue_head_guest(Ride* ride, int32_t stationIndex)
|
|||
static void ride_update_queue_length(Ride* ride, int32_t stationIndex)
|
||||
{
|
||||
uint16_t count = 0;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
uint16_t spriteIndex = ride->stations[stationIndex].LastPeepInQueue;
|
||||
while ((peep = try_get_guest(spriteIndex)) != nullptr)
|
||||
{
|
||||
|
@ -388,14 +388,14 @@ static void ride_update_queue_length(Ride* ride, int32_t stationIndex)
|
|||
ride->stations[stationIndex].QueueLength = count;
|
||||
}
|
||||
|
||||
void ride_queue_insert_guest_at_front(Ride* ride, int32_t stationIndex, rct_peep* peep)
|
||||
void ride_queue_insert_guest_at_front(Ride* ride, int32_t stationIndex, Peep* peep)
|
||||
{
|
||||
assert(ride != nullptr);
|
||||
assert(stationIndex < MAX_STATIONS);
|
||||
assert(peep != nullptr);
|
||||
|
||||
peep->next_in_queue = SPRITE_INDEX_NULL;
|
||||
rct_peep* queueHeadGuest = ride_get_queue_head_guest(ride, peep->current_ride_station);
|
||||
Peep* queueHeadGuest = ride_get_queue_head_guest(ride, peep->current_ride_station);
|
||||
if (queueHeadGuest == nullptr)
|
||||
{
|
||||
ride->stations[peep->current_ride_station].LastPeepInQueue = peep->sprite_index;
|
||||
|
@ -416,7 +416,7 @@ void ride_update_favourited_stat()
|
|||
int32_t i;
|
||||
Ride* ride;
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
FOR_ALL_RIDES (i, ride)
|
||||
ride->guests_favourite = 0;
|
||||
|
@ -909,7 +909,7 @@ void ride_get_status(const Ride* ride, rct_string_id* formatSecondary, int32_t*
|
|||
if (ride->mode == RIDE_MODE_RACE && !(ride->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING)
|
||||
&& ride->race_winner != SPRITE_INDEX_NULL && (GET_PEEP(ride->race_winner))->sprite_identifier == SPRITE_IDENTIFIER_PEEP)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(ride->race_winner);
|
||||
Peep* peep = GET_PEEP(ride->race_winner);
|
||||
if (peep->name_string_idx == STR_GUEST_X)
|
||||
{
|
||||
*argument = peep->id;
|
||||
|
@ -1184,7 +1184,7 @@ void ride_remove_peeps(Ride* ride)
|
|||
|
||||
// Place all the peeps at exit
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
FOR_ALL_PEEPS (spriteIndex, peep)
|
||||
{
|
||||
if (peep->state == PEEP_STATE_QUEUING_FRONT || peep->state == PEEP_STATE_ENTERING_RIDE
|
||||
|
@ -2330,7 +2330,7 @@ static void ride_spiral_slide_update(Ride* ride)
|
|||
{
|
||||
ride->slide_in_use--;
|
||||
|
||||
rct_peep* peep = GET_PEEP(ride->slide_peep);
|
||||
Peep* peep = GET_PEEP(ride->slide_peep);
|
||||
peep->destination_x++;
|
||||
}
|
||||
|
||||
|
@ -2736,8 +2736,6 @@ static void ride_breakdown_status_update(Ride* ride)
|
|||
*/
|
||||
static void ride_mechanic_status_update(Ride* ride, int32_t mechanicStatus)
|
||||
{
|
||||
rct_peep* mechanic;
|
||||
|
||||
// Turn a pending breakdown into a breakdown.
|
||||
if ((mechanicStatus == RIDE_MECHANIC_STATUS_UNDEFINED || mechanicStatus == RIDE_MECHANIC_STATUS_CALLING
|
||||
|| mechanicStatus == RIDE_MECHANIC_STATUS_HEADING)
|
||||
|
@ -2773,12 +2771,9 @@ static void ride_mechanic_status_update(Ride* ride, int32_t mechanicStatus)
|
|||
ride_call_closest_mechanic(ride);
|
||||
break;
|
||||
case RIDE_MECHANIC_STATUS_HEADING:
|
||||
mechanic = nullptr;
|
||||
if (ride->mechanic != SPRITE_INDEX_NULL)
|
||||
{
|
||||
mechanic = &(get_sprite(ride->mechanic)->peep);
|
||||
}
|
||||
if (mechanic == nullptr || !mechanic->IsMechanic()
|
||||
{
|
||||
auto mechanic = ride_get_mechanic(ride);
|
||||
if (mechanic == nullptr
|
||||
|| (mechanic->state != PEEP_STATE_HEADING_TO_INSPECTION && mechanic->state != PEEP_STATE_ANSWERING)
|
||||
|| mechanic->current_ride != ride->id)
|
||||
{
|
||||
|
@ -2787,13 +2782,11 @@ static void ride_mechanic_status_update(Ride* ride, int32_t mechanicStatus)
|
|||
ride_mechanic_status_update(ride, RIDE_MECHANIC_STATUS_CALLING);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RIDE_MECHANIC_STATUS_FIXING:
|
||||
mechanic = nullptr;
|
||||
if (ride->mechanic != SPRITE_INDEX_NULL)
|
||||
{
|
||||
mechanic = &(get_sprite(ride->mechanic)->peep);
|
||||
}
|
||||
if (mechanic == nullptr || !mechanic->IsMechanic()
|
||||
{
|
||||
auto mechanic = ride_get_mechanic(ride);
|
||||
if (mechanic == nullptr
|
||||
|| (mechanic->state != PEEP_STATE_HEADING_TO_INSPECTION && mechanic->state != PEEP_STATE_FIXING
|
||||
&& mechanic->state != PEEP_STATE_INSPECTING && mechanic->state != PEEP_STATE_ANSWERING))
|
||||
{
|
||||
|
@ -2802,6 +2795,7 @@ static void ride_mechanic_status_update(Ride* ride, int32_t mechanicStatus)
|
|||
ride_mechanic_status_update(ride, RIDE_MECHANIC_STATUS_CALLING);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2809,7 +2803,7 @@ static void ride_mechanic_status_update(Ride* ride, int32_t mechanicStatus)
|
|||
*
|
||||
* rct2: 0x006B796C
|
||||
*/
|
||||
static void ride_call_mechanic(Ride* ride, rct_peep* mechanic, int32_t forInspection)
|
||||
static void ride_call_mechanic(Ride* ride, Peep* mechanic, int32_t forInspection)
|
||||
{
|
||||
mechanic->SetState(forInspection ? PEEP_STATE_HEADING_TO_INSPECTION : PEEP_STATE_ANSWERING);
|
||||
mechanic->sub_state = 0;
|
||||
|
@ -2832,7 +2826,7 @@ static void ride_call_closest_mechanic(Ride* ride)
|
|||
ride_call_mechanic(ride, mechanic, forInspection);
|
||||
}
|
||||
|
||||
rct_peep* ride_find_closest_mechanic(Ride* ride, int32_t forInspection)
|
||||
Peep* ride_find_closest_mechanic(Ride* ride, int32_t forInspection)
|
||||
{
|
||||
int32_t x, y, z, stationIndex;
|
||||
TileCoordsXYZD location;
|
||||
|
@ -2871,11 +2865,11 @@ rct_peep* ride_find_closest_mechanic(Ride* ride, int32_t forInspection)
|
|||
* rct2: 0x006B774B (forInspection = 0)
|
||||
* rct2: 0x006B78C3 (forInspection = 1)
|
||||
*/
|
||||
rct_peep* find_closest_mechanic(int32_t x, int32_t y, int32_t forInspection)
|
||||
Peep* find_closest_mechanic(int32_t x, int32_t y, int32_t forInspection)
|
||||
{
|
||||
uint32_t closestDistance, distance;
|
||||
uint16_t spriteIndex;
|
||||
rct_peep *peep, *closestMechanic = nullptr;
|
||||
Peep *peep, *closestMechanic = nullptr;
|
||||
|
||||
closestDistance = UINT_MAX;
|
||||
FOR_ALL_STAFF (spriteIndex, peep)
|
||||
|
@ -2921,16 +2915,27 @@ rct_peep* find_closest_mechanic(int32_t x, int32_t y, int32_t forInspection)
|
|||
return closestMechanic;
|
||||
}
|
||||
|
||||
rct_peep* ride_get_assigned_mechanic(Ride* ride)
|
||||
Staff* ride_get_mechanic(Ride* ride)
|
||||
{
|
||||
if (ride->mechanic != SPRITE_INDEX_NULL)
|
||||
{
|
||||
auto peep = (&(get_sprite(ride->mechanic)->peep))->AsStaff();
|
||||
if (peep != nullptr && peep->IsMechanic())
|
||||
{
|
||||
return peep;
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Staff* ride_get_assigned_mechanic(Ride* ride)
|
||||
{
|
||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN)
|
||||
{
|
||||
if (ride->mechanic_status == RIDE_MECHANIC_STATUS_HEADING || ride->mechanic_status == RIDE_MECHANIC_STATUS_FIXING
|
||||
|| ride->mechanic_status == RIDE_MECHANIC_STATUS_HAS_FIXED_STATION_BRAKES)
|
||||
{
|
||||
rct_peep* peep = &(get_sprite(ride->mechanic)->peep);
|
||||
if (peep->IsMechanic())
|
||||
return peep;
|
||||
return ride_get_mechanic(ride);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5793,7 +5798,7 @@ int32_t ride_get_refund_price(const Ride* ride)
|
|||
void ride_stop_peeps_queuing(Ride* ride)
|
||||
{
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
FOR_ALL_PEEPS (spriteIndex, peep)
|
||||
{
|
||||
|
|
|
@ -20,7 +20,8 @@
|
|||
|
||||
interface IObjectManager;
|
||||
class StationObject;
|
||||
struct rct_peep;
|
||||
struct Peep;
|
||||
struct Staff;
|
||||
|
||||
#define MAX_RIDE_TYPES_PER_RIDE_ENTRY 3
|
||||
// The max number of different types of vehicle.
|
||||
|
@ -998,8 +999,8 @@ int32_t ride_get_default_mode(Ride* ride);
|
|||
int32_t ride_get_count();
|
||||
int32_t ride_get_total_queue_length(Ride* ride);
|
||||
int32_t ride_get_max_queue_time(Ride* ride);
|
||||
rct_peep* ride_get_queue_head_guest(Ride* ride, int32_t stationIndex);
|
||||
void ride_queue_insert_guest_at_front(Ride* ride, int32_t stationIndex, rct_peep* peep);
|
||||
Peep* ride_get_queue_head_guest(Ride* ride, int32_t stationIndex);
|
||||
void ride_queue_insert_guest_at_front(Ride* ride, int32_t stationIndex, Peep* peep);
|
||||
void ride_init_all();
|
||||
void reset_all_ride_build_dates();
|
||||
void ride_update_favourited_stat();
|
||||
|
@ -1015,7 +1016,8 @@ int32_t ride_modify(CoordsXYE* input);
|
|||
void ride_remove_peeps(Ride* ride);
|
||||
void ride_clear_blocked_tiles(Ride* ride);
|
||||
void ride_get_status(const Ride* ride, rct_string_id* formatSecondary, int32_t* argument);
|
||||
rct_peep* ride_get_assigned_mechanic(Ride* ride);
|
||||
Staff* ride_get_mechanic(Ride* ride);
|
||||
Staff* ride_get_assigned_mechanic(Ride* ride);
|
||||
int32_t ride_get_total_length(Ride* ride);
|
||||
int32_t ride_get_total_time(Ride* ride);
|
||||
int32_t ride_can_have_multiple_circuits(Ride* ride);
|
||||
|
@ -1030,7 +1032,7 @@ void ride_measurement_clear(Ride* ride);
|
|||
void ride_measurements_update();
|
||||
rct_ride_measurement* ride_get_measurement(Ride* ride, rct_string_id* message);
|
||||
void ride_breakdown_add_news_item(Ride* ride);
|
||||
rct_peep* ride_find_closest_mechanic(Ride* ride, int32_t forInspection);
|
||||
Peep* ride_find_closest_mechanic(Ride* ride, int32_t forInspection);
|
||||
int32_t ride_is_valid_for_open(Ride* ride, int32_t goingToBeOpen, int32_t isApplying);
|
||||
int32_t ride_is_valid_for_test(Ride* ride, int32_t goingToBeOpen, int32_t isApplying);
|
||||
int32_t ride_initialise_construction_window(Ride* ride);
|
||||
|
|
|
@ -207,7 +207,7 @@ static void ride_update_station_race(Ride* ride, int32_t stationIndex)
|
|||
// Found a winner
|
||||
if (vehicle->num_peeps != 0)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(vehicle->peep[0]);
|
||||
Peep* peep = GET_PEEP(vehicle->peep[0]);
|
||||
ride->race_winner = peep->sprite_index;
|
||||
ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_MAIN | RIDE_INVALIDATE_RIDE_LIST;
|
||||
}
|
||||
|
@ -282,7 +282,7 @@ static void ride_race_init_vehicle_speeds(Ride* ride)
|
|||
|
||||
if (vehicle->num_peeps != 0)
|
||||
{
|
||||
rct_peep* peep = &get_sprite(vehicle->peep[0])->peep;
|
||||
Peep* peep = &get_sprite(vehicle->peep[0])->peep;
|
||||
|
||||
switch (peep_get_easteregg_name_id(peep))
|
||||
{
|
||||
|
|
|
@ -3032,7 +3032,7 @@ void vehicle_peep_easteregg_here_we_are(const rct_vehicle* vehicle)
|
|||
vehicle = GET_VEHICLE(spriteId);
|
||||
for (int32_t i = 0; i < vehicle->num_peeps; ++i)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(vehicle->peep[i]);
|
||||
Peep* peep = GET_PEEP(vehicle->peep[i]);
|
||||
if (peep->peep_flags & PEEP_FLAGS_HERE_WE_ARE)
|
||||
{
|
||||
peep_insert_new_thought(peep, PEEP_THOUGHT_TYPE_HERE_WE_ARE, peep->current_ride);
|
||||
|
@ -4075,7 +4075,7 @@ static void vehicle_update_unloading_passengers(rct_vehicle* vehicle)
|
|||
{
|
||||
vehicle->next_free_seat -= 2;
|
||||
|
||||
rct_peep* peep = GET_PEEP(vehicle->peep[seat * 2]);
|
||||
Peep* peep = GET_PEEP(vehicle->peep[seat * 2]);
|
||||
vehicle->peep[seat * 2] = SPRITE_INDEX_NULL;
|
||||
|
||||
peep->SetState(PEEP_STATE_LEAVING_RIDE);
|
||||
|
@ -4119,7 +4119,7 @@ static void vehicle_update_unloading_passengers(rct_vehicle* vehicle)
|
|||
train->next_free_seat = 0;
|
||||
for (uint8_t peepIndex = 0; peepIndex < train->num_peeps; peepIndex++)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(train->peep[peepIndex]);
|
||||
Peep* peep = GET_PEEP(train->peep[peepIndex]);
|
||||
peep->SetState(PEEP_STATE_LEAVING_RIDE);
|
||||
peep->sub_state = PEEP_RIDE_LEAVE_VEHICLE;
|
||||
}
|
||||
|
@ -5239,7 +5239,7 @@ static void vehicle_kill_all_passengers(rct_vehicle* vehicle)
|
|||
|
||||
for (uint8_t i = 0; i < curVehicle->num_peeps; i++)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(curVehicle->peep[i]);
|
||||
Peep* peep = GET_PEEP(curVehicle->peep[i]);
|
||||
if (peep->outside_of_park == 0)
|
||||
{
|
||||
decrement_guests_in_park();
|
||||
|
@ -8956,7 +8956,7 @@ loc_6DC743:
|
|||
{
|
||||
if (z == 2)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(vehicle->peep[0]);
|
||||
Peep* peep = GET_PEEP(vehicle->peep[0]);
|
||||
if (peep->id & 7)
|
||||
{
|
||||
z = 7;
|
||||
|
@ -8964,7 +8964,7 @@ loc_6DC743:
|
|||
}
|
||||
if (z == 6)
|
||||
{
|
||||
rct_peep* peep = GET_PEEP(vehicle->peep[0]);
|
||||
Peep* peep = GET_PEEP(vehicle->peep[0]);
|
||||
if (peep->id & 7)
|
||||
{
|
||||
z = 8;
|
||||
|
|
|
@ -112,7 +112,7 @@ static void paint_ferris_wheel_structure(
|
|||
continue;
|
||||
}
|
||||
|
||||
rct_peep* peep = GET_PEEP(vehicle->peep[i]);
|
||||
Peep* peep = GET_PEEP(vehicle->peep[i]);
|
||||
if (peep->state != PEEP_STATE_ON_RIDE)
|
||||
{
|
||||
continue;
|
||||
|
|
|
@ -71,7 +71,7 @@ static void paint_space_rings_structure(paint_session* session, Ride* ride, uint
|
|||
|
||||
if (vehicle != nullptr && vehicle->num_peeps > 0)
|
||||
{
|
||||
rct_peep* rider = GET_PEEP(vehicle->peep[0]);
|
||||
Peep* rider = GET_PEEP(vehicle->peep[0]);
|
||||
imageColourFlags = SPRITE_ID_PALETTE_COLOUR_2(rider->tshirt_colour, rider->trousers_colour);
|
||||
imageId = ((baseImageId & 0x7FFFF) + 352 + frameNum) | imageColourFlags;
|
||||
sub_98199C(session, imageId, 0, 0, 20, 20, 23, height, -10, -10, height);
|
||||
|
|
|
@ -67,7 +67,7 @@ void game_command_callback_hire_new_staff_member(
|
|||
}
|
||||
else
|
||||
{
|
||||
rct_peep* peep = &get_sprite(sprite_index)->peep;
|
||||
Peep* peep = &get_sprite(sprite_index)->peep;
|
||||
auto intent = Intent(WC_PEEP);
|
||||
intent.putExtra(INTENT_EXTRA_PEEP, peep);
|
||||
context_open_intent(&intent);
|
||||
|
|
|
@ -1026,7 +1026,7 @@ void footpath_interrupt_peeps(int32_t x, int32_t y, int32_t z)
|
|||
uint16_t spriteIndex = sprite_get_first_in_quadrant(x, y);
|
||||
while (spriteIndex != SPRITE_INDEX_NULL)
|
||||
{
|
||||
rct_peep* peep = &get_sprite(spriteIndex)->peep;
|
||||
Peep* peep = &get_sprite(spriteIndex)->peep;
|
||||
uint16_t nextSpriteIndex = peep->next_in_quadrant;
|
||||
if (peep->linked_list_type_offset == SPRITE_LIST_PEEP * 2)
|
||||
{
|
||||
|
|
|
@ -173,7 +173,7 @@ static bool map_animation_invalidate_small_scenery(int32_t x, int32_t y, int32_t
|
|||
TileElement* tileElement;
|
||||
rct_scenery_entry* sceneryEntry;
|
||||
rct_sprite* sprite;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
|
||||
tileElement = map_get_first_element_at(x >> 5, y >> 5);
|
||||
do
|
||||
|
|
|
@ -660,7 +660,7 @@ int32_t Park::CalculateParkRating() const
|
|||
int32_t happyGuestCount = 0;
|
||||
int32_t lostGuestCount = 0;
|
||||
uint16_t spriteIndex;
|
||||
rct_peep* peep;
|
||||
Peep* peep;
|
||||
FOR_ALL_GUESTS (spriteIndex, peep)
|
||||
{
|
||||
if (peep->outside_of_park == 0)
|
||||
|
@ -976,7 +976,7 @@ void Park::GenerateGuests()
|
|||
}
|
||||
}
|
||||
|
||||
rct_peep* Park::GenerateGuestFromCampaign(int32_t campaign)
|
||||
Peep* Park::GenerateGuestFromCampaign(int32_t campaign)
|
||||
{
|
||||
auto peep = GenerateGuest();
|
||||
if (peep != nullptr)
|
||||
|
@ -986,9 +986,9 @@ rct_peep* Park::GenerateGuestFromCampaign(int32_t campaign)
|
|||
return peep;
|
||||
}
|
||||
|
||||
rct_peep* Park::GenerateGuest()
|
||||
Peep* Park::GenerateGuest()
|
||||
{
|
||||
rct_peep* peep = nullptr;
|
||||
Peep* peep = nullptr;
|
||||
const auto spawn = get_random_peep_spawn();
|
||||
if (spawn != nullptr)
|
||||
{
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
#define MAX_ENTRANCE_FEE MONEY(200, 00)
|
||||
|
||||
struct rct_peep;
|
||||
struct Peep;
|
||||
|
||||
enum : uint32_t
|
||||
{
|
||||
|
@ -43,7 +43,7 @@ enum : uint32_t
|
|||
PARK_FLAGS_UNLOCK_ALL_PRICES = (1u << 31), // OpenRCT2 only!
|
||||
};
|
||||
|
||||
struct rct_peep;
|
||||
struct Peep;
|
||||
struct rct_ride;
|
||||
|
||||
namespace OpenRCT2
|
||||
|
@ -71,7 +71,7 @@ namespace OpenRCT2
|
|||
money32 CalculateCompanyValue() const;
|
||||
static uint8_t CalculateGuestInitialHappiness(uint8_t percentage);
|
||||
|
||||
rct_peep* GenerateGuest();
|
||||
Peep* GenerateGuest();
|
||||
|
||||
void ResetHistories();
|
||||
void UpdateHistories();
|
||||
|
@ -83,7 +83,7 @@ namespace OpenRCT2
|
|||
uint32_t CalculateGuestGenerationProbability() const;
|
||||
|
||||
void GenerateGuests();
|
||||
rct_peep* GenerateGuestFromCampaign(int32_t campaign);
|
||||
Peep* GenerateGuestFromCampaign(int32_t campaign);
|
||||
};
|
||||
} // namespace OpenRCT2
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ union rct_sprite
|
|||
{
|
||||
uint8_t pad_00[0x100];
|
||||
rct_sprite_generic generic;
|
||||
rct_peep peep;
|
||||
Peep peep;
|
||||
rct_litter litter;
|
||||
rct_vehicle vehicle;
|
||||
rct_balloon balloon;
|
||||
|
@ -142,7 +142,7 @@ union rct_sprite
|
|||
bool IsPeep();
|
||||
rct_balloon* AsBalloon();
|
||||
rct_duck* AsDuck();
|
||||
rct_peep* AsPeep();
|
||||
Peep* AsPeep();
|
||||
};
|
||||
assert_struct_size(rct_sprite, 0x100);
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ protected:
|
|||
// Our start position is in tile coordinates, but we need to give the peep spawn
|
||||
// position in actual world coords (32 units per tile X/Y, 8 per Z level).
|
||||
// Add 16 so the peep spawns in the center of the tile.
|
||||
rct_peep* peep = peep_generate(pos->x * 32 + 16, pos->y * 32 + 16, pos->z * 8);
|
||||
Peep* peep = peep_generate(pos->x * 32 + 16, pos->y * 32 + 16, pos->z * 8);
|
||||
|
||||
// Peeps that are outside of the park use specialized pathfinding which we don't want to
|
||||
// use here
|
||||
|
|
Loading…
Reference in New Issue