Some work on the next test chamber
This commit is contained in:
parent
a0bed76f85
commit
9b7077aa09
3
Makefile
3
Makefile
|
@ -220,7 +220,8 @@ build/anims.ld: $(ANIM_LIST) tools/generate_animation_ld.js
|
|||
|
||||
TEST_CHAMBERS = assets/test_chambers/test_chamber_00/test_chamber_00.blend \
|
||||
assets/test_chambers/test_chamber_01/test_chamber_01.blend \
|
||||
assets/test_chambers/test_chamber_02/test_chamber_02.blend
|
||||
assets/test_chambers/test_chamber_02/test_chamber_02.blend \
|
||||
assets/test_chambers/test_chamber_03/test_chamber_03.blend
|
||||
|
||||
TEST_CHAMBER_HEADERS = $(TEST_CHAMBERS:%.blend=build/%.h)
|
||||
TEST_CHAMBER_OBJECTS = $(TEST_CHAMBERS:%.blend=build/%_geo.o)
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -34,6 +34,31 @@ bool MeshDefinitionGenerator::ShouldIncludeNode(aiNode* node) {
|
|||
return node->mName.C_Str()[0] != '@' && node->mNumMeshes > 0;
|
||||
}
|
||||
|
||||
double extractStaticUVScale(const std::string& nodeName) {
|
||||
std::size_t uvScaleAt = nodeName.find(" uvscale ");
|
||||
|
||||
if (uvScaleAt == std::string::npos) {
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
std::size_t endUvScaleAt = uvScaleAt + strlen(" uvscale ");
|
||||
std::size_t spacePos = nodeName.find(" ", endUvScaleAt);
|
||||
|
||||
if (spacePos == std::string::npos) {
|
||||
spacePos = nodeName.size();
|
||||
}
|
||||
|
||||
std::string scale = nodeName.substr(endUvScaleAt, spacePos - endUvScaleAt);
|
||||
|
||||
double result = atof(scale.c_str());
|
||||
|
||||
if (result == 0.0) {
|
||||
return 1.0f;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void MeshDefinitionGenerator::AppendRenderChunks(const aiScene* scene, aiNode* node, CFileDefinition& fileDefinition, const DisplayListSettings& settings, std::vector<RenderChunk>& renderChunks) {
|
||||
for (unsigned meshIndex = 0; meshIndex < node->mNumMeshes; ++meshIndex) {
|
||||
std::shared_ptr<ExtendedMesh> mesh = fileDefinition.GetExtendedMesh(scene->mMeshes[node->mMeshes[meshIndex]]);
|
||||
|
@ -56,9 +81,10 @@ void MeshDefinitionGenerator::AppendRenderChunks(const aiScene* scene, aiNode* n
|
|||
double tTile;
|
||||
|
||||
if (extractMaterialAutoTileParameters(materialPtr, sTile, tTile)) {
|
||||
double uvScale = extractStaticUVScale(node->mName.C_Str());
|
||||
mesh->CubeProjectTex(
|
||||
settings.mModelScale / (double)sTile,
|
||||
settings.mModelScale / (double)tTile
|
||||
uvScale * settings.mModelScale / (double)sTile,
|
||||
uvScale * settings.mModelScale / (double)tTile
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -155,7 +155,7 @@ static void gameProc(void* arg) {
|
|||
dynamicSceneInit();
|
||||
contactSolverInit(&gContactSolver);
|
||||
portalSurfaceCleanupQueueInit();
|
||||
levelLoad(0);
|
||||
levelLoad(3);
|
||||
cutsceneRunnerReset();
|
||||
controllersInit();
|
||||
initAudio();
|
||||
|
|
Loading…
Reference in a new issue