Skip to content

Commit 7cd711a

Browse files
committed
Complete patching, loading, and saving processes
Keep track of all level data, writing it out to file when saving Add resource bindings for all level items Add item selection for all items in level viewer Move Blast Corps Level meta data to ROM code Clean up BlastCorpsEditorForm Derive item classes from new BlastCorpsItem class
1 parent d6cc476 commit 7cd711a

File tree

7 files changed

+978
-432
lines changed

7 files changed

+978
-432
lines changed

BlastCorpsConsole/Program.cs

Lines changed: 10 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -8,85 +8,25 @@ class Program
88
{
99
static void Main(string[] args)
1010
{
11-
List<BlastCorpsLevelMeta> levels;
12-
string tmpDir = Path.GetTempPath();
13-
string inputDir = @"C:\tools\blast_corps\levels";
14-
15-
levels = new List<BlastCorpsLevelMeta>()
11+
if (args.Length < 1)
1612
{
17-
new BlastCorpsLevelMeta{ id = 0, start = 0x4ACC10, end = 0x4B8960, filename = "chimp.raw", name = "Simian Acres" },
18-
new BlastCorpsLevelMeta{ id = 1, start = 0x4A5660, end = 0x4ACC10, filename = "lagp.raw", name = "Angel City" },
19-
new BlastCorpsLevelMeta{ id = 2, start = 0x4B8960, end = 0x4BFD60, filename = "valley.raw", name = "Outland Farm" },
20-
new BlastCorpsLevelMeta{ id = 3, start = 0x4BFD60, end = 0x4C3AC0, filename = "fact.raw", name = "Blackridge Works" },
21-
new BlastCorpsLevelMeta{ id = 4, start = 0x4C3AC0, end = 0x4D5F90, filename = "dip.raw", name = "Glory Crossing" },
22-
new BlastCorpsLevelMeta{ id = 5, start = 0x4D5F90, end = 0x4E2F70, filename = "beetle.raw", name = "Shuttle Gully" },
23-
new BlastCorpsLevelMeta{ id = 6, start = 0x4E2F70, end = 0x4E4E80, filename = "bonus1.raw", name = "Salvage Wharf" },
24-
new BlastCorpsLevelMeta{ id = 7, start = 0x4E4E80, end = 0x4E7C00, filename = "bonus2.raw", name = "Skyfall" },
25-
new BlastCorpsLevelMeta{ id = 8, start = 0x4E7C00, end = 0x4E8F70, filename = "bonus3.raw", name = "Twilight Foundry" },
26-
new BlastCorpsLevelMeta{ id = 9, start = 0x4E8F70, end = 0x4F5C10, filename = "level9.raw", name = "Crystal Rift" },
27-
new BlastCorpsLevelMeta{ id = 10, start = 0x4F5C10, end = 0x500520, filename = "level10.raw", name = "Argent Towers" },
28-
new BlastCorpsLevelMeta{ id = 11, start = 0x500520, end = 0x507E80, filename = "level11.raw", name = "Skerries" },
29-
new BlastCorpsLevelMeta{ id = 12, start = 0x507E80, end = 0x511340, filename = "level12.raw", name = "Diamond Sands" },
30-
new BlastCorpsLevelMeta{ id = 13, start = 0x511340, end = 0x523080, filename = "level13.raw", name = "Ebony Coast" },
31-
new BlastCorpsLevelMeta{ id = 14, start = 0x523080, end = 0x52CD00, filename = "level14.raw", name = "Oyster Harbor" },
32-
new BlastCorpsLevelMeta{ id = 15, start = 0x52CD00, end = 0x532700, filename = "level15.raw", name = "Carrick Point" },
33-
new BlastCorpsLevelMeta{ id = 16, start = 0x532700, end = 0x53E9B0, filename = "level16.raw", name = "Havoc District" },
34-
new BlastCorpsLevelMeta{ id = 17, start = 0x53E9B0, end = 0x54A820, filename = "level17.raw", name = "Ironstone Mine" },
35-
new BlastCorpsLevelMeta{ id = 18, start = 0x54A820, end = 0x552DE0, filename = "level18.raw", name = "Beeton Tracks" },
36-
new BlastCorpsLevelMeta{ id = 19, start = 0x552DE0, end = 0x555000, filename = "level19.raw", name = "J-Bomb" },
37-
new BlastCorpsLevelMeta{ id = 20, start = 0x555000, end = 0x560E90, filename = "level20.raw", name = "Jade Plateau" },
38-
new BlastCorpsLevelMeta{ id = 21, start = 0x560E90, end = 0x5652D0, filename = "level21.raw", name = "Marine Quarter" },
39-
new BlastCorpsLevelMeta{ id = 22, start = 0x5652D0, end = 0x56F3F0, filename = "level22.raw", name = "Cooter Creek" },
40-
new BlastCorpsLevelMeta{ id = 23, start = 0x56F3F0, end = 0x5721E0, filename = "level23.raw", name = "Gibbon's Gate" },
41-
new BlastCorpsLevelMeta{ id = 24, start = 0x5721E0, end = 0x5736E0, filename = "level24.raw", name = "Baboon Catacomb" },
42-
new BlastCorpsLevelMeta{ id = 25, start = 0x5736E0, end = 0x57A2C0, filename = "level25.raw", name = "Sleek Streets" },
43-
new BlastCorpsLevelMeta{ id = 26, start = 0x57A2C0, end = 0x580B60, filename = "level26.raw", name = "Obsidian Mile" },
44-
new BlastCorpsLevelMeta{ id = 27, start = 0x580B60, end = 0x588CE0, filename = "level27.raw", name = "Corvine Bluff" },
45-
new BlastCorpsLevelMeta{ id = 28, start = 0x588CE0, end = 0x58BE80, filename = "level28.raw", name = "Sideswipe" },
46-
new BlastCorpsLevelMeta{ id = 29, start = 0x58BE80, end = 0x597B80, filename = "level29.raw", name = "Echo Marches" },
47-
new BlastCorpsLevelMeta{ id = 30, start = 0x597B80, end = 0x59B7D0, filename = "level30.raw", name = "Kipling Plant" },
48-
new BlastCorpsLevelMeta{ id = 31, start = 0x59B7D0, end = 0x5A5840, filename = "level31.raw", name = "Falchion Field" },
49-
new BlastCorpsLevelMeta{ id = 32, start = 0x5A5840, end = 0x5B0B10, filename = "level32.raw", name = "Morgan Hall" },
50-
new BlastCorpsLevelMeta{ id = 33, start = 0x5B0B10, end = 0x5B5A30, filename = "level33.raw", name = "Tempest City" },
51-
new BlastCorpsLevelMeta{ id = 34, start = 0x5B5A30, end = 0x5B8BB0, filename = "level34.raw", name = "Orion Plaza" },
52-
new BlastCorpsLevelMeta{ id = 35, start = 0x5B8BB0, end = 0x5C4C80, filename = "level35.raw", name = "Glander's Ranch" },
53-
new BlastCorpsLevelMeta{ id = 36, start = 0x5C4C80, end = 0x5CA9C0, filename = "level36.raw", name = "Dagger Pass" },
54-
new BlastCorpsLevelMeta{ id = 37, start = 0x5CA9C0, end = 0x5CCF50, filename = "level37.raw", name = "Geode Square" },
55-
new BlastCorpsLevelMeta{ id = 38, start = 0x5CCF50, end = 0x5D1060, filename = "level38.raw", name = "Shuttle Island" },
56-
new BlastCorpsLevelMeta{ id = 39, start = 0x5D1060, end = 0x5DC830, filename = "level39.raw", name = "Mica Park" },
57-
new BlastCorpsLevelMeta{ id = 40, start = 0x5DC830, end = 0x5E6EE0, filename = "level40.raw", name = "Moon" },
58-
new BlastCorpsLevelMeta{ id = 41, start = 0x5E6EE0, end = 0x5EC800, filename = "level41.raw", name = "Cobalt Quarry" },
59-
new BlastCorpsLevelMeta{ id = 42, start = 0x5EC800, end = 0x5F3A80, filename = "level42.raw", name = "Moraine Chase" },
60-
new BlastCorpsLevelMeta{ id = 43, start = 0x5F3A80, end = 0x6014B0, filename = "level43.raw", name = "Mercury" },
61-
new BlastCorpsLevelMeta{ id = 44, start = 0x6014B0, end = 0x60A710, filename = "level44.raw", name = "Venus" },
62-
new BlastCorpsLevelMeta{ id = 45, start = 0x60A710, end = 0x613AA0, filename = "level45.raw", name = "Mars" },
63-
new BlastCorpsLevelMeta{ id = 46, start = 0x613AA0, end = 0x61DD70, filename = "level46.raw", name = "Neptune" },
64-
new BlastCorpsLevelMeta{ id = 47, start = 0x61DD70, end = 0x621AF0, filename = "level47.raw", name = "CMO Intro" },
65-
new BlastCorpsLevelMeta{ id = 48, start = 0x621AF0, end = 0x6269E0, filename = "level48.raw", name = "Silver Junction" },
66-
new BlastCorpsLevelMeta{ id = 49, start = 0x6269E0, end = 0x630C30, filename = "level49.raw", name = "End Sequence" },
67-
new BlastCorpsLevelMeta{ id = 50, start = 0x630C30, end = 0x635700, filename = "level50.raw", name = "Shuttle Clear" },
68-
new BlastCorpsLevelMeta{ id = 51, start = 0x635700, end = 0x63CA10, filename = "level51.raw", name = "Dark Heartland" },
69-
new BlastCorpsLevelMeta{ id = 52, start = 0x63CA10, end = 0x641F30, filename = "level52.raw", name = "Magma Peak" },
70-
new BlastCorpsLevelMeta{ id = 53, start = 0x641F30, end = 0x644810, filename = "level53.raw", name = "Thunderfist" },
71-
new BlastCorpsLevelMeta{ id = 54, start = 0x644810, end = 0x646080, filename = "level54.raw", name = "Saline Watch" },
72-
new BlastCorpsLevelMeta{ id = 55, start = 0x646080, end = 0x647550, filename = "level55.raw", name = "Backlash" },
73-
new BlastCorpsLevelMeta{ id = 56, start = 0x647550, end = 0x654FC0, filename = "level56.raw", name = "Bison Ridge" },
74-
new BlastCorpsLevelMeta{ id = 57, start = 0x654FC0, end = 0x660950, filename = "level57.raw", name = "Ember Hamlet" },
75-
new BlastCorpsLevelMeta{ id = 58, start = 0x660950, end = 0x665F80, filename = "level58.raw", name = "Cromlech Court" },
76-
new BlastCorpsLevelMeta{ id = 59, start = 0x665F80, end = 0x66C900, filename = "level59.raw", name = "Lizard Island" },
77-
};
13+
System.Console.WriteLine("Usage: BlastCorpsConsole <DIR with .raw levels>");
14+
return;
15+
}
16+
string tmpDir = Path.GetTempPath();
17+
string inputDir = args[0];
7818

7919
tmpDir = Path.Combine(tmpDir, "BlastCorps");
8020
System.Console.WriteLine("tmpDir: " + tmpDir);
8121

8222
Directory.CreateDirectory(tmpDir);
8323

84-
foreach (BlastCorpsLevelMeta levelMeta in levels)
24+
foreach (BlastCorpsLevelMeta levelMeta in BlastCorpsRom.levelMeta)
8525
{
86-
string inputFile = Path.Combine(inputDir, levelMeta.filename);
87-
string outputFile = Path.Combine(tmpDir, levelMeta.filename);
26+
string inputFile = Path.Combine(inputDir, levelMeta.filename + ".raw");
27+
string outputFile = Path.Combine(tmpDir, levelMeta.filename + ".raw");
8828
byte[] inData = File.ReadAllBytes(inputFile);
89-
BlastCorpsLevel level = BlastCorpsLevel.decodeLevel(inData);
29+
BlastCorpsLevel level = BlastCorpsLevel.decodeLevel(inData, inData);
9030
byte[] outData = level.ToBytes();
9131
FileStream outStream = File.OpenWrite(outputFile);
9232
outStream.Write(outData, 0, outData.Length);

0 commit comments

Comments
 (0)