Skip to content

Commit 5e3532a

Browse files
committed
- properly flip models for Unity
1 parent b11cbe0 commit 5e3532a

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

DriverLevelTool/exporter/export_models.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,13 @@ void WriteMODELToObjStream(IVirtualStream* pStream, MODEL* model, int modelSize,
5858

5959
// export scaling
6060
Vector3D export_scale(-EXPORT_SCALING, -EXPORT_SCALING, EXPORT_SCALING);
61+
bool flipFaces = true;
6162

6263
if(g_export_worldUnityScript)
64+
{
6365
export_scale = Vector3D(-EXPORT_SCALING, -EXPORT_SCALING, -EXPORT_SCALING);
66+
flipFaces = false;
67+
}
6468

6569
// store vertices
6670
for (int i = 0; i < vertex_ref->num_vertices; i++)
@@ -199,8 +203,11 @@ void WriteMODELToObjStream(IVirtualStream* pStream, MODEL* model, int modelSize,
199203
char temp[64] = {0};
200204
char vertex_value[64] = {0};
201205

202-
// NOTE: Vertex indexes is reversed here
203-
#define VERT_IDX numPolyVerts - 1 - v
206+
int VERT_IDX;
207+
if(flipFaces)
208+
VERT_IDX = numPolyVerts - 1 - v;
209+
else
210+
VERT_IDX = v;
204211

205212
// starting with vertex index
206213
sprintf(temp, "%d", dec_face.vindices[VERT_IDX] + 1 + numVerts);

DriverLevelTool/exporter/export_regions.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ int ExportRegionDriver1(CDriver1LevelRegion* region, IVirtualStream* levelFileSt
8282
{
8383
String cellModelName = ref->name ? String::fromCString(ref->name) : String::fromPrintf("MOD_%d", ref->index);
8484

85-
float cellRotationDeg = RAD2DEG(cellRotationRad);// +180;
85+
float cellRotationDeg = RAD2DEG(cellRotationRad) + 180;
8686

8787
levelFileStream->Print("var reg%d_o%d = Instantiate(%s, new Vector3(%gf,%gf,%gf), Quaternion.Euler(0.0f,%gf,0.0f)) as GameObject;\n",
88-
region->GetNumber(), numRegionObjects, (char*)cellModelName, absCellPosition.x, absCellPosition.y, absCellPosition.z, cellRotationDeg);
88+
region->GetNumber(), numRegionObjects, (char*)cellModelName, absCellPosition.x, absCellPosition.y, absCellPosition.z, -cellRotationDeg);
8989
}
9090
else
9191
{
@@ -152,7 +152,7 @@ int ExportRegionDriver2(CDriver2LevelRegion* region, IVirtualStream* levelFileSt
152152
float cellRotationDeg = RAD2DEG(cellRotationRad) + 180;
153153

154154
levelFileStream->Print("var reg%d_o%d = Instantiate(%s, new Vector3(%gf,%gf,%gf), Quaternion.Euler(0.0f,%gf,0.0f)) as GameObject;\n",
155-
region->GetNumber(), numRegionObjects, (char*)modelName, absCellPosition.x, absCellPosition.y, absCellPosition.z, cellRotationDeg);
155+
region->GetNumber(), numRegionObjects, (char*)modelName, absCellPosition.x, absCellPosition.y, absCellPosition.z, -cellRotationDeg);
156156
}
157157
else
158158
{

0 commit comments

Comments
 (0)