Skip to content

Commit 14242c6

Browse files
committed
variable naming for Industry and Land objects
1 parent 5e280eb commit 14242c6

File tree

5 files changed

+76
-38
lines changed

5 files changed

+76
-38
lines changed

Dat/Objects/Industry/IndustryObject.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ public record IndustryObject(
1919
[property: LocoStructOffset(0x08), LocoString, Browsable(false)] string_id NameDownProduction,
2020
[property: LocoStructOffset(0x0A), LocoString, Browsable(false)] string_id NameSingular,
2121
[property: LocoStructOffset(0x0C), LocoString, Browsable(false)] string_id NamePlural,
22-
[property: LocoStructOffset(0x0E), Browsable(false)] image_id _var_0E, // shadows image id base
23-
[property: LocoStructOffset(0x12), Browsable(false)] image_id _var_12, // Base image id for building 0
24-
[property: LocoStructOffset(0x16), Browsable(false)] image_id _var_16,
25-
[property: LocoStructOffset(0x1A), Browsable(false)] image_id _var_1A,
22+
[property: LocoStructOffset(0x0E), Browsable(false)] image_id BaseShadowImageId, // shadows image id base
23+
[property: LocoStructOffset(0x12), Browsable(false)] image_id BaseBuildingImageId, // Base image id for building 0
24+
[property: LocoStructOffset(0x16), Browsable(false)] image_id BaseFarmImageIds,
25+
[property: LocoStructOffset(0x1A), Browsable(false)] uint32_t FarmImagesPerGrowthStage,
2626
[property: LocoStructOffset(0x1E)] uint8_t NumBuildingParts,
2727
[property: LocoStructOffset(0x1F)] uint8_t NumBuildingVariations,
2828
[property: LocoStructOffset(0x20), LocoStructVariableLoad, LocoArrayLength(IndustryObject.BuildingHeightCount)] List<uint8_t> BuildingHeights, // This is the height of a building image
@@ -49,10 +49,10 @@ public record IndustryObject(
4949
[property: LocoStructOffset(0xE3)] Colour MapColour,
5050
[property: LocoStructOffset(0xE4)] IndustryObjectFlags Flags,
5151
[property: LocoStructOffset(0xE8)] uint8_t var_E8,
52-
[property: LocoStructOffset(0xE9)] uint8_t var_E9,
53-
[property: LocoStructOffset(0xEA)] uint8_t var_EA,
54-
[property: LocoStructOffset(0xEB)] uint8_t var_EB,
55-
[property: LocoStructOffset(0xEC)] uint8_t var_EC,
52+
[property: LocoStructOffset(0xE9)] uint8_t FarmTileNumImageAngles, // How many viewing angles the farm tiles have
53+
[property: LocoStructOffset(0xEA)] uint8_t FarmGrowthStageWithNoProduction, // At this stage of growth (except 0), a field tile produces nothing
54+
[property: LocoStructOffset(0xEB)] uint8_t FarmIdealSize, // Max production is reached at farmIdealSize * 25 tiles
55+
[property: LocoStructOffset(0xEC)] uint8_t FarmNumStagesOfGrowth, // How many growth stages there are sprites for
5656
[property: LocoStructOffset(0xED), LocoStructVariableLoad, LocoArrayLength(IndustryObject.MaxWallTypeCount)] List<S5Header> WallTypes, // There can be up to 4 different wall types for an industry
5757
[property: LocoStructOffset(0xF1), LocoStructVariableLoad, Browsable(false)] object_id _BuildingWall, // Selection of wall types isn't completely random from the 4 it is biased into 2 groups of 2 (wall and entrance)
5858
[property: LocoStructOffset(0xF2), LocoStructVariableLoad, Browsable(false)] object_id _BuildingWallEntrance, // An alternative wall type that looks like a gate placed at random places in building perimeter
@@ -177,7 +177,7 @@ public ReadOnlySpan<byte> Load(ReadOnlySpan<byte> remainingData)
177177
}
178178

179179
var_16 = (NumBuildingParts * 4u) + var_12;
180-
var_1A = var_E9 * 21u;
180+
var_1A = FarmTileNumImageAngles * 21u;
181181

182182
return remainingData;
183183
}
@@ -302,7 +302,7 @@ public bool Validate()
302302
return false;
303303
}
304304

