Skip to content

Commit 0dd09fa

Browse files
committedMay 26, 2020
started on fixes for 1.4
1 parent dc1c386 commit 0dd09fa

9 files changed

+27
-10
lines changed
 

‎notes

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
ChecksForMerge -> merge flag
2+
Grass -> grass flag
3+
Moss -> moss flag
4+
DrawFlipMode = 1 -> flip flag
5+
tileSolid -> solid flag
6+
tileBlockLight -> !transparent flag
7+
tileBrick -> brick flag
8+
tileMergeDirt -> dirt flag
9+
tileStone -> stone flag
10+
tileLargeFrames -> large flag
11+
tilePile -> pile flag
12+
tileLighted
13+
wallBlend -> blended wall
14+
wallLargeFrames -> large

‎res/header.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"name":"title","type":"s"},{"name":"seed","type":"s","min":179},{"name":"genVersion","type":"i64","min":179},{"name":"guid","type":"u8","num":16,"min":181},{"name":"worldID","type":"i32"},{"name":"left","type":"i32"},{"name":"right","type":"i32"},{"name":"top","type":"i32"},{"name":"bottom","type":"i32"},{"name":"tilesHigh","type":"i32"},{"name":"tilesWide","type":"i32"},{"name":"expert","min":112},{"name":"creationTime","type":"i64","min":141},{"name":"moonType","type":"u8"},{"name":"treeX","type":"i32","num":3},{"name":"treeStyle","type":"i32","num":4},{"name":"caveBackX","type":"i32","num":3},{"name":"caveBackStyle","type":"i32","num":4},{"name":"iceBackStyle","type":"i32"},{"name":"jungleBackStyle","type":"i32"},{"name":"hellBackStyle","type":"i32"},{"name":"spawnX","type":"i32"},{"name":"spawnY","type":"i32"},{"name":"groundLevel","type":"f64"},{"name":"rockLevel","type":"f64"},{"name":"gameTime","type":"f64"},{"name":"dayNight"},{"name":"moonPhase","type":"i32"},{"name":"bloodMoon"},{"name":"eclipse"},{"name":"dungeonX","type":"i32"},{"name":"dungeonY","type":"i32"},{"name":"crimson"},{"name":"killedBoss1"},{"name":"killedBoss2"},{"name":"killedBoss3"},{"name":"killedQueenBee"},{"name":"killedMechBoss1"},{"name":"killedMechBoss2"},{"name":"killedMechBoss3"},{"name":"killedMechBossAny"},{"name":"killedPlantBoss"},{"name":"killedGolemBoss"},{"name":"killedSlimeKing","min":118},{"name":"savedTinkerer"},{"name":"savedWizard"},{"name":"savedMechanic"},{"name":"killedGoblins"},{"name":"killedClown"},{"name":"killedFrost"},{"name":"killedPirates"},{"name":"smashedOrb"},{"name":"meteorSpawned"},{"name":"shadowOrbCount","type":"u8"},{"name":"altarsSmashed","type":"i32"},{"name":"hardMode"},{"name":"invasionDelay","type":"i32"},{"name":"invasionSize","type":"i32"},{"name":"invasionType","type":"i32"},{"name":"invasionX","type":"f64"},{"name":"slimeRainTime","type":"f64","min":118},{"name":"sundialCooldown","type":"u8","min":113},{"name":"isRaining"},{"name":"rainTime","type":"i32"},{"name":"maxRain","type":"f32"},{"name":"oreTier1","type":"i32"},{"name":"oreTier2","type":"i32"},{"name":"oreTier3","type":"i32"},{"name":"styles","type":"u8","num":8},{"name":"clouds","type":"i32"},{"name":"numClouds","type":"i16"},{"name":"windSpeed","type":"f32"},{"name":"numAnglers","type":"i32","min":95},{"name":"anglers","type":"s","relnum":"numAnglers","min":95},{"name":"savedAngler","min":99},{"name":"anglerQuest","type":"i32","min":101},{"name":"savedStylist","min":104},{"name":"savedTaxCollector","min":129},{"name":"invasionSizeStart","type":"i32","min":107},{"name":"cultistDelay","type":"i32","min":108},{"name":"numKilled","type":"i16","min":109},{"name":"killCount","type":"i32","relnum":"numKilled","min":109},{"name":"fastForwardTime","min":128},{"name":"downedFishron","min":131},{"name":"downedMartians","min":131},{"name":"downedAncientCultist","min":131},{"name":"downedMoonlord","min":131},{"name":"downedHalloweenKing","min":131},{"name":"downedHalloweenTree","min":131},{"name":"downedChristmasIceQueen","min":131},{"name":"downedChristmasSantank","min":131},{"name":"downedChristmasTree","min":131},{"name":"downedSolar","min":140},{"name":"downedVortex","min":140},{"name":"downedNebula","min":140},{"name":"downedStardust","min":140},{"name":"activeSolar","min":140},{"name":"activeVortex","min":140},{"name":"activeNebula","min":140},{"name":"activeStardust","min":140},{"name":"lunarApocalypse","min":140},{"name":"partyManual","min":170},{"name":"partyGenuine","min":170},{"name":"partyCooldown","type":"i32","min":170},{"name":"numPartiers","type":"i32","min":170},{"name":"partiers","type":"i32","min":170,"relnum":"numPartiers"},{"name":"sandstormHappening","min":174},{"name":"sandstormTimeLeft","type":"i32","min":174},{"name":"sandstormSeverity","type":"f32","min":174},{"name":"sandstormIntendedSeverity","type":"f32","min":174},{"name":"savedBartender","min":178},{"name":"downedDD2Invasion1","min":178},{"name":"downedDD2Invasion2","min":178},{"name":"downedDD2Invasion3","min":178}]
1+
[{"name":"title","type":"s"},{"name":"seed","type":"s","min":179},{"name":"genVersion","type":"i64","min":179},{"name":"guid","type":"u8","num":16,"min":181},{"name":"worldID","type":"i32"},{"name":"left","type":"i32"},{"name":"right","type":"i32"},{"name":"top","type":"i32"},{"name":"bottom","type":"i32"},{"name":"tilesHigh","type":"i32"},{"name":"tilesWide","type":"i32"},{"name":"gameMode","type":"i32","min":209},{"name":"drunkWorld","type":"b","min":222},{"name":"goodWorld","type":"b","min":227},{"name":"expert","type":"b","max":208,"min":112},{"name":"master","type":"b","min":208,"max":208},{"name":"creationTime","type":"i64","min":141},{"name":"moonType","type":"u8"},{"name":"treeX","type":"i32","num":3},{"name":"treeStyle","type":"i32","num":4},{"name":"caveBackX","type":"i32","num":3},{"name":"caveBackStyle","type":"i32","num":4},{"name":"iceBackStyle","type":"i32"},{"name":"jungleBackStyle","type":"i32"},{"name":"hellBackStyle","type":"i32"},{"name":"spawnX","type":"i32"},{"name":"spawnY","type":"i32"},{"name":"groundLevel","type":"f64"},{"name":"rockLevel","type":"f64"},{"name":"gameTIme","type":"f64"},{"name":"dayNight"},{"name":"moonPhase","type":"i32"},{"name":"bloodMoon"},{"name":"eclipse"},{"name":"dungeonX","type":"i32"},{"name":"dungeonY","type":"i32"},{"name":"crimson"},{"name":"killedBoss1"},{"name":"killedBoss2"},{"name":"killedBoss3"},{"name":"killedQueenBee"},{"name":"killedMechBoss1"},{"name":"killedMechBoss2"},{"name":"killedMechBoss3"},{"name":"killedMechBossAny"},{"name":"killedPlantBoss"},{"name":"killedGolemBoss"},{"name":"killedSlimeKing","min":118},{"name":"savedTinkerer"},{"name":"savedWizard"},{"name":"savedMechanic"},{"name":"killedGoblins","type":"b"},{"name":"killedClown","type":"b"},{"name":"killedFrost"},{"name":"killedPirates","type":"b"},{"name":"smashedOrb","type":"b"},{"name":"meteorSpawned","type":"b"},{"name":"shadowOrbCount","type":"u8"},{"name":"altarsSmashed","type":"i32"},{"name":"hardMode","type":"b"},{"name":"invasionDelay","type":"i32"},{"name":"invasionSize","type":"i32"},{"name":"invasionType","type":"i32"},{"name":"invasionX","type":"f64"},{"name":"slimeRainTime","type":"f64","min":118},{"name":"sundialCooldown","type":"u8","min":113},{"name":"isRaining","type":"b"},{"name":"rainTime","type":"i32"},{"name":"maxRain","type":"f32"},{"name":"oreTier1","type":"i32"},{"name":"oreTier2","type":"i32"},{"name":"oreTier3","type":"i32"},{"name":"styles","type":"u8","num":8},{"name":"clouds","type":"i32"},{"name":"numClouds","type":"i16"},{"name":"windSpeed","type":"f32"},{"name":"numAnglers","type":"i32","min":95},{"name":"anglers","type":"s","min":95,"relnum":"numAnglers"},{"name":"savedAngler","type":"b","min":99},{"name":"anglerQuest","type":"i32","min":101},{"name":"savedStylist","min":104},{"name":"savedTaxCollector","min":129},{"name":"savedGolfer","min":201},{"name":"invasionSizeStart","min":107,"type":"i32"},{"name":"cultistDelay","min":108,"type":"i32"},{"name":"numKilled","min":109,"type":"i16"},{"name":"killCount","min":109,"type":"i32","relnum":"numKilled"},{"name":"fastForwardTime","min":128},{"name":"downedFishron","min":131},{"name":"downedMartians","min":131},{"name":"downedAncientCultist","min":131},{"name":"downedMoonlord","min":131},{"name":"downedHalloweenKing","min":131},{"name":"downedHalloweenTree","min":131},{"name":"downedChristmasSantank","min":131},{"name":"downedChristmasTree","min":131},{"name":"downedSolar","min":140},{"name":"downedVortex","min":140},{"name":"downedNebula","min":140},{"name":"downedStardust","min":140},{"name":"activeSolar","min":140},{"name":"activeVortex","type":"b","min":140},{"name":"activeNebula","type":"b","min":140},{"name":"activeStardust","type":"b","min":140},{"name":"lunarApocalypse","min":140},{"name":"partyManual","type":"b","min":170},{"name":"partyGenuine","type":"b","min":170},{"name":"partyCooldown","type":"i32","min":170},{"name":"numPartiers","min":170,"type":"i32"},{"name":"partiers","min":170,"type":"i32","relnum":"numPartiers"},{"name":"sandstormHappening","min":174},{"name":"sandstormTimeLeft","min":174,"type":"i32"},{"name":"sandstormSeverity","type":"f32","min":174},{"name":"sandstormIntendedSeverity","type":"f32","min":174},{"name":"savedBartender","min":178},{"name":"downedDD2Invasion1","min":178},{"name":"downedDD2Invasion2","min":178},{"name":"downedDD2Invasion3","min":178},{"name":"style8","type":"u8","min":195},{"name":"style9","type":"u8","min":215},{"name":"styles10","type":"u8","num":3,"min":196},{"name":"combatBookWasUsed","min":204},{"name":"lanternNightCooldown","type":"i32","min":207},{"name":"lanternNightGenuine","min":207},{"name":"lanternNightManual","min":207},{"name":"lanternNightNextGenuine","min":207},{"name":"numTreeTop","type":"i32","min":211},{"name":"treeTops","type":"i32","relnum":"numTreeTop","min":211},{"name":"forceHalloween","min":211},{"name":"forceHalloween","min":212},{"name":"forceXMas","type":"b","min":212},{"name":"copper","type":"i32","min":216},{"name":"iron","type":"i32","min":216},{"name":"silver","type":"i32","min":216},{"name":"gold","min":216,"type":"i32"},{"name":"boughtCat","min":217},{"name":"boughtDog","min":217},{"name":"boughtBunny","min":217},{"name":"killedEmpressOfLight","min":223},{"name":"killedQueenSlime","min":223}]

