/*
* Copyright (C) 2007,2011.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 or
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*/
package uk.me.parabola.imgfmt.mps;
import java.io.IOException;
import uk.me.parabola.io.StructuredOutputStream;
/**
* A block describing an individual map.
*
* The family id, product id, series name, area name and map description can
* be set per map.
*
* @author Steve Ratcliffe
*/
public class MapBlock extends MpsBlock {
private static final int BLOCK_TYPE = 0x4c;
private int familyId;
private int productId;
private int mapNumber;
private int hexNumber;
private String seriesName;
private String mapDescription;
private String areaName;
public MapBlock(int codePage) {
super(BLOCK_TYPE, codePage);
}
protected void writeBody(StructuredOutputStream out) throws IOException {
out.write2(productId);
out.write2(familyId);
out.write4(mapNumber);
out.writeString(seriesName);
out.writeString(mapDescription);
out.writeString(areaName);
out.write4(hexNumber);
out.write4(0);
}
public void setIds(int familyId, int productId) {
this.familyId = familyId;
this.productId = productId;
}
public void setSeriesName(String seriesName) {
this.seriesName = seriesName;
}
public void setMapNumber(int mapNumber) {
this.mapNumber = mapNumber;
}
public void setHexNumber(int hexNumber) {
this.hexNumber = hexNumber;
}
public void setMapDescription(String mapDescription) {
this.mapDescription = mapDescription;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
public int getFamilyId() {
return familyId;
}
public int getProductId() {
return productId;
}
public int getMapNumber() {
return mapNumber;
}
public int getHexNumber() {
return hexNumber;
}
public String getSeriesName() {
return seriesName;
}
public String getMapDescription() {
return mapDescription;
}
public String getAreaName() {
return areaName;
}
}