1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-20 21:43:06 +01:00

More refactoring and fixed bug in create_duck

This commit is contained in:
Gericom
2015-02-28 14:48:04 +01:00
parent 961a251dd0
commit b560638e23
2 changed files with 10 additions and 14 deletions

View File

@@ -60,18 +60,14 @@ void create_duck(int targetX, int targetY)
sprite->duck.var_14 = 9;
sprite->duck.var_09 = 0xC;
sprite->duck.var_15 = 9;
int ebx = scenario_rand();
int ebp = ebx;
int edi = ebx;
ebp >>= 8;
edi >>= 16;
edi &= 0x3F;
ebp &= 0x1E;
int edi = scenario_rand() & 0x3F;
int ebp = scenario_rand() & 0x1E;
targetX += ebp;
targetY += ebp;
sprite->duck.x = targetX;
sprite->duck.y = targetY;
switch (ebx & 3)
sprite->duck.target_x = targetX;
sprite->duck.target_y = targetY;
uint8 direction = scenario_rand() & 3;
switch (direction)
{
case 0:
targetX = 8191 - edi;
@@ -86,7 +82,7 @@ void create_duck(int targetX, int targetY)
targetY = 8191 - edi;
break;
}
sprite->duck.var_1E = (ebx << 3) & 0xFF;
sprite->duck.sprite_direction = direction << 3;
sprite_move(targetX, targetY, 496, sprite);
sprite->duck.var_48 = 0;
sprite->duck.var_26 = 0;

View File

@@ -112,12 +112,12 @@ typedef struct {
uint8 var_14; // 0x14
uint8 var_15; // 0x15
uint8 pad_16[0x8];
uint8 var_1E; // 0x1E
uint8 sprite_direction; // 0x1E
uint8 pad_1F[0x7];
uint16 var_26;
uint8 pad_28[0x8];
sint16 x; // 0x30
sint16 y; // 0x32
sint16 target_x; // 0x30
sint16 target_y; // 0x32
uint8 pad_34[0x14];
uint8 var_48; // 0x48
} rct_duck;