Better Flare/Avert targeting / Fixed targets resetting on save load

This commit is contained in:
Anuken
2023-12-10 08:32:49 -05:00
parent 484d89f022
commit e494806cc8
7 changed files with 39 additions and 2 deletions

View File

@@ -437,6 +437,8 @@ public abstract class SaveVersion extends SaveFileReader{
//entityMapping is null in older save versions, so use the default
var mapping = this.entityMapping == null ? EntityMapping.idMap : this.entityMapping;
Seq<Entityc> entities = new Seq<>();
int amount = stream.readInt();
for(int j = 0; j < amount; j++){
readChunk(stream, true, in -> {
@@ -449,12 +451,17 @@ public abstract class SaveVersion extends SaveFileReader{
int id = in.readInt();
Entityc entity = (Entityc)mapping[typeid].get();
entities.add(entity);
EntityGroup.checkNextId(id);
entity.id(id);
entity.read(Reads.get(in));
entity.add();
});
}
for(var e : entities){
e.afterAllRead();
}
}
public void readEntityMapping(DataInput stream) throws IOException{

View File

@@ -563,13 +563,14 @@ public class TypeIO{
ai.targetPos = null;
}
ai.setupLastPos();
ai.readAttackTarget = -1;
if(hasAttack){
byte entityType = read.b();
if(entityType == 1){
ai.attackTarget = world.build(read.i());
}else{
ai.attackTarget = Groups.unit.getByID(read.i());
ai.attackTarget = Groups.unit.getByID(ai.readAttackTarget = read.i());
}
}else{
ai.attackTarget = null;