mirror of https://github.com/OpenRCT2/OpenRCT2.git
extract callfuncs into separate methods in peep.c
This commit is contained in:
parent
daaf42d581
commit
5deb97a745
|
@ -52,6 +52,8 @@ static bool sub_69AF1E(rct_peep *peep, int rideIndex, int shopItem, money32 pric
|
||||||
static bool sub_69AEB7(rct_peep *peep, int rideIndex);
|
static bool sub_69AEB7(rct_peep *peep, int rideIndex);
|
||||||
static void sub_69A98C(rct_peep *peep);
|
static void sub_69A98C(rct_peep *peep);
|
||||||
static void sub_68FD3A(rct_peep *peep);
|
static void sub_68FD3A(rct_peep *peep);
|
||||||
|
static bool sub_690B99(rct_peep *peep, int edge, uint8 *rideToView, uint8 *rideSeatToView);
|
||||||
|
static int sub_694921(rct_peep *peep, int x, int y);
|
||||||
static void peep_give_real_name(rct_peep *peep);
|
static void peep_give_real_name(rct_peep *peep);
|
||||||
|
|
||||||
const char *gPeepEasterEggNames[] = {
|
const char *gPeepEasterEggNames[] = {
|
||||||
|
@ -2743,13 +2745,9 @@ static void peep_update_mowing(rct_peep* peep){
|
||||||
|
|
||||||
invalidate_sprite((rct_sprite*)peep);
|
invalidate_sprite((rct_sprite*)peep);
|
||||||
while (1){
|
while (1){
|
||||||
sint16 x = 0, y = 0, xy_distance;
|
sint16 x = 0, y = 0, z, xy_distance;
|
||||||
if (peep_update_action(&x, &y, &xy_distance, peep)){
|
if (peep_update_action(&x, &y, &xy_distance, peep)){
|
||||||
int eax = x, ebx, ecx = y, z, ebp, edi;
|
z = map_element_height(x, y) & 0xFFFF;
|
||||||
|
|
||||||
RCT2_CALLFUNC_X(0x662783, &eax, &ebx, &ecx, &z, (int*)&peep, &edi, &ebp);
|
|
||||||
x = eax;
|
|
||||||
y = ecx;
|
|
||||||
sprite_move(x, y, z, (rct_sprite*)peep);
|
sprite_move(x, y, z, (rct_sprite*)peep);
|
||||||
invalidate_sprite((rct_sprite*)peep);
|
invalidate_sprite((rct_sprite*)peep);
|
||||||
return;
|
return;
|
||||||
|
@ -2917,13 +2915,9 @@ static void peep_update_sweeping(rct_peep* peep){
|
||||||
peep->staff_litter_swept++;
|
peep->staff_litter_swept++;
|
||||||
peep->var_45 |= (1 << 4);
|
peep->var_45 |= (1 << 4);
|
||||||
}
|
}
|
||||||
sint16 x = 0, y = 0, xy_distance;
|
sint16 x = 0, y = 0, z, xy_distance;
|
||||||
if (peep_update_action(&x, &y, &xy_distance, peep)){
|
if (peep_update_action(&x, &y, &xy_distance, peep)){
|
||||||
int eax = x, ebx, ecx = y, z, ebp, edi;
|
z = sub_694921(peep, x, y);
|
||||||
|
|
||||||
RCT2_CALLFUNC_X(0x694921, &eax, &ebx, &ecx, &z, (int*)&peep, &edi, &ebp);
|
|
||||||
x = eax;
|
|
||||||
y = ecx;
|
|
||||||
sprite_move(x, y, z, (rct_sprite*)peep);
|
sprite_move(x, y, z, (rct_sprite*)peep);
|
||||||
invalidate_sprite((rct_sprite*)peep);
|
invalidate_sprite((rct_sprite*)peep);
|
||||||
return;
|
return;
|
||||||
|
@ -4146,16 +4140,9 @@ static void peep_update_walking(rct_peep* peep){
|
||||||
|
|
||||||
for (; !(edges & (1 << chosen_edge));)chosen_edge = (chosen_edge + 1) & 3;
|
for (; !(edges & (1 << chosen_edge));)chosen_edge = (chosen_edge + 1) & 3;
|
||||||
|
|
||||||
uint8 ride_to_view;
|
uint8 ride_to_view, ride_seat_to_view;
|
||||||
uint8 ride_seat_to_view;
|
if (!sub_690B99(peep, chosen_edge, &ride_to_view, &ride_seat_to_view))
|
||||||
{
|
return;
|
||||||
int eax = chosen_edge, _ebx = 0, ecx, edx = 0, esi = (int)peep, _ebp = 0, edi = 0;
|
|
||||||
// Work out what to look at
|
|
||||||
if (RCT2_CALLFUNC_X(0x00690B99, &eax, &_ebx, &ecx, &edx, &esi, &edi, &_ebp) & 0x100)return;
|
|
||||||
|
|
||||||
ride_to_view = ecx & 0xFF;
|
|
||||||
ride_seat_to_view = (ecx & 0xFF00) >> 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16 sprite_id = RCT2_ADDRESS(0xF1EF60, uint16)[((peep->x & 0x1FE0) << 3) | (peep->y >> 5)];
|
uint16 sprite_id = RCT2_ADDRESS(0xF1EF60, uint16)[((peep->x & 0x1FE0) << 3) | (peep->y >> 5)];
|
||||||
for (rct_sprite* sprite; sprite_id != SPRITE_INDEX_NULL; sprite_id = sprite->unknown.next_in_quadrant){
|
for (rct_sprite* sprite; sprite_id != SPRITE_INDEX_NULL; sprite_id = sprite->unknown.next_in_quadrant){
|
||||||
|
@ -5356,31 +5343,82 @@ static void peep_spend_money(rct_peep *peep, money16 *peep_expend_type, money32
|
||||||
sound_play_panned(SOUND_PURCHASE, 0x8001, peep->x, peep->y, peep->z);
|
sound_play_panned(SOUND_PURCHASE, 0x8001, peep->x, peep->y, peep->z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* rct2: 0x00695444
|
||||||
|
*/
|
||||||
static void sub_695444(rct_peep *peep, int rideIndex, int flags)
|
static void sub_695444(rct_peep *peep, int rideIndex, int flags)
|
||||||
{
|
{
|
||||||
RCT2_CALLPROC_X(0x00695444, 0, 0, 0, (rideIndex & 0xFF) | (flags << 8), (int)peep, 0, 0);
|
RCT2_CALLPROC_X(0x00695444, 0, 0, 0, (rideIndex & 0xFF) | (flags << 8), (int)peep, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* rct2: 0x0069AF1E
|
||||||
|
*/
|
||||||
static bool sub_69AF1E(rct_peep *peep, int rideIndex, int shopItem, money32 price)
|
static bool sub_69AF1E(rct_peep *peep, int rideIndex, int shopItem, money32 price)
|
||||||
{
|
{
|
||||||
return !(RCT2_CALLPROC_X(0x0069AF1E, shopItem | (rideIndex << 8), 0, price, 0, (int)peep, 0, 0) & 0x100);
|
return !(RCT2_CALLPROC_X(0x0069AF1E, shopItem | (rideIndex << 8), 0, price, 0, (int)peep, 0, 0) & 0x100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* rct2: 0x0069AEB7
|
||||||
|
*/
|
||||||
static bool sub_69AEB7(rct_peep *peep, int rideIndex)
|
static bool sub_69AEB7(rct_peep *peep, int rideIndex)
|
||||||
{
|
{
|
||||||
return !(RCT2_CALLPROC_X(0x0069AEB7, rideIndex << 8, 0, 0, 0, (int)peep, 0, 0) & 0x100);
|
return !(RCT2_CALLPROC_X(0x0069AEB7, rideIndex << 8, 0, 0, 0, (int)peep, 0, 0) & 0x100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* rct2: 0x0069A98C
|
||||||
|
*/
|
||||||
static void sub_69A98C(rct_peep *peep)
|
static void sub_69A98C(rct_peep *peep)
|
||||||
{
|
{
|
||||||
RCT2_CALLPROC_X(0x0069A98C, 0, 0, 0, 0, (int)peep, 0, 0);
|
RCT2_CALLPROC_X(0x0069A98C, 0, 0, 0, 0, (int)peep, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* rct2: 0x0068FD3A
|
||||||
|
*/
|
||||||
static void sub_68FD3A(rct_peep *peep)
|
static void sub_68FD3A(rct_peep *peep)
|
||||||
{
|
{
|
||||||
RCT2_CALLPROC_X(0x0068FD3A, 0, 0, 0, 0, (int)peep, 0, 0);
|
RCT2_CALLPROC_X(0x0068FD3A, 0, 0, 0, 0, (int)peep, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* rct2: 0x00690B99
|
||||||
|
*/
|
||||||
|
static bool sub_690B99(rct_peep *peep, int edge, uint8 *rideToView, uint8 *rideSeatToView)
|
||||||
|
{
|
||||||
|
int eax, ebx, ecx, edx, esi, edi, ebp;
|
||||||
|
eax = edge;
|
||||||
|
esi = (int)peep;
|
||||||
|
if (RCT2_CALLFUNC_X(0x00690B99, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp) & 0x100)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
*rideToView = ecx & 0xFF;
|
||||||
|
*rideSeatToView = (ecx >> 8) & 0xFF;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* rct2: 0x00694921
|
||||||
|
*/
|
||||||
|
static int sub_694921(rct_peep *peep, int x, int y)
|
||||||
|
{
|
||||||
|
int eax, ebx, ecx, edx, esi, edi, ebp;
|
||||||
|
eax = x;
|
||||||
|
ecx = y;
|
||||||
|
esi = (int)peep;
|
||||||
|
RCT2_CALLFUNC_X(0x00694921, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp);
|
||||||
|
return edx & 0xFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* rct2: 0x0069C483
|
* rct2: 0x0069C483
|
||||||
|
|
Loading…
Reference in New Issue