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:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user