Skip to content

Commit 8e9c9e3

Browse files
committedSep 14, 2015
Firelike drawtype: Improve code
Remove unusable fine rotation by param2 Remove unused and redundant code Fix code style issues
1 parent 620dcdd commit 8e9c9e3

File tree

1 file changed

+60
-92
lines changed

1 file changed

+60
-92
lines changed
 

Diff for: ‎src/content_mapblock.cpp

+60-92
Original file line numberDiff line numberDiff line change
@@ -1157,156 +1157,124 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
11571157
u16 l = getInteriorLight(n, 1, nodedef);
11581158
video::SColor c = MapBlock_LightColor(255, l, f.light_source);
11591159

1160-
float s = BS/2*f.visual_scale;
1160+
float s = BS / 2 * f.visual_scale;
11611161

11621162
content_t current = n.getContent();
11631163
content_t n2c;
11641164
MapNode n2;
11651165
v3s16 n2p;
11661166

11671167
static const v3s16 dirs[6] = {
1168-
v3s16( 0, 1, 0),
1169-
v3s16( 0,-1, 0),
1170-
v3s16( 1, 0, 0),
1171-
v3s16(-1, 0, 0),
1172-
v3s16( 0, 0, 1),
1173-
v3s16( 0, 0,-1)
1168+
v3s16( 0, 1, 0),
1169+
v3s16( 0, -1, 0),
1170+
v3s16( 1, 0, 0),
1171+
v3s16(-1, 0, 0),
1172+
v3s16( 0, 0, 1),
1173+
v3s16( 0, 0, -1)
11741174
};
11751175

1176-
int doDraw[6] = {0,0,0,0,0,0};
1176+
int doDraw[6] = {0, 0, 0, 0, 0, 0};
11771177

11781178
bool drawAllFaces = true;
11791179

