
Originally Posted by
Lystuya

How might this be fixed?
This is what I had before, I edit it.
Code:
private void build3dScreenMenu()
{
if(itemSelected == 0 && spellSelected == 0)
{
menuActionName[menuActionRow] = "Walk here";
menuActionID[menuActionRow] = 516;
menuActionCmd2[menuActionRow] = super.mou***;
menuActionCmd3[menuActionRow] = super.mouseY;
menuActionRow++;
}
int j = -1;
for(int k = 0; k < Model.anInt1687; k++)
{
int l = Model.anIntArray1688[k];
int i1 = l & 0x7f;
int j1 = l >> 7 & 0x7f;
int k1 = l >> 29 & 3;
int l1 = l >> 14 & 0x7fff;
if(l == j)
continue;
j = l;
if(k1 == 2 && worldController.method304(plane, i1, j1, l) >= 0)
{
ObjectDef class46 = ObjectDef.forID(l1);
if(class46.childrenIDs != null)
class46 = class46.method580();
if(class46 == null)
continue;
if(itemSelected == 1)
{
menuActionName[menuActionRow] = "Use " + selectedItemName + " -> @[email protected]" + class46.name;
menuActionID[menuActionRow] = 62;
menuActionCmd1[menuActionRow] = l;
menuActionCmd2[menuActionRow] = i1;
menuActionCmd3[menuActionRow] = j1;
menuActionRow++;
} else
if(spellSelected == 1)
{
if((spellUsableOn & 4) == 4)
{
menuActionName[menuActionRow] = spellTooltip + " @[email protected]" + class46.name;
menuActionID[menuActionRow] = 956;
menuActionCmd1[menuActionRow] = l;
menuActionCmd2[menuActionRow] = i1;
menuActionCmd3[menuActionRow] = j1;
menuActionRow++;
}
} else
{
if(class46.itemActions != null)
{
for(int i2 = 4; i2 >= 0; i2--)
if(class46.itemActions[i2] != null)
{
menuActionName[menuActionRow] = class46.itemActions[i2] + " @[email protected]" + class46.name;
if(i2 == 0)
menuActionID[menuActionRow] = 502;
if(i2 == 1)
menuActionID[menuActionRow] = 900;
if(i2 == 2)
menuActionID[menuActionRow] = 113;
if(i2 == 3)
menuActionID[menuActionRow] = 872;
if(i2 == 4)
menuActionID[menuActionRow] = 1062;
menuActionCmd1[menuActionRow] = l;
menuActionCmd2[menuActionRow] = i1;
menuActionCmd3[menuActionRow] = j1;
menuActionRow++;
}
}
if(idToggle == true) {
menuActionName[menuActionRow] = "Examine @[email protected]" + class46.name + " @[email protected](@[email protected]" + l1 + "@[email protected]) (@[email protected]" + (i1 + ba***) + "," + (j1 + baseY) + "@[email protected])";
} else {
menuActionName[menuActionRow] = "Examine @[email protected]" + class46.name;
}
menuActionID[menuActionRow] = 1226;
menuActionCmd1[menuActionRow] = class46.type << 14;
menuActionCmd2[menuActionRow] = i1;
menuActionCmd3[menuActionRow] = j1;
menuActionRow++;
}
}
if(k1 == 1)
{
NPC npc = npcArray[l1];
if(npc.desc.aByte68 == 1 && (npc.x & 0x7f) == 64 && (npc.y & 0x7f) == 64)
{
for(int j2 = 0; j2 < npcCount; j2++)
{
NPC npc2 = npcArray[npcIndices[j2]];
if(npc2 != null && npc2 != npc && npc2.desc.aByte68 == 1 && npc2.x == npc.x && npc2.y == npc.y)
buildAtNPCMenu(npc2.desc, npcIndices[j2], j1, i1);
}
for(int l2 = 0; l2 < playerCount; l2++)
{
Player player = playerArray[playerIndices[l2]];
if(player != null && player.x == npc.x && player.y == npc.y)
buildAtPlayerMenu(i1, playerIndices[l2], player, j1);
}
}
buildAtNPCMenu(npc.desc, l1, j1, i1);
}
if(k1 == 0)
{
Player player = playerArray[l1];
if((player.x & 0x7f) == 64 && (player.y & 0x7f) == 64)
{
for(int k2 = 0; k2 < npcCount; k2++)
{
NPC class30_sub2_sub4_sub1_sub1_2 = npcArray[npcIndices[k2]];
if(class30_sub2_sub4_sub1_sub1_2 != null && class30_sub2_sub4_sub1_sub1_2.desc.aByte68 == 1 && class30_sub2_sub4_sub1_sub1_2.x == player.x && class30_sub2_sub4_sub1_sub1_2.y == player.y)
buildAtNPCMenu(class30_sub2_sub4_sub1_sub1_2.desc, npcIndices[k2], j1, i1);
}
for(int i3 = 0; i3 < playerCount; i3++)
{
Player class30_sub2_sub4_sub1_sub2_2 = playerArray[playerIndices[i3]];
if(class30_sub2_sub4_sub1_sub2_2 != null && class30_sub2_sub4_sub1_sub2_2 != player && class30_sub2_sub4_sub1_sub2_2.x == player.x && class30_sub2_sub4_sub1_sub2_2.y == player.y)
buildAtPlayerMenu(i1, playerIndices[i3], class30_sub2_sub4_sub1_sub2_2, j1);
}
}
buildAtPlayerMenu(i1, l1, player, j1);
}
if(k1 == 3)
{
NodeList class19 = groundArray[plane][i1][j1];
if(class19 != null)
{
for(Item item = (Item)class19.getFirst(); item != null; item = (Item)class19.getNext())
{
ItemDef itemDef = ItemDef.forID(item.ID);
if(itemSelected == 1)
{
menuActionName[menuActionRow] = "Use " + selectedItemName + " -> @[email protected]" + itemDef.name;
menuActionID[menuActionRow] = 511;
menuActionCmd1[menuActionRow] = item.ID;
menuActionCmd2[menuActionRow] = i1;
menuActionCmd3[menuActionRow] = j1;
menuActionRow++;
} else
if(spellSelected == 1)
{
if((spellUsableOn & 1) == 1)
{
menuActionName[menuActionRow] = spellTooltip + " @[email protected]" + itemDef.name;
menuActionID[menuActionRow] = 94;
menuActionCmd1[menuActionRow] = item.ID;
menuActionCmd2[menuActionRow] = i1;
menuActionCmd3[menuActionRow] = j1;
menuActionRow++;
}
} else
{
for(int j3 = 4; j3 >= 0; j3--)
if(itemDef.groundActions != null && itemDef.groundActions[j3] != null)
{
menuActionName[menuActionRow] = itemDef.groundActions[j3] + " @[email protected]" + itemDef.name;
if(j3 == 0)
menuActionID[menuActionRow] = 652;
if(j3 == 1)
menuActionID[menuActionRow] = 567;
if(j3 == 2)
menuActionID[menuActionRow] = 234;
if(j3 == 3)
menuActionID[menuActionRow] = 244;
if(j3 == 4)
menuActionID[menuActionRow] = 213;
menuActionCmd1[menuActionRow] = item.ID;
menuActionCmd2[menuActionRow] = i1;
menuActionCmd3[menuActionRow] = j1;
menuActionRow++;
} else
if(j3 == 2)
{
menuActionName[menuActionRow] = "Take @[email protected]" + itemDef.name;
menuActionID[menuActionRow] = 234;
menuActionCmd1[menuActionRow] = item.ID;
menuActionCmd2[menuActionRow] = i1;
menuActionCmd3[menuActionRow] = j1;
menuActionRow++;
}
if(idToggle == true) {
menuActionName[menuActionRow] = "Examine @[email protected]" + itemDef.name + " @[email protected](@[email protected]" + item.ID + "@[email protected])";
} else {
menuActionName[menuActionRow] = "Examine @[email protected]" + itemDef.name;
}
menuActionID[menuActionRow] = 1448;
menuActionCmd1[menuActionRow] = item.ID;
menuActionCmd2[menuActionRow] = i1;
menuActionCmd3[menuActionRow] = j1;
menuActionRow++;
}
}
}
}
}
}