305-
switch (var_E9)
305+
switch (FarmTileNumImageAngles)
306306
{
307307
case 1:
308308
case 2:
@@ -312,12 +312,12 @@ public bool Validate()
312312
return false;
313313
}
314314

315-
if (var_EA is not 0xFF and > 7)
315+
if (FarmGrowthStageWithNoProduction is not 0xFF and > 7)
316316
{
317317
return false;
318318
}
319319

320-
if (var_EC > 8)
320+
if (FarmNumStagesOfGrowth > 8)
321321
{
322322
return false;
323323
}

Dat/Objects/LandObject.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ public enum LandObjectFlags : uint8_t
2323
[LocoStringTable("Name")]
2424
public record LandObject(
2525
[property: LocoStructOffset(0x02)] uint8_t CostIndex,
26-
[property: LocoStructOffset(0x03)] uint8_t var_03,
27-
[property: LocoStructOffset(0x04), LocoPropertyMaybeUnused] uint8_t var_04,
26+
[property: LocoStructOffset(0x03)] uint8_t NumGrowthStages,
27+
[property: LocoStructOffset(0x04)] uint8_t NumImageAngles,
2828
[property: LocoStructOffset(0x05)] LandObjectFlags Flags,
2929
[property: LocoStructOffset(0x06), Browsable(false)] object_id CliffEdgeHeader1,
3030
[property: LocoStructOffset(0x07), Browsable(false), LocoPropertyMaybeUnused] object_id CliffEdgeHeader2,
3131
[property: LocoStructOffset(0x08)] int16_t CostFactor,
3232
[property: LocoStructOffset(0x0A), Browsable(false)] image_id Image,
33-
[property: LocoStructOffset(0x0E), Browsable(false)] image_id var_0E,
33+
[property: LocoStructOffset(0x0E), Browsable(false)] uint32_t NumImagesPerGrowthStage,
3434
[property: LocoStructOffset(0x12), Browsable(false)] image_id CliffEdgeImage,
3535
[property: LocoStructOffset(0x16), Browsable(false)] image_id MapPixelImage,
3636
[property: LocoStructOffset(0x1A)] uint8_t DistributionPattern,
@@ -84,17 +84,17 @@ public bool Validate()
8484
return false;
8585
}
8686

87-
if (var_03 < 1)
87+
if (NumGrowthStages < 1)
8888
{
8989
return false;
9090
}
9191

92-
if (var_03 > 8)
92+
if (NumGrowthStages > 8)
9393
{
9494
return false;
9595
}
9696

97-
return var_04 is 1 or 2 or 4;
97+
return NumImageAngles is 1 or 2 or 4;
9898
}
9999

100100
public bool TryGetImageName(int id, out string? value)

DataQuery/Program.cs

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,50 @@
1212

1313
//QueryCostIndices(dir, logger, index);
1414
//QueryCargoCategories(dir, logger, index);
15-
QueryVehicleBodyUnkSprites(dir, logger, index);
15+
//QueryVehicleBodyUnkSprites(dir, logger, index);
16+
QueryIndustryHasShadows(dir, logger, index);
1617

1718
Console.WriteLine("done");
1819

1920
Console.ReadLine();
2021