1180-
bool drawBottomFacesOnly = false; // Currently unused
1181-
11821180
// Check for adjacent nodes
1183-
for(int i = 0; i < 6; i++)
1184-
{
1181+
for (int i = 0; i < 6; i++) {
11851182
n2p = blockpos_nodes + p + dirs[i];
11861183
n2 = data->m_vmanip.getNodeNoEx(n2p);
11871184
n2c = n2.getContent();
11881185
if (n2c != CONTENT_IGNORE && n2c != CONTENT_AIR && n2c != current) {
11891186
doDraw[i] = 1;
1190-
if(drawAllFaces)
1187+
if (drawAllFaces)
11911188
drawAllFaces = false;
11921189

11931190
}
11941191
}
11951192

1196-
for(int j = 0; j < 6; j++)
1197-
{
1198-
int vOffset = 0; // Vertical offset of faces after rotation
1199-
int hOffset = 4; // Horizontal offset of faces to reach the edge
1193+
for (int j = 0; j < 6; j++) {
12001194

1201-
video::S3DVertex vertices[4] =
1202-
{
1203-
video::S3DVertex(-s,-BS/2, 0, 0,0,0, c, 0,1),
1204-
video::S3DVertex( s,-BS/2, 0, 0,0,0, c, 1,1),
1205-
video::S3DVertex( s,-BS/2 + s*2,0, 0,0,0, c, 1,0),
1206-
video::S3DVertex(-s,-BS/2 + s*2,0, 0,0,0, c, 0,0),
1195+
video::S3DVertex vertices[4] = {
1196+
video::S3DVertex(-s, -BS / 2, 0, 0, 0, 0, c, 0, 1),
1197+
video::S3DVertex( s, -BS / 2, 0, 0, 0, 0, c, 1, 1),
1198+
video::S3DVertex( s, -BS / 2 + s * 2, 0, 0, 0, 0, c, 1, 0),
1199+
video::S3DVertex(-s, -BS / 2 + s * 2, 0, 0, 0, 0, c, 0, 0),
12071200
};
12081201

12091202
// Calculate which faces should be drawn, (top or sides)
1210-
if(j == 0 && (drawAllFaces || (doDraw[3] == 1 || doDraw[1] == 1)))
1211-
{
1212-
for(int i = 0; i < 4; i++) {
1213-
vertices[i].Pos.rotateXZBy(90 + n.param2 * 2);
1203+
if (j == 0 && (drawAllFaces ||
1204+
(doDraw[3] == 1 || doDraw[1] == 1))) {
1205+
for (int i = 0; i < 4; i++) {
1206+
vertices[i].Pos.rotateXZBy(90);
12141207
vertices[i].Pos.rotateXYBy(-10);
1215-
vertices[i].Pos.Y -= vOffset;
1216-
vertices[i].Pos.X -= hOffset;
1208+
vertices[i].Pos.X -= 4.0;
12171209
}
1218-
}
1219-
else if(j == 1 && (drawAllFaces || (doDraw[5] == 1 || doDraw[1] == 1)))
1220-
{
1221-
for(int i = 0; i < 4; i++) {
1222-
vertices[i].Pos.rotateXZBy(180 + n.param2 * 2);
1210+
} else if (j == 1 && (drawAllFaces ||
1211+
(doDraw[5] == 1 || doDraw[1] == 1))) {
1212+
for (int i = 0; i < 4; i++) {
1213+
vertices[i].Pos.rotateXZBy(180);
12231214
vertices[i].Pos.rotateYZBy(10);
1224-
vertices[i].Pos.Y -= vOffset;
1225-
vertices[i].Pos.Z -= hOffset;
1215+
vertices[i].Pos.Z -= 4.0;
12261216
}
1227-
}
1228-
else if(j == 2 && (drawAllFaces || (doDraw[2] == 1 || doDraw[1] == 1)))
1229-
{
1230-
for(int i = 0; i < 4; i++) {
1231-
vertices[i].Pos.rotateXZBy(270 + n.param2 * 2);
1217+
} else if (j == 2 && (drawAllFaces ||
1218+
(doDraw[2] == 1 || doDraw[1] == 1))) {
1219+
for (int i = 0; i < 4; i++) {
1220+
vertices[i].Pos.rotateXZBy(270);
12321221
vertices[i].Pos.rotateXYBy(10);
1233-
vertices[i].Pos.Y -= vOffset;
1234-
vertices[i].Pos.X += hOffset;
1222+
vertices[i].Pos.X += 4.0;
12351223
}
1236-
}
1237-
else if(j == 3 && (drawAllFaces || (doDraw[4] == 1 || doDraw[1] == 1)))
1238-
{
1239-
for(int i = 0; i < 4; i++) {
1224+
} else if (j == 3 && (drawAllFaces ||
1225+
(doDraw[4] == 1 || doDraw[1] == 1))) {
1226+
for (int i = 0; i < 4; i++) {
12401227
vertices[i].Pos.rotateYZBy(-10);
1241-
vertices[i].Pos.Y -= vOffset;
1242-
vertices[i].Pos.Z += hOffset;
1228+
vertices[i].Pos.Z += 4.0;
12431229
}
1244-
}
1245-
12461230
// Center cross-flames
1247-
else if(j == 4 && (drawAllFaces || doDraw[1] == 1))
1248-
{
1249-
for(int i=0; i<4; i++) {
1250-
vertices[i].Pos.rotateXZBy(45 + n.param2 * 2);
1251-
vertices[i].Pos.Y -= vOffset;
1231+
} else if (j == 4 && (drawAllFaces || doDraw[1] == 1)) {
1232+
for (int i = 0; i < 4; i++) {
1233+
vertices[i].Pos.rotateXZBy(45);
12521234
}
1253-
}
1254-
else if(j == 5 && (drawAllFaces || doDraw[1] == 1))
1255-
{
1256-
for(int i=0; i<4; i++) {
1257-
vertices[i].Pos.rotateXZBy(-45 + n.param2 * 2);
1258-
vertices[i].Pos.Y -= vOffset;
1235+
} else if (j == 5 && (drawAllFaces || doDraw[1] == 1)) {
1236+
for (int i = 0; i < 4; i++) {
1237+
vertices[i].Pos.rotateXZBy(-45);
12591238
}
1260-
}
1261-
1262-
// Render flames on bottom
1263-
else if(j == 0 && (drawBottomFacesOnly || (doDraw[0] == 1 && doDraw[1] == 0)))
1264-
{
1265-
for(int i = 0; i < 4; i++) {
1239+
// Render flames on bottom of node above
1240+
} else if (j == 0 && doDraw[0] == 1 && doDraw[1] == 0) {
1241+
for (int i = 0; i < 4; i++) {
12661242
vertices[i].Pos.rotateYZBy(70);
1267-
vertices[i].Pos.rotateXZBy(90 + n.param2 * 2);
1243+
vertices[i].Pos.rotateXZBy(90);
12681244
vertices[i].Pos.Y += 4.84;
1269-
vertices[i].Pos.X -= hOffset+0.7;
1245+
vertices[i].Pos.X -= 4.7;
12701246
}
1271-
}
1272-
else if(j == 1 && (drawBottomFacesOnly || (doDraw[0] == 1 && doDraw[1] == 0)))
1273-
{
1274-
for(int i = 0; i < 4; i++) {
1247+
} else if (j == 1 && doDraw[0] == 1 && doDraw[1] == 0) {
1248+
for (int i = 0; i < 4; i++) {
12751249
vertices[i].Pos.rotateYZBy(70);
1276-
vertices[i].Pos.rotateXZBy(180 + n.param2 * 2);
1250+
vertices[i].Pos.rotateXZBy(180);
12771251
vertices[i].Pos.Y += 4.84;
1278-
vertices[i].Pos.Z -= hOffset+0.7;
1252+
vertices[i].Pos.Z -= 4.7;
12791253
}
1280-
}
1281-
else if(j == 2 && (drawBottomFacesOnly || (doDraw[0] == 1 && doDraw[1] == 0)))
1282-
{
1283-
for(int i = 0; i < 4; i++) {
1254+
} else if (j == 2 && doDraw[0] == 1 && doDraw[1] == 0) {
1255+
for (int i = 0; i < 4; i++) {
12841256
vertices[i].Pos.rotateYZBy(70);
1285-
vertices[i].Pos.rotateXZBy(270 + n.param2 * 2);
1257+
vertices[i].Pos.rotateXZBy(270);
12861258
vertices[i].Pos.Y += 4.84;
1287-
vertices[i].Pos.X += hOffset+0.7;
1259+
vertices[i].Pos.X += 4.7;
12881260
}
1289-
}
1290-
else if(j == 3 && (drawBottomFacesOnly || (doDraw[0] == 1 && doDraw[1] == 0)))
1291-
{
1292-
for(int i = 0; i < 4; i++) {
1261+
} else if (j == 3 && doDraw[0] == 1 && doDraw[1] == 0) {
1262+
for (int i = 0; i < 4; i++) {
12931263
vertices[i].Pos.rotateYZBy(70);
12941264
vertices[i].Pos.Y += 4.84;
1295-
vertices[i].Pos.Z += hOffset+0.7;
1265+
vertices[i].Pos.Z += 4.7;
12961266
}
1297-
}
1298-
else {
1267+
} else {
12991268
// Skip faces that aren't adjacent to a node
13001269
continue;
13011270
}
13021271

1303-
for(int i=0; i<4; i++)
1304-
{
1272+
for (int i = 0; i < 4; i++) {
13051273
vertices[i].Pos *= f.visual_scale;
13061274
vertices[i].Pos += intToFloat(p, BS);
13071275
}
13081276

1309-
u16 indices[] = {0,1,2,2,3,0};
1277+
u16 indices[] = {0, 1, 2, 2, 3, 0};
13101278
// Add to mesh collector
13111279
collector.append(tile, vertices, 4, indices, 6);
13121280
}

0 commit comments

Comments
 (0)
Please sign in to comment.