Merge pull request #2036 from zsilencer/decompiling

implement peep_give_real_name
This commit is contained in:
Ted John 2015-10-07 12:09:22 +01:00
commit 700f0c840f
1 changed files with 27 additions and 1 deletions

View File

@ -8459,7 +8459,33 @@ static void peep_head_for_nearest_ride_with_flags(rct_peep *peep, int rideTypeFl
*/
static void peep_give_real_name(rct_peep *peep)
{
RCT2_CALLPROC_X(0x0069C483, 0, 0, 0, 0, (int)peep, 0, 0);
// Generate a name_string_idx from the peep id using bit twiddling
uint32 eax = peep->id + 0xF0B;
uint16 dx = 0;
dx |= ((eax & 0x400) ? 1 : 0) << 13;
dx |= ((eax & 0x2000) ? 1 : 0) << 12;
dx |= ((eax & 0x800) ? 1 : 0) << 11;
dx |= ((eax & 0x400) ? 1 : 0) << 10;
dx |= ((eax & 0x1) ? 1 : 0) << 9;
dx |= ((eax & 0x40) ? 1 : 0) << 8;
dx |= ((eax & 0x2) ? 1 : 0) << 7;
dx |= ((eax & 0x4) ? 1 : 0) << 6;
dx |= ((eax & 0x100) ? 1 : 0) << 5;
dx |= ((eax & 0x20) ? 1 : 0) << 4;
dx |= ((eax & 0x80) ? 1 : 0) << 3;
dx |= ((eax & 0x8) ? 1 : 0) << 2;
dx |= ((eax & 0x200) ? 1 : 0) << 1;
dx |= ((eax & 0x10) ? 1 : 0) << 0;
eax = dx & 0xF;
dx *= 4;
eax *= 4096;
dx += eax;
if (dx < eax) {
dx += 0x1000;
}
dx /= 4;
dx += 0xA000;
peep->name_string_idx = dx;
}
/**