232 lines
4.8 KiB
Text
232 lines
4.8 KiB
Text
|
|
/* synthesized appendix for PU_GUN */
|
|
/* sparse lines above preserve recovered debugger line numbers where available */
|
|
|
|
/* ===== slot 0x06 gotHit ===== */
|
|
function pu_gun_gotHit() /* entry=361 class_id=0x05BA slot=0x06 */
|
|
{
|
|
set_info(0x020C, *(arg_06));
|
|
process_exclude();
|
|
spawn WALLGUN2.slot_21(arg_0C, arg_0A, arg_06);
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x0A equip ===== */
|
|
function pu_gun_equip() /* entry=361 class_id=0x05BA slot=0x0A */
|
|
{
|
|
set_info(0x0211, *(arg_06));
|
|
process_exclude();
|
|
if (World.getControlledNPCNum() == 0) {
|
|
spawn WALLGUN.slot_24(pid, arg_0A, World.getControlledNPCNum(), arg_06);
|
|
suspend;
|
|
return;
|
|
}
|
|
else {
|
|
spawn WALLGUN.slot_24(pid, arg_0A, global[0x001E], arg_06);
|
|
suspend;
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x0B unequip ===== */
|
|
function pu_gun_unequip() /* entry=361 class_id=0x05BA slot=0x0B */
|
|
{
|
|
set_info(0x0212, *(arg_06));
|
|
process_exclude();
|
|
if (!(Item.getStatus(arg_06) & 4)) {
|
|
return;
|
|
}
|
|
else {
|
|
spawn WALLGUN.slot_27(arg_06);
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x0E calledFromAnim ===== */
|
|
function pu_gun_calledFromAnim() /* entry=361 class_id=0x05BA slot=0x0E */
|
|
{
|
|
entry:
|
|
set_info(0x021A, *(arg_06));
|
|
process_exclude();
|
|
local_02 = *(arg_06);
|
|
local_05 = Actor.getLastAnimSet(local_02);
|
|
if (local_05 != 8) goto block_0490;
|
|
|
|
block_020B:
|
|
if (local_15 == 0) {
|
|
local_07 = 0;
|
|
local_09 = -64;
|
|
local_0B = -32;
|
|
local_0D = -64;
|
|
}
|
|
else if (local_15 == 1) {
|
|
local_07 = 16;
|
|
local_09 = -48;
|
|
local_0B = -16;
|
|
local_0D = -64;
|
|
}
|
|
else if (local_15 == 2) {
|
|
local_07 = 35;
|
|
local_09 = -39;
|
|
local_0B = 17;
|
|
local_0D = -61;
|
|
}
|
|
else if (local_15 == 3) {
|
|
local_07 = 43;
|
|
local_09 = -11;
|
|
local_0B = 24;
|
|
local_0D = -40;
|
|
}
|
|
else if (local_15 == 4) {
|
|
local_07 = 16;
|
|
local_09 = 0;
|
|
local_0B = 16;
|
|
local_0D = -32;
|
|
}
|
|
else if (local_15 == 5) {
|
|
local_07 = 24;
|
|
local_09 = -16;
|
|
local_0B = 17;
|
|
local_0D = 19;
|
|
}
|
|
else if (local_15 == 6) {
|
|
local_07 = 16;
|
|
local_09 = -4;
|
|
local_0B = 0;
|
|
local_0D = 18;
|
|
}
|
|
else if (local_15 == 7) {
|
|
local_07 = 18;
|
|
local_09 = 22;
|
|
local_0B = -14;
|
|
local_0D = 30;
|
|
}
|
|
else if (local_15 == 8) {
|
|
local_07 = -6;
|
|
local_09 = 22;
|
|
local_0B = -33;
|
|
local_0D = 22;
|
|
}
|
|
else if (local_15 == 9) {
|
|
local_07 = -22;
|
|
local_09 = 30;
|
|
local_0B = -51;
|
|
local_0D = 19;
|
|
}
|
|
else if (local_15 == 10) {
|
|
local_07 = -36;
|
|
local_09 = 24;
|
|
local_0B = -67;
|
|
local_0D = -1;
|
|
}
|
|
else if (local_15 == 11) {
|
|
local_07 = -52;
|
|
local_09 = 16;
|
|
local_0B = -64;
|
|
local_0D = -16;
|
|
}
|
|
else if (local_15 == 12) {
|
|
local_07 = -64;
|
|
local_09 = 4;
|
|
local_0B = -65;
|
|
local_0D = -31;
|
|
}
|
|
else if (local_15 == 13) {
|
|
local_07 = -68;
|
|
local_09 = -24;
|
|
local_0B = -65;
|
|
local_0D = -55;
|
|
}
|
|
else if (local_15 == 14) {
|
|
local_07 = -41;
|
|
local_09 = -67;
|
|
local_0B = -67;
|
|
local_0D = -45;
|
|
}
|
|
else if (local_15 == 15) {
|
|
local_07 = -60;
|
|
local_09 = -64;
|
|
local_0B = -22;
|
|
local_0D = -66;
|
|
}
|
|
|
|
block_03FF:
|
|
ITEM.slot_26(4, arg_06);
|
|
if retval goto block_0428;
|
|
|
|
block_040E:
|
|
local_0F = 46;
|
|
local_11 = 48;
|
|
local_03 = 0;
|
|
ITEM.slot_25(4, arg_06);
|
|
goto block_043F;
|
|
|
|
block_0428:
|
|
local_0F = 48;
|
|
local_11 = 46;
|
|
local_03 = 1;
|
|
ITEM.slot_24(4, arg_06);
|
|
|
|
block_043F:
|
|
spawn FREE.slot_3B(pid, 5, 0x00000000);
|
|
suspend;
|
|
goto block_0541;
|
|
|
|
block_0490:
|
|
set_info(0x00F0, 0);
|
|
/* loop_selector local_17 in nearby_items(shape=0x04E7, origin=local_02) */
|
|
|
|
block_04AC:
|
|
if condition goto block_04F1;
|
|
|
|
block_04AF:
|
|
if (Intrinsic000D(local_02) != Item.getQLo(local_17)) goto block_04ED;
|
|
|
|
block_04C5:
|
|
if (Item.getMapNum(local_17) != 0) goto block_04ED;
|
|
|
|
block_04D4:
|
|
spawn TRIGGER.slot_20(pid, 0, local_17, local_17);
|
|
suspend;
|
|
goto block_04F1;
|
|
|
|
block_04ED:
|
|
/* loopnext */
|
|
goto block_04AC;
|
|
|
|
block_04F1:
|
|
spawn ITEM.slot_2A(pid, 1, 2, local_02);
|
|
suspend;
|
|
|
|
block_0541:
|
|
return;
|
|
|
|
}
|
|
|
|
/* ===== slot 0x0F enterFastArea ===== */
|
|
function pu_gun_enterFastArea() /* entry=361 class_id=0x05BA slot=0x0F */
|
|
{
|
|
set_info(0x021B, *(arg_06));
|
|
process_exclude();
|
|
if (*(arg_06) >= 0x0100) {
|
|
return;
|
|
}
|
|
else if (!(Item.getStatus(arg_06) & 4)) {
|
|
return;
|
|
}
|
|
else {
|
|
spawn WALLGUN.slot_27(arg_06);
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x10 leaveFastArea ===== */
|
|
function pu_gun_leaveFastArea() /* entry=361 class_id=0x05BA slot=0x10 */
|
|
{
|
|
set_info(0x021C, *(arg_06));
|
|
process_exclude();
|
|
/* bit_not */
|
|
FREE.slot_3C(1, *(arg_06));
|
|
FREE.slot_3C(0x020A, *(arg_06));
|
|
return;
|
|
}
|