mirror of https://github.com/OpenRCT2/OpenRCT2.git
Decompile var_110
This commit is contained in:
parent
dd133d4313
commit
8c210d834c
|
@ -3592,8 +3592,8 @@ bool ride_type_has_flag(int rideType, int flag)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The next three functions are helpers to access ride data at the offset 10E.
|
* The next six functions are helpers to access ride data at the offset 10E &
|
||||||
* We believe it stores three distinct values in the following format:
|
* 110. We believe it stores three distinct values in the following format:
|
||||||
*
|
*
|
||||||
* unknown1: bits 9-11
|
* unknown1: bits 9-11
|
||||||
* unknown2: bits 6-8
|
* unknown2: bits 6-8
|
||||||
|
@ -3612,6 +3612,18 @@ int get_var_10E_unk_3(rct_ride* ride) {
|
||||||
return ride->var_10E & 0x1F;
|
return ride->var_10E & 0x1F;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_var_110_unk_1(rct_ride* ride) {
|
||||||
|
return (ride->var_110 >> 8) & 0x7;
|
||||||
|
}
|
||||||
|
|
||||||
|
int get_var_110_unk_2(rct_ride* ride) {
|
||||||
|
return (ride->var_110 >> 5) & 0x7;
|
||||||
|
}
|
||||||
|
|
||||||
|
int get_var_110_unk_3(rct_ride* ride) {
|
||||||
|
return ride->var_110 & 0x1F;
|
||||||
|
}
|
||||||
|
|
||||||
bool ride_has_spinning_tunnel(rct_ride *ride) {
|
bool ride_has_spinning_tunnel(rct_ride *ride) {
|
||||||
return ride->special_track_elements & RIDE_ELEMENT_TUNNEL_SPLASH_OR_RAPIDS;
|
return ride->special_track_elements & RIDE_ELEMENT_TUNNEL_SPLASH_OR_RAPIDS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -767,6 +767,9 @@ void game_command_set_ride_setting(int *eax, int *ebx, int *ecx, int *edx, int *
|
||||||
int get_var_10E_unk_1(rct_ride* ride);
|
int get_var_10E_unk_1(rct_ride* ride);
|
||||||
int get_var_10E_unk_2(rct_ride* ride);
|
int get_var_10E_unk_2(rct_ride* ride);
|
||||||
int get_var_10E_unk_3(rct_ride* ride);
|
int get_var_10E_unk_3(rct_ride* ride);
|
||||||
|
int get_var_110_unk_1(rct_ride* ride);
|
||||||
|
int get_var_110_unk_2(rct_ride* ride);
|
||||||
|
int get_var_110_unk_3(rct_ride* ride);
|
||||||
|
|
||||||
uint8 ride_get_helix_sections(rct_ride *ride);
|
uint8 ride_get_helix_sections(rct_ride *ride);
|
||||||
bool ride_has_spinning_tunnel(rct_ride *ride);
|
bool ride_has_spinning_tunnel(rct_ride *ride);
|
||||||
|
|
|
@ -623,41 +623,22 @@ static rating_tuple get_var_10E_rating(rct_ride* ride) {
|
||||||
/**
|
/**
|
||||||
* rct2: 0x0065DF72
|
* rct2: 0x0065DF72
|
||||||
*/
|
*/
|
||||||
static rating_tuple get_var_110_rating(uint16 var_110) {
|
static rating_tuple get_var_110_rating(rct_ride* ride) {
|
||||||
int al;
|
int var_10E_unk_1 = get_var_10E_unk_1(ride);
|
||||||
|
int var_10E_unk_2 = get_var_10E_unk_2(ride);
|
||||||
|
int var_10E_unk_3 = get_var_10E_unk_3(ride);
|
||||||
|
|
||||||
al = var_110 >> 8;
|
int excitement = (var_10E_unk_1 * 0x3c000) >> 16;
|
||||||
al = al & 7;
|
excitement += (var_10E_unk_2 * 0x3c000) >> 16;
|
||||||
int excitement = (al * 0x3c000) >> 16;
|
excitement += (var_10E_unk_3 * 73992) >> 16;
|
||||||
|
|
||||||
al = var_110 >> 5;
|
int intensity = (var_10E_unk_1 * 0x14000) >> 16;
|
||||||
al = al & 7;
|
intensity += (var_10E_unk_2 * 49152) >> 16;
|
||||||
excitement += (al * 0x3c000) >> 16;
|
intensity += (var_10E_unk_3 * 21140) >> 16;
|
||||||
|
|
||||||
al = var_110 & 0x1F;
|
int nausea = var_10E_unk_1 / 5;
|
||||||
excitement += (al * 73992) >> 16;
|
nausea += (var_10E_unk_2 * 0x32000) >> 16;
|
||||||
|
nausea += (var_10E_unk_3 * 48623) >> 16;
|
||||||
al = var_110 >> 8;
|
|
||||||
al = al & 7;
|
|
||||||
int intensity = (al * 0x14000) >> 16;
|
|
||||||
|
|
||||||
al = var_110 >> 5;
|
|
||||||
al = al & 7;
|
|
||||||
intensity += (al * 49152) >> 16;
|
|
||||||
|
|
||||||
al = var_110 & 0x1F;
|
|
||||||
intensity += (al * 21140) >> 16;
|
|
||||||
|
|
||||||
al = var_110 >> 8;
|
|
||||||
al = al & 7;
|
|
||||||
int nausea = al / 5;
|
|
||||||
|
|
||||||
al = var_110 >> 5;
|
|
||||||
al = al & 7;
|
|
||||||
nausea += (al * 0x32000) >> 16;
|
|
||||||
|
|
||||||
al = var_110 & 0x1F;
|
|
||||||
nausea += (al * 48623) >> 16;
|
|
||||||
|
|
||||||
rating_tuple rating = { excitement, intensity, nausea };
|
rating_tuple rating = { excitement, intensity, nausea };
|
||||||
return rating;
|
return rating;
|
||||||
|
@ -774,7 +755,7 @@ static rating_tuple sub_65DDD1(rct_ride *ride)
|
||||||
intensity += var_10E_rating.intensity;
|
intensity += var_10E_rating.intensity;
|
||||||
nausea += var_10E_rating.nausea;
|
nausea += var_10E_rating.nausea;
|
||||||
|
|
||||||
rating_tuple var_110_rating = get_var_110_rating(ride->var_110);
|
rating_tuple var_110_rating = get_var_110_rating(ride);
|
||||||
excitement += var_110_rating.excitement;
|
excitement += var_110_rating.excitement;
|
||||||
intensity += var_110_rating.intensity;
|
intensity += var_110_rating.intensity;
|
||||||
nausea += var_110_rating.nausea;
|
nausea += var_110_rating.nausea;
|
||||||
|
|
Loading…
Reference in New Issue