‎res/items.json

+1-1
Large diffs are not rendered by default.

‎res/npcs.json

+1-1
Large diffs are not rendered by default.

‎res/tiles.json

+1-1
Large diffs are not rendered by default.

‎res/walls.json

+1-1
Large diffs are not rendered by default.

‎world.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class Tile {
3535

3636
class World : public QObject, public QRunnable {
3737
static const int MinimumVersion = 88;
38-
static const int HighestVersion = 194;
38+
static const int HighestVersion = 228;
3939

4040

4141
Q_OBJECT

‎worldheader.cpp

+6-3
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ void WorldHeader::load(QSharedPointer<Handle> handle, int version) {
3838
data.clear();
3939
int num;
4040
for (auto const &field : fields) {
41-
if (version >= field.minVersion) {
41+
if (version >= field.minVersion &&
42+
(field.maxVersion == 0 || version <= field.maxVersion)) {
4243
auto header = QSharedPointer<Header>(new Header());
4344
switch (field.type) {
4445
case Field::Type::BOOLEAN: header->setData(handle->r8()); break;
@@ -110,7 +111,7 @@ int WorldHeader::treeStyle(int x) const {
110111
WorldHeader::Field::Field(QJsonObject const &data) {
111112
name = data["name"].toString();
112113
QString t = data["type"].toString();
113-
if (t.isNull()) type = Type::BOOLEAN;
114+
if (t.isNull() || t == "b") type = Type::BOOLEAN;
114115
else if (t == "s") type = (data.contains("num") || data.contains("relnum")) ?
115116
Type::ARRAY_STRING : Type::STRING;
116117
else if (t == "u8") type = (data.contains("num")
@@ -124,10 +125,12 @@ WorldHeader::Field::Field(QJsonObject const &data) {
124125
else if (t == "f32") type = Type::FLOAT32;
125126
else if (t == "f64") type = Type::FLOAT64;
126127
else
127-
throw InitException(QString("Invalid header type: %1").arg(type));
128+
throw InitException(QString("Invalid header type: %1 on %2")
129+
.arg(t).arg(name));
128130
length = data["num"].toInt();
129131
dynamicLength = data["relnum"].toString();
130132
minVersion = data.contains("min") ? data["min"].toInt() : 88;
133+
maxVersion = data.contains("max") ? data["max"].toInt() : 0;
131134
}
132135

133136
static WorldHeader::Header Null;

‎worldheader.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class WorldHeader {
6767

6868
QString name;
6969
Type type;
70-
int length, minVersion;
70+
int length, minVersion, maxVersion;
7171
QString dynamicLength;
7272
};
7373

0 commit comments

Comments
 (0)
Please sign in to comment.