mirror of https://github.com/OpenRCT2/OpenRCT2.git
Deciphered table at 0x0098185C
This commit is contained in:
parent
d6fd030702
commit
591fbb6dd1
|
@ -1359,8 +1359,6 @@ void sub_0x68B6C2(){
|
||||||
void sub_688217_helper(uint16 ax, uint8 flag)
|
void sub_688217_helper(uint16 ax, uint8 flag)
|
||||||
{
|
{
|
||||||
paint_struct *ps;
|
paint_struct *ps;
|
||||||
uint32 edi;
|
|
||||||
|
|
||||||
paint_struct *ps_next = RCT2_GLOBAL(0x00EE7884, paint_struct*);
|
paint_struct *ps_next = RCT2_GLOBAL(0x00EE7884, paint_struct*);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
@ -1411,22 +1409,39 @@ void sub_688217_helper(uint16 ax, uint8 flag)
|
||||||
if (ps_next == NULL) break;
|
if (ps_next == NULL) break;
|
||||||
if (ps_next->var_1B & (1 << 7)) break;
|
if (ps_next->var_1B & (1 << 7)) break;
|
||||||
if (!(ps_next->var_1B & (1 << 1))) continue;
|
if (!(ps_next->var_1B & (1 << 1))) continue;
|
||||||
edi = RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, uint32) << 6;
|
|
||||||
if (my_attached_x < ps_next->other_x) edi |= (1 << 5);
|
|
||||||
if (my_attached_y < ps_next->other_y) edi |= (1 << 4);
|
|
||||||
if (my_some_x < ps_next->some_y) edi |= (1 << 3);
|
|
||||||
if (my_other_x < ps_next->attached_x) edi |= (1 << 2);
|
|
||||||
if (my_other_y < ps_next->attached_y) edi |= (1 << 1);
|
|
||||||
if (my_some_y < ps_next->some_x) edi |= (1 << 0);
|
|
||||||
|
|
||||||
if (RCT2_GLOBAL(0x0098185C + edi, uint8) == 0) continue;
|
int yes = 0;
|
||||||
|
switch (RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, uint32)) {
|
||||||
|
case 0:
|
||||||
|
if (my_some_y >= ps_next->some_x && my_other_y >= ps_next->attached_y && my_other_x >= ps_next->attached_x
|
||||||
|
&& !(my_some_x < ps_next->some_y && my_attached_y < ps_next->other_y && my_attached_x < ps_next->other_x))
|
||||||
|
yes = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (my_some_y >= ps_next->some_x && my_other_y >= ps_next->attached_y && my_other_x < ps_next->attached_x
|
||||||
|
&& !(my_some_x < ps_next->some_y && my_attached_y < ps_next->other_y && my_attached_x >= ps_next->other_x))
|
||||||
|
yes = 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (my_some_y >= ps_next->some_x && my_other_y < ps_next->attached_y && my_other_x < ps_next->attached_x
|
||||||
|
&& !(my_some_x < ps_next->some_y && my_attached_y >= ps_next->other_y && my_attached_x >= ps_next->other_x))
|
||||||
|
yes = 1;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
if (my_some_y >= ps_next->some_x && my_other_y < ps_next->attached_y && my_other_x >= ps_next->attached_x
|
||||||
|
&& !(my_some_x < ps_next->some_y && my_attached_y >= ps_next->other_y && my_attached_x < ps_next->other_x))
|
||||||
|
yes = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (yes) {
|
||||||
ps->var_24 = ps_next->var_24;
|
ps->var_24 = ps_next->var_24;
|
||||||
paint_struct *ps_temp = RCT2_GLOBAL(0x00F1AD18, paint_struct*)->var_24;
|
paint_struct *ps_temp = RCT2_GLOBAL(0x00F1AD18, paint_struct*)->var_24;
|
||||||
RCT2_GLOBAL(0x00F1AD18, paint_struct*)->var_24 = ps_next;
|
RCT2_GLOBAL(0x00F1AD18, paint_struct*)->var_24 = ps_next;
|
||||||
ps_next->var_24 = ps_temp;
|
ps_next->var_24 = ps_temp;
|
||||||
ps_next = ps;
|
ps_next = ps;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ps = RCT2_GLOBAL(0x00F1AD18, paint_struct*);
|
ps = RCT2_GLOBAL(0x00F1AD18, paint_struct*);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue