Crusader_Decomp/USECODE/EUSECODE_extracted/pseudocode/DETPAC/slot_01_use.txt

114 lines
2.5 KiB
Text

function detpac_use() /* entry=319 class_id=0x055F slot=0x01 */
{
var
referent, /* [BP+00h] type=0x69 */
InCrouch, /* [BP-01h] type=0x62 */
Bomb, /* [BP-03h] type=0x24 */
item, /* [BP-05h] type=0x24 */
lastAnim, /* [BP-07h] type=0x69 */
xOff, /* [BP-09h] type=0x69 */
yOff, /* [BP-0Bh] type=0x69 */
mine; /* [BP-0Dh] type=0x24 */
set_info(0x0207, *(arg_06));
process_exclude();
Bomb = *(arg_06);
if (!Item.isInNPC(arg_06)) {
/* global_address global_id=0x3C */
if (Actor.getMap() == 40) {
return;
}
set_info(0x00F0, 0);
lastAnim = 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 = 1;
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 */
/* global_address global_id=0x3C */
/* global_address global_id=0x3C */
if (InCrouch) {
/* global_address global_id=0x3C */
/* global_address global_id=0x3C */
suspend;
}
return;
}
return;
}