Merge pull request #990 from kevinburke/sub_65E1C2

Decompile sub_65E1C2
This commit is contained in:
Ted John 2015-04-12 23:18:16 +01:00
commit e93f894077
2 changed files with 30 additions and 7 deletions

View File

@ -200,9 +200,9 @@ typedef struct {
uint8 drops; // 0x115 (??XX XXXX)
uint8 pad_116;
uint8 highest_drop_height; // 0x117
uint32 var_118;
uint8 pad_11C[0x02];
uint8 var_11E;
sint32 sheltered_length; // 0x118
uint8 pad_11C[0x2];
uint8 num_sheltered_sections; // 0x11E
uint8 var_11F;
sint16 var_120;
sint16 var_122;

View File

@ -781,11 +781,34 @@ static rating_tuple sub_65DDD1(rct_ride *ride)
*/
static rating_tuple sub_65E1C2(rct_ride *ride)
{
int eax, ebx, ecx, edx, esi, edi, ebp;
edi = (int)ride;
RCT2_CALLFUNC_X(0x0065E1C2, &eax, &ebx, &ecx, &edx, &esi, &edi, &ebp);
int sheltered_length_shifted = (ride->sheltered_length) >> 16;
uint32 eax = min(sheltered_length_shifted, 1000);
int excitement = (eax * 9175) >> 16;
rating_tuple rating = { ebx, ecx, ebp };
eax = min(sheltered_length_shifted, 2000);
int intensity = (eax * 0x2666) >> 16;
eax = min(sheltered_length_shifted, 1000);
int nausea = (eax * 0x4000) >> 16;
/*eax = (ride->var_11C * 30340) >> 16;*/
/*nausea += eax;*/
if (ride->num_sheltered_sections & 0x40) {
excitement += 20;
nausea += 15;
}
if (ride->num_sheltered_sections & 0x20) {
excitement += 20;
nausea += 15;
}
uint8 lowerval = ride->num_sheltered_sections & 0x1F;
lowerval = min(lowerval, 11);
excitement += (lowerval * 774516) >> 16;
rating_tuple rating = { excitement, intensity, nausea };
return rating;
}