mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-16 11:33:03 +01:00
Decompiled peep_create (0x0069EC6B)
This commit is contained in:
47
src/peep.c
47
src/peep.c
@@ -410,6 +410,53 @@ rct_peep *peep_generate(int x, int y, int z)
|
||||
return (rct_peep*)esi;
|
||||
}
|
||||
|
||||
/*
|
||||
* rct2: 69EC6B
|
||||
* bl: unclear what this does
|
||||
*/
|
||||
rct_peep *peep_create(uint8 bl)
|
||||
{
|
||||
rct_peep *peep = NULL;
|
||||
|
||||
int ecx = 0xA;
|
||||
|
||||
if ((bl & 2 != 0))
|
||||
{
|
||||
// 69EC96;
|
||||
uint16 cx = 0x12C - RCT2_GLOBAL(0x13573CE, uint16);
|
||||
if (cx >= RCT2_GLOBAL(0x13573C8, uint16))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ecx = 6;
|
||||
}
|
||||
else if (RCT2_GLOBAL(0x13573C8, uint16) <= 0)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
peep = &g_sprite_list[RCT2_GLOBAL(RCT2_ADDRESS_SPRITES_NEXT_INDEX, uint16)];
|
||||
|
||||
RCT2_CALLPROC_X(0x0069ED0B, 0, 0, ecx, 0, (int)peep, 0, 0);
|
||||
|
||||
peep->x = SPRITE_LOCATION_NULL;
|
||||
peep->y = SPRITE_LOCATION_NULL;
|
||||
peep->z = 0;
|
||||
peep->name_string_idx = 0;
|
||||
peep->var_14 = 0x10;
|
||||
peep->var_09 = 0x14;
|
||||
peep->var_15 = 0x8;
|
||||
peep->var_0C = 0x0;
|
||||
peep->var_16 = SPRITE_LOCATION_NULL;
|
||||
|
||||
uint16 oldGlobal = RCT2_GLOBAL(0xF3EF60, uint16);
|
||||
RCT2_GLOBAL(0xF3EF60, uint16) = peep->sprite_index;
|
||||
peep->var_02 = oldGlobal;
|
||||
|
||||
return peep;
|
||||
}
|
||||
|
||||
/**
|
||||
* rct2: 0x00698B0D
|
||||
* peep.sprite_index (eax)
|
||||
|
||||
@@ -443,6 +443,7 @@ void peep_problem_warnings_update();
|
||||
void peep_update_crowd_noise();
|
||||
void peep_applause();
|
||||
rct_peep *peep_generate(int x, int y, int z);
|
||||
rct_peep *peep_create(uint8 bl);
|
||||
void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argument_2);
|
||||
void get_arguments_from_thought(rct_peep_thought thought, uint32* argument_1, uint32* argument_2);
|
||||
|
||||
|
||||
11
src/staff.c
11
src/staff.c
@@ -111,14 +111,13 @@ void game_command_hire_new_staff_member(int* eax, int* ebx, int* ecx, int* edx,
|
||||
|
||||
int newStaffId = i;
|
||||
|
||||
int _eax, _ebx, _ecx = _cx, _edx, _esi, _edi, _ebp;
|
||||
_esi = 0;
|
||||
int _eax, _ebx, _ecx = _cx, _edx, _edi, _ebp;
|
||||
int _esi;
|
||||
_ebx = _bl;
|
||||
RCT2_CALLFUNC_X(0x0069EC6B, &_eax, &_ebx, &_ecx, &_edx, &_esi, &_edi, &_ebp);
|
||||
rct_peep* newPeep = (rct_peep*)_esi;
|
||||
|
||||
//if ((newPeep = create_peep_sprite(_bl)) == NULL)
|
||||
if (_esi == 0)
|
||||
rct_peep* newPeep = peep_create(_bl);
|
||||
|
||||
if (newPeep == 0)
|
||||
{
|
||||
*ebx = 0x80000000;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TOO_MANY_PEOPLE_IN_GAME;
|
||||
|
||||
Reference in New Issue
Block a user