126 lines
2.8 KiB
Text
126 lines
2.8 KiB
Text
function landmine_use() /* entry=206 class_id=0x039A slot=0x01 */
|
|
{
|
|
var
|
|
referent, /* [BP+00h] type=0x69 */
|
|
InCrouch, /* [BP-01h] type=0x62 */
|
|
landMine, /* [BP-03h] type=0x24 */
|
|
item, /* [BP-05h] type=0x24 */
|
|
xOff, /* [BP-07h] type=0x69 */
|
|
yOff, /* [BP-09h] type=0x69 */
|
|
mine, /* [BP-0Bh] type=0x24 */
|
|
wp; /* [BP-10h] type=0x24 */
|
|
|
|
set_info(0x0207, *(arg_06));
|
|
process_exclude();
|
|
landMine = *(arg_06);
|
|
/* global_address global_id=0x3C */
|
|
if (Actor.getMap() == 40) {
|
|
return;
|
|
}
|
|
else {
|
|
set_info(0x00F0, 0);
|
|
/* global_address global_id=0x3C */
|
|
while (!Actor.isBusy()) {
|
|
spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
|
|
suspend;
|
|
}
|
|
/* global_address global_id=0x3C */
|
|
if (Actor.getDir() == 0) {
|
|
xOff = -1;
|
|
yOff = -3;
|
|
}
|
|
else if (Actor.getDir() == 1) {
|
|
xOff = 0;
|
|
yOff = -3;
|
|
}
|
|
else if (Actor.getDir() == 2) {
|
|
xOff = 2;
|
|
yOff = -3;
|
|
}
|
|
else if (Actor.getDir() == 3) {
|
|
xOff = 2;
|
|
yOff = -2;
|
|
}
|
|
else if (Actor.getDir() == 4) {
|
|
xOff = 2;
|
|
yOff = -1;
|
|
}
|
|
else if (Actor.getDir() == 5) {
|
|
xOff = 2;
|
|
yOff = 0;
|
|
}
|
|
else if (Actor.getDir() == 6) {
|
|
xOff = 2;
|
|
yOff = 2;
|
|
}
|
|
else if (Actor.getDir() == 7) {
|
|
xOff = 0;
|
|
yOff = 2;
|
|
}
|
|
else if (Actor.getDir() == 8) {
|
|
xOff = -1;
|
|
yOff = 2;
|
|
}
|
|
else if (Actor.getDir() == 9) {
|
|
xOff = -2;
|
|
yOff = 2;
|
|
}
|
|
else if (Actor.getDir() == 10) {
|
|
xOff = -3;
|
|
yOff = 2;
|
|
}
|
|
else if (Actor.getDir() == 11) {
|
|
xOff = -3;
|
|
yOff = 1;
|
|
}
|
|
else if (Actor.getDir() == 12) {
|
|
xOff = -3;
|
|
yOff = 0;
|
|
}
|
|
else if (Actor.getDir() == 13) {
|
|
xOff = -3;
|
|
yOff = -1;
|
|
}
|
|
else if (Actor.getDir() == 14) {
|
|
xOff = -3;
|
|
yOff = -2;
|
|
}
|
|
else if (Actor.getDir() == 15) {
|
|
xOff = -3;
|
|
yOff = -3;
|
|
}
|
|
/* global_address global_id=0x3C */
|
|
if (!Actor.getSomeFlagProbablyCrouch()) {
|
|
InCrouch = 1;
|
|
}
|
|
else {
|
|
InCrouch = 0;
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
suspend;
|
|
}
|
|
/* global_address global_id=0x3C */
|
|
wp = (Item.getX() + (xOff * 16));
|
|
/* global_address global_id=0x3C */
|
|
local_0E = (Item.getY() + (yOff * 16));
|
|
/* global_address global_id=0x3C */
|
|
local_0C = Item.getZ();
|
|
if (!Item.legalCreateAtPoint(wp, 0, 0x039A, mine)) {
|
|
}
|
|
else if (InCrouch) {
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
suspend;
|
|
}
|
|
return;
|
|
if (InCrouch) {
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
suspend;
|
|
}
|
|
/* global_address global_id=0x3C */
|
|
/* global_address global_id=0x3C */
|
|
suspend;
|
|
}
|
|
return;
|
|
}
|