22+
static void QueryIndustryHasShadows(string dir, Logger logger, ObjectIndex index)
23+
{
24+
var results = new List<(ObjectIndexEntry Obj, ObjectSource ObjectSource)>();
25+
26+
foreach (var obj in index.Objects.Where(x => x.ObjectType == ObjectType.Industry))
27+
{
28+
try
29+
{
30+
var o = SawyerStreamReader.LoadFullObjectFromFile(Path.Combine(dir, obj.Filename), logger);
31+
if (o?.LocoObject != null)
32+
{
33+
var struc = (IndustryObject)o.Value.LocoObject.Object;
34+
var header = o.Value.DatFileInfo.S5Header;
35+
var source = OriginalObjectFiles.GetFileSource(header.Name, header.Checksum);
36+
37+
if (struc.Flags.HasFlag(IndustryObjectFlags.HasShadows))
38+
{
39+
results.Add((obj, source));
40+
}
41+
}
42+
}
43+
catch (Exception ex)
44+
{
45+
Console.WriteLine($"{obj.Filename} - {ex.Message}");
46+
}
47+
}
48+
49+
Console.WriteLine(results.Count);
50+
51+
const string csvHeader = "DatName, ObjectSource";
52+
var lines = results
53+
.OrderBy(x => x.Obj.DatName)
54+
.Select(x => string.Join(',', x.Obj.DatName, x.ObjectSource));
55+
56+
File.WriteAllLines("vehicleBodiesWithUnkSpritesFlag.csv", [csvHeader, .. lines]);
57+
}
58+
2159
static void QueryVehicleBodyUnkSprites(string dir, Logger logger, ObjectIndex index)
2260
{
2361
var results = new List<(ObjectIndexEntry Obj, ObjectSource ObjectSource)>();

Gui/ViewModels/DatTypes/Objects/IndustryViewModel.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,10 @@ public IndustryViewModel(IndustryObject io)
7272
MapColour = io.MapColour;
7373
Flags = io.Flags;
7474
var_E8 = io.var_E8;
75-
var_E9 = io.var_E9;
76-
var_EA = io.var_EA;
77-
var_EB = io.var_EB;
78-
var_EC = io.var_EC;
75+
var_E9 = io.FarmTileNumImageAngles;
76+
var_EA = io.FarmGrowthStageWithNoProduction;
77+
var_EB = io.FarmIdealSize;
78+
var_EC = io.FarmNumStagesOfGrowth;
7979
var_F3 = io.var_E8;
8080
}
8181

@@ -106,10 +106,10 @@ public override IndustryObject GetAsStruct(IndustryObject io)
106106
MapColour = MapColour,
107107
Flags = Flags,
108108
var_E8 = var_E8,
109-
var_E9 = var_E9,
110-
var_EA = var_EA,
111-
var_EB = var_EB,
112-
var_EC = var_EC,
109+
FarmTileNumImageAngles = var_E9,
110+
FarmGrowthStageWithNoProduction = var_EA,
111+
FarmIdealSize = var_EB,
112+
FarmNumStagesOfGrowth = var_EC,
113113
var_F3 = var_E8,
114114
};
115115
}

