70 lines
2.5 KiB
Plaintext
70 lines
2.5 KiB
Plaintext
void script_2132(int arg0,int arg1,int arg2,int arg3,int arg4) {
|
|
int ivar5;
|
|
int ivar6;
|
|
int ivar7;
|
|
int ivar8;
|
|
flow_0:
|
|
ivar5 = add(getWidgetActualX(new WidgetPointer(arg0)), arg1);
|
|
ivar6 = add(getWidgetActualY(new WidgetPointer(arg0)), arg2);
|
|
if ((getWidgetActualX(new WidgetPointer(arg3)) >= ivar5) && (getWidgetActualX(new WidgetPointer(arg3)) < add(ivar5, getWidgetActualWidth(new WidgetPointer(arg0))))) {
|
|
if ((getWidgetActualY(new WidgetPointer(arg3)) >= ivar6) && (getWidgetActualY(new WidgetPointer(arg3)) < add(ivar6, getWidgetActualHeight(new WidgetPointer(arg0))))) {
|
|
ivar5 = subtract(ivar5, add(rndExcl(3), 2));
|
|
ivar6 = subtract(ivar6, add(rndExcl(3), 2));
|
|
if (arg4 <= getClientCycle()) {
|
|
playSoundEffect(819, 1, 0);
|
|
arg4 = add(add(getClientCycle(), 20), rndExcl(40));
|
|
}
|
|
}
|
|
} else {
|
|
if (((ivar5 >= getWidgetActualX(new WidgetPointer(arg3))) && (ivar5 < add(getWidgetActualX(new WidgetPointer(arg3)), getWidgetActualWidth(new WidgetPointer(arg3))))) && ((ivar6 >= getWidgetActualY(new WidgetPointer(arg3))) && (ivar6 < add(getWidgetActualY(new WidgetPointer(arg3)), getWidgetActualHeight(new WidgetPointer(arg3)))))) {
|
|
ivar5 = add(add(ivar5, rndExcl(3)), 2);
|
|
ivar6 = add(add(ivar6, rndExcl(3)), 2);
|
|
if (arg4 <= getClientCycle()) {
|
|
playSoundEffect(819, 1, 0);
|
|
arg4 = add(add(getClientCycle(), 20), rndExcl(40));
|
|
}
|
|
}
|
|
}
|
|
ivar5 = max(ivar5, 0);
|
|
ivar6 = max(ivar6, 0);
|
|
ivar7 = subtract(getWidgetActualWidth(new WidgetPointer(getWidgetParentId(new WidgetPointer(arg0)))), getWidgetActualWidth(new WidgetPointer(arg0)));
|
|
ivar5 = min(ivar5, ivar7);
|
|
ivar8 = subtract(getWidgetActualHeight(new WidgetPointer(getWidgetParentId(new WidgetPointer(arg0)))), getWidgetActualHeight(new WidgetPointer(arg0)));
|
|
ivar6 = min(ivar6, ivar8);
|
|
IF (ivar5 <= 0)
|
|
GOTO flow_14
|
|
GOTO flow_15
|
|
flow_14:
|
|
IF (arg1 < 0)
|
|
GOTO flow_17
|
|
flow_15:
|
|
IF ((ivar5 >= ivar7) && (arg1 > 0))
|
|
GOTO flow_17
|
|
GOTO flow_18
|
|
flow_17:
|
|
arg1 = subtract(0, arg1);
|
|
flow_18:
|
|
IF (ivar6 <= 0)
|
|
GOTO flow_19
|
|
GOTO flow_20
|
|
flow_19:
|
|
IF (arg2 < 0)
|
|
GOTO flow_22
|
|
flow_20:
|
|
IF ((ivar6 >= ivar8) && (arg2 > 0))
|
|
GOTO flow_22
|
|
GOTO flow_23
|
|
flow_22:
|
|
arg2 = subtract(0, arg2);
|
|
flow_23:
|
|
if (((boolean)arg1)) {
|
|
arg1 = add(rndExcl(3), 1);
|
|
}
|
|
if (((boolean)arg2)) {
|
|
arg2 = add(rndExcl(3), 1);
|
|
}
|
|
setWidgetPosition(ivar5, ivar6, 0, 0, new WidgetPointer(arg0));
|
|
setScriptCallOnGameloop(2132, new WidgetPointer(arg0), arg1, arg2, new WidgetPointer(arg3), arg4, "IiiIi", new WidgetPointer(arg0));
|
|
return;
|
|
}
|