utec map generation added

git-svn-id: http://svn.3splooges.com/romraider-arch/trunk@513 d2e2e1cd-ba16-0410-be16-b7c4453c7c2d
This commit is contained in:
Tgui 2007-02-13 21:45:25 +00:00
parent f6a9c33a54
commit a1816d8ef9
1 changed files with 102 additions and 18 deletions

View File

@ -17,22 +17,109 @@ public class UtecMapData {
private double[] tempStorage = new double[440]; private double[] tempStorage = new double[440];
private String stringChecksumHexValue = "";
public void addRawData(int byteData) { public void addRawData(int byteData) {
rawMapData.append(byteData); rawMapData.append(byteData);
} }
public void populateMapData() { public void populateMapDataStructures() {
System.out.println("---------------"); System.out.println("---------------");
//System.out.println(rawMapData); System.out.println(rawMapData);
// Functionality as the method names suggest // Functionality as the method names suggest
cleanUpMapData(); cleanUpMapData();
System.out.println("---------------");
System.out.println(rawMapData);
populateMapName(); populateMapName();
populateMapComment(); populateMapComment();
populateFuelMapData(); populateFuelMapData();
populateTimingMapData(); populateTimingMapData();
populateBoostMapData(); populateBoostMapData();
calculateChecksum(); calculateChecksum();
System.out.println("------------------");
System.out.println(getUpdatedMap());
}
public StringBuffer getUpdatedMap(){
calculateChecksum();
StringBuffer totalFile = new StringBuffer("");
totalFile.append("[START][MAPGROUP1][MAPGROUP]\r");
totalFile.append("Map Name:-["+this.mapName+"]\r");
totalFile.append("Map Comments:-["+this.mapComment+"]\r");
totalFile.append("Fuel Map\r");
for(int i=0 ; i<40 ; i++){
for(int j=0 ; j<11 ; j++){
String temp = this.fuelMap[j][i]+"";
if(temp.endsWith(".0")){
temp = temp.substring(0, temp.length()-2);
}
String number = "["+temp+"]";
int count = 9-number.length();
String spaces = "";
for(int k=0 ; k<count ; k++){
spaces += " ";
}
number = spaces+number;
totalFile.append(number);
}
totalFile.append("\r");
}
totalFile.append("\r");
totalFile.append("Timing Map\r");
for(int i=0 ; i<40 ; i++){
for(int j=0 ; j<11 ; j++){
String temp = this.timingMap[j][i]+"";
if(temp.endsWith(".0")){
temp = temp.substring(0, temp.length()-2);
}
String number = "["+temp+"]";
int count = 9-number.length();
String spaces = "";
for(int k=0 ; k<count ; k++){
spaces += " ";
}
number = spaces+number;
totalFile.append(number);
}
totalFile.append("\r");
}
totalFile.append("\r");
totalFile.append("Boost Map\r");
for(int i=0 ; i<40 ; i++){
for(int j=0 ; j<11 ; j++){
String temp = this.boostMap[j][i]+"";
if(temp.endsWith(".0")){
temp = temp.substring(0, temp.length()-2);
}
String number = "["+temp+"]";
int count = 9-number.length();
String spaces = "";
for(int k=0 ; k<count ; k++){
spaces += " ";
}
number = spaces+number;
totalFile.append(number);
}
totalFile.append("\r");
}
totalFile.append("[END][MAPGROUP]["+this.stringChecksumHexValue.toUpperCase()+"][EOF]");
return totalFile;
} }
public void calculateChecksum(){ public void calculateChecksum(){
@ -43,7 +130,7 @@ public class UtecMapData {
int charValue = charArray[i]; int charValue = charArray[i];
mapChecksumValue += charValue; mapChecksumValue += charValue;
} }
System.out.println("Map name Checksum:"+mapChecksumValue); //System.out.println("Map name Checksum:"+mapChecksumValue);
int mapCommentChecksumValue = 0; int mapCommentChecksumValue = 0;
charArray = this.mapComment.toCharArray(); charArray = this.mapComment.toCharArray();
@ -51,7 +138,7 @@ public class UtecMapData {
int charValue = charArray[i]; int charValue = charArray[i];
mapCommentChecksumValue += charValue; mapCommentChecksumValue += charValue;
} }
System.out.println("Map comment Checksum:"+mapCommentChecksumValue); //System.out.println("Map comment Checksum:"+mapCommentChecksumValue);
int fuelChecksum = 0; int fuelChecksum = 0;
for(int i=0 ; i<40 ; i++){ for(int i=0 ; i<40 ; i++){
@ -59,7 +146,7 @@ public class UtecMapData {
fuelChecksum += (this.fuelMap[j][i]*10 + 1000 + 1); fuelChecksum += (this.fuelMap[j][i]*10 + 1000 + 1);
} }
} }
System.out.println("Fuel Checksum:"+fuelChecksum); //System.out.println("Fuel Checksum:"+fuelChecksum);
int timingChecksum = 0; int timingChecksum = 0;
for(int i=0 ; i<40 ; i++){ for(int i=0 ; i<40 ; i++){
@ -67,7 +154,7 @@ public class UtecMapData {
timingChecksum += (this.timingMap[j][i]*10 + 1000 + 1); timingChecksum += (this.timingMap[j][i]*10 + 1000 + 1);
} }
} }
System.out.println("Timing Checksum:"+timingChecksum); //System.out.println("Timing Checksum:"+timingChecksum);
int boostChecksum = 0; int boostChecksum = 0;
for(int i=0 ; i<40 ; i++){ for(int i=0 ; i<40 ; i++){
@ -75,18 +162,19 @@ public class UtecMapData {
boostChecksum += (this.boostMap[j][i]*100 + 1); boostChecksum += (this.boostMap[j][i]*100 + 1);
} }
} }
System.out.println("Boost Checksum:"+boostChecksum); //System.out.println("Boost Checksum:"+boostChecksum);
int totalChecksum = mapChecksumValue+mapCommentChecksumValue+fuelChecksum+timingChecksum+boostChecksum; int totalChecksum = mapChecksumValue+mapCommentChecksumValue+fuelChecksum+timingChecksum+boostChecksum;
System.out.println("Total decimal checksum:"+totalChecksum); //System.out.println("Total decimal checksum:"+totalChecksum);
String hexString = Integer.toHexString(totalChecksum); String hexString = Integer.toHexString(totalChecksum);
System.out.println("Total hex checksum:"+hexString); //System.out.println("Total hex checksum:"+hexString);
hexString = hexString.substring(1); hexString = hexString.substring(hexString.length()-4, hexString.length());
hexString = 0 + hexString; hexString = 0 + hexString;
totalChecksum = Integer.parseInt(hexString, 16); totalChecksum = Integer.parseInt(hexString, 16);
this.stringChecksumHexValue = hexString;
System.out.println("Total hex checksum:"+Integer.toHexString(totalChecksum)); System.out.println("Total hex checksum:"+Integer.toHexString(totalChecksum));
System.out.println("Final expected value:"+Integer.parseInt("0B05E", 16));
} }
public void populateBoostMapData(){ public void populateBoostMapData(){
@ -255,14 +343,10 @@ public class UtecMapData {
int stop = rawMapData.indexOf("[EOF]") + 5; int stop = rawMapData.indexOf("[EOF]") + 5;
int size = rawMapData.length(); int size = rawMapData.length();
//System.out.println("Start:" + start);
//System.out.println("Stop:" + stop);
//System.out.println("Length:" + size);
if (stop != size) { if (stop != size) {
rawMapData.delete(0, start); rawMapData.delete(0, start);
rawMapData.delete(stop, rawMapData.length()); stop = rawMapData.indexOf("[EOF]") + 5;
//System.out.println("***************" + rawMapData); rawMapData.delete(stop, size);
} else { } else {
//System.out.println("Nothing to update."); //System.out.println("Nothing to update.");
//System.out.println(rawMapData); //System.out.println(rawMapData);
@ -295,7 +379,7 @@ public class UtecMapData {
e.printStackTrace(); e.printStackTrace();
} }
populateMapData(); populateMapDataStructures();
} }