Tests/LoadSaveTests.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -409,10 +409,10 @@ void assertFunc(ILocoObject obj, IndustryObject struc) => Assert.Multiple(() =>
409409
Assert.That(struc.var_16, Is.EqualTo(40), nameof(struc.var_16));
410410
Assert.That(struc.var_1A, Is.EqualTo(21), nameof(struc.var_1A));
411411
Assert.That(struc.var_E8, Is.EqualTo(1), nameof(struc.var_E8));
412-
Assert.That(struc.var_E9, Is.EqualTo(1), nameof(struc.var_E9));
413-
Assert.That(struc.var_EA, Is.EqualTo(0), nameof(struc.var_EA));
414-
Assert.That(struc.var_EB, Is.EqualTo(0), nameof(struc.var_EB));
415-
Assert.That(struc.var_EC, Is.EqualTo(0), nameof(struc.var_EC));
412+
Assert.That(struc.FarmTileNumImageAngles, Is.EqualTo(1), nameof(struc.FarmTileNumImageAngles));
413+
Assert.That(struc.FarmGrowthStageWithNoProduction, Is.EqualTo(0), nameof(struc.FarmGrowthStageWithNoProduction));
414+
Assert.That(struc.FarmIdealSize, Is.EqualTo(0), nameof(struc.FarmIdealSize));
415+
Assert.That(struc.FarmNumStagesOfGrowth, Is.EqualTo(0), nameof(struc.FarmNumStagesOfGrowth));
416416
Assert.That(struc.var_F3, Is.EqualTo(1), nameof(struc.var_F3));
417417
// Walls
418418
Assert.That(struc.WallTypes, Has.Count.EqualTo(0));
@@ -494,10 +494,10 @@ void assertFunc(ILocoObject obj, IndustryObject struc) => Assert.Multiple(() =>
494494
Assert.That(struc.var_16, Is.EqualTo(16), nameof(struc.var_16));
495495
Assert.That(struc.var_1A, Is.EqualTo(21), nameof(struc.var_1A));
496496
Assert.That(struc.var_E8, Is.EqualTo(1), nameof(struc.var_E8));
497-
Assert.That(struc.var_E9, Is.EqualTo(1), nameof(struc.var_E9));
498-
Assert.That(struc.var_EA, Is.EqualTo(0), nameof(struc.var_EA));
499-
Assert.That(struc.var_EB, Is.EqualTo(0), nameof(struc.var_EB));
500-
Assert.That(struc.var_EC, Is.EqualTo(0), nameof(struc.var_EC));
497+
Assert.That(struc.FarmTileNumImageAngles, Is.EqualTo(1), nameof(struc.FarmTileNumImageAngles));
498+
Assert.That(struc.FarmGrowthStageWithNoProduction, Is.EqualTo(0), nameof(struc.FarmGrowthStageWithNoProduction));
499+
Assert.That(struc.FarmIdealSize, Is.EqualTo(0), nameof(struc.FarmIdealSize));
500+
Assert.That(struc.FarmNumStagesOfGrowth, Is.EqualTo(0), nameof(struc.FarmNumStagesOfGrowth));
501501
Assert.That(struc.var_F3, Is.EqualTo(1), nameof(struc.var_F3));
502502
// Walls
503503
Assert.That(struc.WallTypes, Has.Count.EqualTo(0));
@@ -548,13 +548,13 @@ public void LandObject(string objectName)
548548
void assertFunc(ILocoObject obj, LandObject struc) => Assert.Multiple(() =>
549549
{
550550
Assert.That(struc.CostIndex, Is.EqualTo(2), nameof(struc.CostIndex));
551-
Assert.That(struc.var_03, Is.EqualTo(5), nameof(struc.var_03));
552-
Assert.That(struc.var_04, Is.EqualTo(1), nameof(struc.var_04));
551+
Assert.That(struc.NumGrowthStages, Is.EqualTo(5), nameof(struc.NumGrowthStages));
552+
Assert.That(struc.NumImageAngles, Is.EqualTo(1), nameof(struc.NumImageAngles));
553553
Assert.That(struc.Flags, Is.EqualTo(LandObjectFlags.unk_00), nameof(struc.Flags));
554554
Assert.That(struc.CliffEdgeHeader1, Is.EqualTo(0), nameof(struc.CliffEdgeHeader1));
555555
Assert.That(struc.CliffEdgeHeader2, Is.EqualTo(0), nameof(struc.CliffEdgeHeader2));
556556
Assert.That(struc.CostFactor, Is.EqualTo(20), nameof(struc.CostFactor));
557-
Assert.That(struc.var_0E, Is.EqualTo(0), nameof(struc.var_0E));
557+
Assert.That(struc.NumImagesPerGrowthStage, Is.EqualTo(0), nameof(struc.NumImagesPerGrowthStage));
558558
Assert.That(struc.CliffEdgeImage, Is.EqualTo(0), nameof(struc.CliffEdgeImage));
559559
Assert.That(struc.MapPixelImage, Is.EqualTo(0), nameof(struc.MapPixelImage));
560560
Assert.That(struc.DistributionPattern, Is.EqualTo(0), nameof(struc.DistributionPattern));

0 commit comments

Comments
 (0)