only tested with frogs, refining needed, will try with slimes later, prepared for KO
create a hidden list to store the extra relations
- Code: Select all
public final LinkedList<Relation> lsrelHidden = new LinkedList<Relation>();
in uimsg "new" , limit relations to 6, add others to a secondary list
- Code: Select all
if (lsrel.size() < 6)
lsrel.addFirst(rel);
else
lsrelHidden.addFirst(rel);
in uimsg "del" , check for hidden relations to restore:
- Code: Select all
lsrel.remove(rel);
if (!lsrelHidden.isEmpty()){
lsrel.add(lsrelHidden.remove());
change getrel() to check if switching from lists is needed :
- Code: Select all
private Relation getrel(long gobid) {
for(Relation rel : lsrel) {
if(rel.gobid == gobid)
return(rel);
}
if (!lsrel.isEmpty()) {
for (Relation rel : lsrelHidden) {
if (rel.gobid == gobid) {
synchronized (lsrel) {
//switch rel from lists
Relation switchRel = lsrel.remove();
lsrelHidden.addFirst(switchRel);
lsrel.addFirst(rel);
lsrelHidden.remove(rel);
return (rel);
}
}
}
}
throw(new Notfound(gobid));
}