mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge branch 'master' of https://github.com/vanderkleij/OpenRCT2 into vanderkleij-master
This commit is contained in:
commit
4de8808fdb
44
src/sprite.c
44
src/sprite.c
|
@ -105,3 +105,47 @@ void reset_0x69EBE4(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* rct2: 0x0069EC6B
|
||||||
|
* bl: unclear what this does
|
||||||
|
*/
|
||||||
|
rct_sprite *create_sprite(uint8 bl)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
rct_unk_sprite *sprite = &g_sprite_list[RCT2_GLOBAL(RCT2_ADDRESS_SPRITES_NEXT_INDEX, uint16)];
|
||||||
|
|
||||||
|
RCT2_CALLPROC_X(0x0069ED0B, 0, 0, ecx, 0, (int)sprite, 0, 0);
|
||||||
|
|
||||||
|
sprite->x = SPRITE_LOCATION_NULL;
|
||||||
|
sprite->y = SPRITE_LOCATION_NULL;
|
||||||
|
sprite->z = 0;
|
||||||
|
sprite->name_string_idx = 0;
|
||||||
|
sprite->var_14 = 0x10;
|
||||||
|
sprite->pad_09 = 0x14;
|
||||||
|
sprite->var_15 = 0x8;
|
||||||
|
sprite->pad_0C[0] = 0x0;
|
||||||
|
sprite->var_16 = SPRITE_LOCATION_NULL;
|
||||||
|
|
||||||
|
sprite->var_02 = RCT2_GLOBAL(0xF3EF60, uint16);
|
||||||
|
RCT2_GLOBAL(0xF3EF60, uint16) = sprite->sprite_index;
|
||||||
|
|
||||||
|
return sprite;
|
||||||
|
}
|
|
@ -49,12 +49,15 @@ typedef struct {
|
||||||
sint16 x; // 0x0E
|
sint16 x; // 0x0E
|
||||||
sint16 y; // 0x10
|
sint16 y; // 0x10
|
||||||
sint16 z; // 0x12
|
sint16 z; // 0x12
|
||||||
uint16 pad_14;
|
uint8 var_14; // 0x14
|
||||||
|
uint8 var_15; // 0x15
|
||||||
sint16 var_16; //x related
|
sint16 var_16; //x related
|
||||||
sint16 var_18; //y related
|
sint16 var_18; //y related
|
||||||
sint16 var_1A; //x related
|
sint16 var_1A; //x related
|
||||||
sint16 var_1C; //y related
|
sint16 var_1C; //y related
|
||||||
uint8 sprite_direction; //direction of sprite?
|
uint8 sprite_direction; //direction of sprite? 0x1e
|
||||||
|
uint8 pad_1F[3]; // 0x1f
|
||||||
|
uint16 name_string_idx; // 0x22
|
||||||
} rct_unk_sprite;
|
} rct_unk_sprite;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -86,6 +89,7 @@ typedef union {
|
||||||
extern rct_sprite* g_sprite_list;
|
extern rct_sprite* g_sprite_list;
|
||||||
|
|
||||||
void create_balloon(int x, int y, int z, int colour);
|
void create_balloon(int x, int y, int z, int colour);
|
||||||
|
rct_sprite *create_sprite(uint8 bl);
|
||||||
void reset_sprite_list();
|
void reset_sprite_list();
|
||||||
void reset_0x69EBE4();
|
void reset_0x69EBE4();
|
||||||
|
|
||||||
|
|
10
src/staff.c
10
src/staff.c
|
@ -111,14 +111,12 @@ void game_command_hire_new_staff_member(int* eax, int* ebx, int* ecx, int* edx,
|
||||||
|
|
||||||
int newStaffId = i;
|
int newStaffId = i;
|
||||||
|
|
||||||
int _eax, _ebx, _ecx = _cx, _edx, _esi, _edi, _ebp;
|
int _eax, _ebx, _ecx = _cx, _edx, _edi, _ebp;
|
||||||
_esi = 0;
|
|
||||||
_ebx = _bl;
|
_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)
|
rct_peep* newPeep = create_sprite(_bl);
|
||||||
if (_esi == 0)
|
|
||||||
|
if (newPeep == NULL)
|
||||||
{
|
{
|
||||||
*ebx = 0x80000000;
|
*ebx = 0x80000000;
|
||||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TOO_MANY_PEOPLE_IN_GAME;
|
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16) = STR_TOO_MANY_PEOPLE_IN_GAME;
|
||||||
|
|
Loading…
Reference in New Issue