diff options
-rw-r--r-- | src/makeYourOwnModelSprite.cpp | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/makeYourOwnModelSprite.cpp b/src/makeYourOwnModelSprite.cpp index 7e5ace8..36ea1db 100644 --- a/src/makeYourOwnModelSprite.cpp +++ b/src/makeYourOwnModelSprite.cpp @@ -37,6 +37,7 @@ class dMakeYourOwn : public dStageActor_c { int model; bool isAnimating; float size; + float zOrder; void setupAnim(const char* name, float rate); void setupModel(const char* arcName, const char* brresName, const char* mdlName); @@ -79,6 +80,16 @@ int dMakeYourOwn::onCreate() { this->isAnimating = this->settings & 0x100; // Sets nybble 11 to a checkbox for whether or not the model has an anmChr to use this->size = (float)((this->settings >> 24) & 0xFF) / 4.0; // Sets nybbles 5-6 to size. Size equals value / 4. + + float zLevels[16] = {-6500.0, -5000.0, -4500.0, -2000.0, + -1000.0, 300.0, 800.0, 1600.0, + 2000.0, 3600.0, 4000.0, 4500.0, + 6000.0, 6500.0, 7000.0, 7500.0 }; + + currentInfo = &types[Type]; + + this->zOrder = &zLevels[(this->settings >> 16) & 0xF] + // Setup the models inside an allocator allocator.link(-1, GameHeaps[0], 0, 0x20); @@ -465,6 +476,33 @@ int dMakeYourOwn::onCreate() { setupAnim("anim38", 1.0); break; + + case 40: // Chestnut Canopy + + setupModel("chestnut", "g3d/canopy.brres", "canopy"); + SetupTextures_MapObj(&bodyModel, 0); + this->pos.z = 0.0; + + // setupAnim("anim38", 1.0); + break; + + case 41: // Chestnut Canopy + + setupModel("chestnut", "g3d/canopy_1.brres", "canopy_1"); + SetupTextures_MapObj(&bodyModel, 0); + this->pos.z = 0.0; + + // setupAnim("anim38", 1.0); + break; + + case 42: // Chestnut Canopy + + setupModel("chestnut", "g3d/canopy_2.brres", "canopy_2"); + SetupTextures_MapObj(&bodyModel, 0); + this->pos.z = 0.0; + + // setupAnim("anim38", 1.0); + break; } allocator.unlink(); @@ -501,7 +539,7 @@ int dMakeYourOwn::onExecute() { } int dMakeYourOwn::onDraw() { - matrix.translation(pos.x, pos.y, pos.z - 6500.0); // Set where to draw the model : -5500.0 is the official behind layer 2, while 5500.0 is in front of layer 0. + matrix.translation(pos.x, pos.y, this->zOrder); // Set where to draw the model : -5500.0 is the official behind layer 2, while 5500.0 is in front of layer 0. matrix.applyRotationYXZ(&rot.x, &rot.y, &rot.z); // Set how to rotate the drawn model bodyModel.setDrawMatrix(matrix); // Apply matrix |