diff --git a/src/engine/N3Base/N3FXBundle.cpp b/src/engine/N3Base/N3FXBundle.cpp index b3aa1600..0f5e57cd 100644 --- a/src/engine/N3Base/N3FXBundle.cpp +++ b/src/engine/N3Base/N3FXBundle.cpp @@ -457,6 +457,15 @@ bool CN3FXBundle::Load(HANDLE hFile) { ReadFile(hFile, &m_bStatic, sizeof(bool), &dwRWC, NULL); } + if (m_iVersion == 3) { + ReadFile(hFile, &m_bEarthQuake, sizeof(bool), &dwRWC, NULL); + if (m_bEarthQuake) { + ReadFile(hFile, &m_fEarthQuakeStartTime, sizeof(float), &dwRWC, NULL); + } else { + m_fEarthQuakeStartTime = 0; + } + } + return true; } diff --git a/src/engine/N3Base/N3FXBundle.h b/src/engine/N3Base/N3FXBundle.h index 039e2511..c2fd1ecc 100644 --- a/src/engine/N3Base/N3FXBundle.h +++ b/src/engine/N3Base/N3FXBundle.h @@ -37,6 +37,8 @@ class CN3FXBundle : public CN3BaseFileAccess { int m_iSourceJoint; bool m_bDependScale; + bool m_bEarthQuake; // Needs Implementation + float m_fEarthQuakeStartTime; // Needs Implementation //__Vector3 m_vTargetScale; float m_fTargetScale; diff --git a/src/engine/N3Base/N3FXPartBillBoard.cpp b/src/engine/N3Base/N3FXPartBillBoard.cpp index 3275c962..2ac07fbb 100644 --- a/src/engine/N3Base/N3FXPartBillBoard.cpp +++ b/src/engine/N3Base/N3FXPartBillBoard.cpp @@ -200,6 +200,14 @@ bool CN3FXPartBillBoard::Load(HANDLE hFile) { ReadFile(hFile, &m_mtxRot, sizeof(m_mtxRot), &dwRWC, NULL); } + if (m_iVersion >= 6) { + ReadFile(hFile, &m_bRotationRate, sizeof(bool), &dwRWC, NULL); + } + + if (m_iVersion >= 7) { + ReadFile(hFile, &m_bOnScreen, sizeof(bool), &dwRWC, NULL); // is this on screen bool? + } + CreateVB(); Init(); diff --git a/src/engine/N3Base/N3FXPartBillBoard.h b/src/engine/N3Base/N3FXPartBillBoard.h index 6fa23584..01a63fff 100644 --- a/src/engine/N3Base/N3FXPartBillBoard.h +++ b/src/engine/N3Base/N3FXPartBillBoard.h @@ -38,6 +38,8 @@ class CN3FXPartBillBoard : public CN3FXPartBase { float m_fRotBillBoardY; float m_fRotBillBoardZ; + bool m_bRotationRate; // Needs Implementation + bool m_bOnScreen; // Needs Implementation protected: __Vector3 m_vUnit[4]; diff --git a/src/engine/N3Base/N3FXPartMesh.cpp b/src/engine/N3Base/N3FXPartMesh.cpp index 6ff0acf1..f140d17d 100644 --- a/src/engine/N3Base/N3FXPartMesh.cpp +++ b/src/engine/N3Base/N3FXPartMesh.cpp @@ -228,6 +228,10 @@ bool CN3FXPartMesh::Load(HANDLE hFile) { ReadFile(hFile, &m_vUnitScale, sizeof(__Vector3), &dwRWC, NULL); } + if (m_iVersion == 6) { + ReadFile(hFile, &m_bShapeLoop, sizeof(bool), &dwRWC, NULL); //? true true false + } + if (m_pShape) { for (int i = 0; i < m_pShape->PartCount(); i++) { m_pShape->Part(i)->m_fTexFPS = m_fTexFPS; diff --git a/src/engine/N3Base/N3FXPartMesh.h b/src/engine/N3Base/N3FXPartMesh.h index a56f3352..ddbd0751 100644 --- a/src/engine/N3Base/N3FXPartMesh.h +++ b/src/engine/N3Base/N3FXPartMesh.h @@ -27,6 +27,7 @@ class CN3FXPartMesh : public CN3FXPartBase { bool m_bTexLoop; float m_fMeshFPS; + bool m_bShapeLoop; // Needs Implementation protected: bool IsDead(); diff --git a/src/engine/N3Base/N3FXPartParticles.cpp b/src/engine/N3Base/N3FXPartParticles.cpp index 125e3c11..4afebd15 100644 --- a/src/engine/N3Base/N3FXPartParticles.cpp +++ b/src/engine/N3Base/N3FXPartParticles.cpp @@ -415,6 +415,23 @@ bool CN3FXPartParticles::Load(HANDLE hFile) { ReadFile(hFile, &m_fScaleVelY, sizeof(float), &dwRWC, NULL); } + if (m_iVersion >= 6) { + ReadFile(hFile, &m_bDistanceNumFix, sizeof(bool), &dwRWC, NULL); + } + + if (m_iVersion >= 7) { + ReadFile(hFile, &m_bParticleYAxisFix, sizeof(bool), &dwRWC, NULL); + } + + if (m_iVersion >= 8) { + /* + ReadFile(hFile, &m_bParticle_Not_Rot, sizeof(bool), &dwRWC, NULL); + ReadFile(hFile, &m_vParticle_Not_Rot, sizeof(__Vector3), &dwRWC, NULL); + ReadFile(hFile, &m_fPtRangeMin, sizeof(float), &dwRWC, NULL); + ReadFile(hFile, &m_fPtRangeMax, sizeof(float), &dwRWC, NULL); + */ + } + Init(); return true; diff --git a/src/engine/N3Base/N3FXPartParticles.h b/src/engine/N3Base/N3FXPartParticles.h index 0b75c2f9..77d8a29a 100644 --- a/src/engine/N3Base/N3FXPartParticles.h +++ b/src/engine/N3Base/N3FXPartParticles.h @@ -68,6 +68,9 @@ class CN3FXPartParticles : public CN3FXPartBase { float m_fScaleVelX; float m_fScaleVelY; + bool m_bDistanceNumFix; // Needs Implementation + bool m_bParticleYAxisFix; // Needs Implementation + protected: void Rotate(); void Scaling();