feat: TU19 (Dec 2014) Features & Content (#155)
* try to resolve merge conflict
* feat: TU19 (Dec 2014) Features & Content (#32)
* December 2014 files
* Working release build
* Fix compilation issues
* Add sound to Windows64Media
* Add DLC content and force Tutorial DLC
* Revert "Add DLC content and force Tutorial DLC"
This reverts commit 97a4399472.
* Disable broken light packing
* Disable breakpoint during DLC texture map load
Allows DLC loading but the DLC textures are still broken
* Fix post build not working
* ...
* fix vs2022 build
* fix cmake build
---------
Co-authored-by: Loki <lokirautio@gmail.com>
This commit is contained in:
@@ -4,18 +4,20 @@
|
||||
#include "Tesselator.h"
|
||||
#include "Lighting.h"
|
||||
#include "EnderDragonRenderer.h"
|
||||
#include "BossMobGuiInfo.h"
|
||||
|
||||
shared_ptr<EnderDragon> EnderDragonRenderer::bossInstance;
|
||||
int EnderDragonRenderer::currentModel;
|
||||
ResourceLocation EnderDragonRenderer::DRAGON_EXPLODING_LOCATION = ResourceLocation(TN_MOB_ENDERDRAGON_SHUFFLE);
|
||||
ResourceLocation EnderDragonRenderer::CRYSTAL_BEAM_LOCATION = ResourceLocation(TN_MOB_ENDERDRAGON_BEAM);
|
||||
ResourceLocation EnderDragonRenderer::DRAGON_EYES_LOCATION = ResourceLocation(TN_MOB_ENDERDRAGON_ENDEREYES);
|
||||
ResourceLocation EnderDragonRenderer::DRAGON_LOCATION = ResourceLocation(TN_MOB_ENDERDRAGON);
|
||||
|
||||
EnderDragonRenderer::EnderDragonRenderer() : MobRenderer(new DragonModel(0), 0.5f)
|
||||
{
|
||||
currentModel = 0;
|
||||
dragonModel = (DragonModel *) model;
|
||||
this->setArmor(model);
|
||||
setArmor(model); // TODO: Make second constructor that assigns this.
|
||||
}
|
||||
|
||||
void EnderDragonRenderer::setupRotations(shared_ptr<Mob> _mob, float bob, float bodyRot, float a)
|
||||
void EnderDragonRenderer::setupRotations(shared_ptr<LivingEntity> _mob, float bob, float bodyRot, float a)
|
||||
{
|
||||
// 4J - dynamic cast required because we aren't using templates/generics in our version
|
||||
shared_ptr<EnderDragon> mob = dynamic_pointer_cast<EnderDragon>(_mob);
|
||||
@@ -46,7 +48,7 @@ void EnderDragonRenderer::setupRotations(shared_ptr<Mob> _mob, float bob, float
|
||||
}
|
||||
}
|
||||
|
||||
void EnderDragonRenderer::renderModel(shared_ptr<Entity> _mob, float wp, float ws, float bob, float headRotMinusBodyRot, float headRotx, float scale)
|
||||
void EnderDragonRenderer::renderModel(shared_ptr<LivingEntity> _mob, float wp, float ws, float bob, float headRotMinusBodyRot, float headRotx, float scale)
|
||||
{
|
||||
// 4J - dynamic cast required because we aren't using templates/generics in our version
|
||||
shared_ptr<EnderDragon> mob = dynamic_pointer_cast<EnderDragon>(_mob);
|
||||
@@ -57,7 +59,7 @@ void EnderDragonRenderer::renderModel(shared_ptr<Entity> _mob, float wp, float w
|
||||
glDepthFunc(GL_LEQUAL);
|
||||
glEnable(GL_ALPHA_TEST);
|
||||
glAlphaFunc(GL_GREATER, tt);
|
||||
bindTexture(mob->customTextureUrl, TN_MOB_ENDERDRAGON_SHUFFLE); // 4J was "/mob/enderdragon/shuffle.png"
|
||||
bindTexture(&DRAGON_EXPLODING_LOCATION); // 4J was "/mob/enderdragon/shuffle.png"
|
||||
model->render(mob, wp, ws, bob, headRotMinusBodyRot, headRotx, scale, true);
|
||||
glAlphaFunc(GL_GREATER, 0.1f);
|
||||
|
||||
@@ -65,7 +67,7 @@ void EnderDragonRenderer::renderModel(shared_ptr<Entity> _mob, float wp, float w
|
||||
}
|
||||
|
||||
|
||||
bindTexture(mob->customTextureUrl, mob->getTexture());
|
||||
bindTexture(mob);
|
||||
model->render(mob, wp, ws, bob, headRotMinusBodyRot, headRotx, scale, true);
|
||||
|
||||
if (mob->hurtTime > 0)
|
||||
@@ -91,12 +93,7 @@ void EnderDragonRenderer::render(shared_ptr<Entity> _mob, double x, double y, do
|
||||
{
|
||||
// 4J - dynamic cast required because we aren't using templates/generics in our version
|
||||
shared_ptr<EnderDragon> mob = dynamic_pointer_cast<EnderDragon>(_mob);
|
||||
EnderDragonRenderer::bossInstance = mob;
|
||||
if (currentModel != DragonModel::MODEL_ID)
|
||||
{
|
||||
model = new DragonModel(0);
|
||||
currentModel = DragonModel::MODEL_ID;
|
||||
}
|
||||
BossMobGuiInfo::setBossHealth(mob, false);
|
||||
MobRenderer::render(mob, x, y, z, rot, a);
|
||||
if (mob->nearestCrystal != NULL)
|
||||
{
|
||||
@@ -135,7 +132,7 @@ void EnderDragonRenderer::render(shared_ptr<Entity> _mob, double x, double y, do
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA);
|
||||
|
||||
bindTexture(TN_MOB_ENDERDRAGON_BEAM); // 4J was "/mob/enderdragon/beam.png"
|
||||
bindTexture(&CRYSTAL_BEAM_LOCATION); // 4J was "/mob/enderdragon/beam.png"
|
||||
|
||||
glShadeModel(GL_SMOOTH);
|
||||
|
||||
@@ -167,7 +164,12 @@ void EnderDragonRenderer::render(shared_ptr<Entity> _mob, double x, double y, do
|
||||
}
|
||||
}
|
||||
|
||||
void EnderDragonRenderer::additionalRendering(shared_ptr<Mob> _mob, float a)
|
||||
ResourceLocation *EnderDragonRenderer::getTextureLocation(shared_ptr<Entity> mob)
|
||||
{
|
||||
return &DRAGON_LOCATION;
|
||||
}
|
||||
|
||||
void EnderDragonRenderer::additionalRendering(shared_ptr<LivingEntity> _mob, float a)
|
||||
{
|
||||
// 4J - dynamic cast required because we aren't using templates/generics in our version
|
||||
shared_ptr<EnderDragon> mob = dynamic_pointer_cast<EnderDragon>(_mob);
|
||||
@@ -227,7 +229,7 @@ void EnderDragonRenderer::additionalRendering(shared_ptr<Mob> _mob, float a)
|
||||
|
||||
}
|
||||
|
||||
int EnderDragonRenderer::prepareArmor(shared_ptr<Mob> _mob, int layer, float a)
|
||||
int EnderDragonRenderer::prepareArmor(shared_ptr<LivingEntity> _mob, int layer, float a)
|
||||
{
|
||||
// 4J - dynamic cast required because we aren't using templates/generics in our version
|
||||
shared_ptr<EnderDragon> mob = dynamic_pointer_cast<EnderDragon>(_mob);
|
||||
@@ -238,7 +240,7 @@ int EnderDragonRenderer::prepareArmor(shared_ptr<Mob> _mob, int layer, float a)
|
||||
}
|
||||
if (layer != 0) return -1;
|
||||
|
||||
bindTexture(TN_MOB_ENDERDRAGON_ENDEREYES); // 4J was "/mob/enderdragon/ender_eyes.png"
|
||||
bindTexture(&DRAGON_EYES_LOCATION); // 4J was "/mob/enderdragon/ender_eyes.png"
|
||||
float br = 1;
|
||||
glEnable(GL_BLEND);
|
||||
// 4J Stu - We probably don't need to do this on 360 either (as we force it back on the renderer)
|
||||
|
||||
Reference in New Issue
Block a user