MountService.canMount() now accounts for passenger capacity

This commit is contained in:
Seefo
2014-04-21 21:00:34 -04:00
parent aa843a91d3
commit 6906ef14fd
+20
View File
@@ -36,6 +36,8 @@ import resources.datatables.StateStatus;
import resources.objects.building.BuildingObject;
import resources.objects.creature.CreatureObject;
import resources.objects.player.PlayerObject;
import engine.clientdata.ClientFileManager;
import engine.clientdata.visitors.DatatableVisitor;
import engine.resources.container.Traverser;
import engine.resources.objects.SWGObject;
import engine.resources.service.INetworkDispatch;
@@ -177,6 +179,8 @@ public class MountService implements INetworkDispatch {
return;
}
mount.setAttachment("pcdAppearanceFilename", pcd.getTemplateData().getAttribute("appearanceFilename"));
mount.setFaction(actor.getFaction());
mount.setFactionStatus(actor.getFactionStatus());
@@ -582,6 +586,22 @@ public class MountService implements INetworkDispatch {
return false;
}
try
{
DatatableVisitor visitor = ClientFileManager.loadFile("datatables/mount/saddle_appearance_map.iff", DatatableVisitor.class);
for(int i = 0; i < visitor.getRowCount(); i++)
{
if(visitor.getObject(i, 2).equals(mount.getAttachment("pcdAppearanceFilename"))) // saddle_appearance_name
{
if(passengers < (int) visitor.getObject(i, 1)) return true; // saddle_capacity
break;
}
}
}
catch (Exception e) { e.printStackTrace(); }
if(passengers > 0) return false;
return true;
}