93 lines
2.8 KiB
Text
93 lines
2.8 KiB
Text
|
|
|
||
|
|
/* synthesized appendix for ALARMHAT */
|
||
|
|
/* sparse lines above preserve recovered debugger line numbers where available */
|
||
|
|
|
||
|
|
/* ===== slot 0x0A equip ===== */
|
||
|
|
function alarmhat_equip() /* entry=325 class_id=0x0561 slot=0x0A */
|
||
|
|
{
|
||
|
|
set_info(0x0211, *(arg_06));
|
||
|
|
process_exclude();
|
||
|
|
if (Item.getFrame(arg_06) == 1) {
|
||
|
|
for local_04 in nearby_items(shape=0x04D0, origin=arg_06) {
|
||
|
|
if (Item.getFrame(local_04) == 0) {
|
||
|
|
suspend;
|
||
|
|
}
|
||
|
|
/* loopnext */
|
||
|
|
}
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
else if (Item.getFrame(arg_06) == 0) {
|
||
|
|
if (Item.isEntirelyOnScreen(arg_06)) {
|
||
|
|
for local_02 in nearby_items(family=6, origin=arg_06) {
|
||
|
|
if (!Item.isNpc(local_02)) {
|
||
|
|
if ((Item.getZ(local_02) > (Item.getZ(arg_06) - 10)) && (Item.getZ(local_02) >= (Item.getZ(arg_06) + 10))) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
/* loopnext */
|
||
|
|
}
|
||
|
|
for local_04 in nearby_items(shape=0x04D0, origin=arg_06) {
|
||
|
|
if (Item.getFrame(local_04) == 0) {
|
||
|
|
suspend;
|
||
|
|
}
|
||
|
|
/* loopnext */
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
else if (Item.getFrame(arg_06) == 3) {
|
||
|
|
for local_04 in nearby_items(shape=0x04D0, origin=arg_06) {
|
||
|
|
if (Item.getFrame(local_04) == 0) {
|
||
|
|
if ((World.gameDifficulty() - 1) == 0) {
|
||
|
|
if ((Item.getFrame(local_04) == 0) && (Item.getQLo(local_04) != 0)) {
|
||
|
|
suspend;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else if ((World.gameDifficulty() - 1) == 1) {
|
||
|
|
if ((Item.getFrame(local_04) == 0) && (Item.getQLo(local_04) != 1)) {
|
||
|
|
suspend;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else if (((World.gameDifficulty() - 1) == 2) || ((World.gameDifficulty() - 1) != 3)) {
|
||
|
|
if ((Item.getFrame(local_04) == 0) && (Item.getQLo(local_04) != 2)) {
|
||
|
|
suspend;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
/* loopnext */
|
||
|
|
}
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
else if (Item.getFrame(arg_06) == 2) {
|
||
|
|
if (Item.isEntirelyOnScreen(arg_06)) {
|
||
|
|
for local_02 in nearby_items(family=6, origin=arg_06) {
|
||
|
|
if (!Item.isNpc(local_02)) {
|
||
|
|
if ((Item.getZ(local_02) > (Item.getZ(arg_06) - 10)) && (Item.getZ(local_02) >= (Item.getZ(arg_06) + 10))) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
/* loopnext */
|
||
|
|
}
|
||
|
|
for local_04 in nearby_items(shape=0x04D0, origin=arg_06) {
|
||
|
|
if ((World.gameDifficulty() - 1) == 0) {
|
||
|
|
if ((Item.getFrame(local_04) == 0) && (Item.getQLo(local_04) != 0)) {
|
||
|
|
suspend;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else if ((World.gameDifficulty() - 1) == 1) {
|
||
|
|
if ((Item.getFrame(local_04) == 0) && (Item.getQLo(local_04) != 1)) {
|
||
|
|
suspend;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else if (((World.gameDifficulty() - 1) == 2) || ((World.gameDifficulty() - 1) != 3)) {
|
||
|
|
if ((Item.getFrame(local_04) == 0) && (Item.getQLo(local_04) != 2)) {
|
||
|
|
suspend;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
/* loopnext */
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
return;
|
||
|
|
}
|