Rev 2045 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/*
* Copyright (C) 2009.
*
* 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.app.mdr;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import uk.me.parabola.imgfmt.app.ImgFileWriter;
/**
* Holds all the regions for each map.
*
* @author Steve Ratcliffe
*/
public class Mdr13
extends MdrSection
implements HasHeaderFlags
{
private final List<Mdr13Record
> regions =
new ArrayList<Mdr13Record
>();
public Mdr13
(MdrConfig config
) {
setConfig
(config
);
}
public void addRegion
(Mdr13Record rec
) {
regions.
add(rec
);
}
public void writeSectData
(ImgFileWriter writer
) {
Collections.
sort(regions
);
for (Mdr13Record region : regions
) {
putMapIndex
(writer, region.
getMapIndex());
writer.
putChar((char) region.
getRegionIndex());
writer.
putChar((char) region.
getCountryIndex());
putStringOffset
(writer, region.
getStrOffset());
}
}
public int getItemSize
() {
return getSizes
().
getMapSize() +
4 + getSizes
().
getStrOffSize();
}
/**
* The number of records in this section.
*
* @return The number of items in the section.
*/
protected int numberOfItems
() {
return regions.
size();
}
@
Override
public int getExtraValue
() {
return 0x00
;
}
public List<Mdr13Record
> getRegions
() {
return regions
;
}
}