December 2014 files

This commit is contained in:
Loki Rautio
2026-03-01 11:00:23 -06:00
parent b691c43c44
commit 8fd3ac6e37
2049 changed files with 260190 additions and 134787 deletions

View File

@@ -1,22 +1,22 @@
#pragma once
using namespace std;
#include "BossMob.h"
#include "MultiEntityMob.h"
#include "Enemy.h"
class BossMobPart;
class MultiEntityMobPart;
class EnderCrystal;
class Node;
class BinaryHeap;
class Path;
class EnderDragon : public BossMob
class EnderDragon : public Mob, public BossMob, public MultiEntityMob, public Enemy
{
public:
eINSTANCEOF GetType() { return eTYPE_ENDERDRAGON; };
static Entity *create(Level *level) { return new EnderDragon(level); }
private:
static const int DATA_ID_SYNCHED_HEALTH = 16;
private:
// 4J Added for new behaviours
static const int DATA_ID_SYNCHED_ACTION = 17;
@@ -27,16 +27,16 @@ public:
double positions[positionsLength][3];
int posPointer;
//BossMobPart[] subEntities;
//MultiEntityMobPart[] subEntities;
vector<shared_ptr<Entity> > subEntities;
shared_ptr<BossMobPart> head;
shared_ptr<BossMobPart> neck; // 4J Added
shared_ptr<BossMobPart> body;
shared_ptr<BossMobPart> tail1;
shared_ptr<BossMobPart> tail2;
shared_ptr<BossMobPart> tail3;
shared_ptr<BossMobPart> wing1;
shared_ptr<BossMobPart> wing2;
shared_ptr<MultiEntityMobPart> head;
shared_ptr<MultiEntityMobPart> neck; // 4J Added
shared_ptr<MultiEntityMobPart> body;
shared_ptr<MultiEntityMobPart> tail1;
shared_ptr<MultiEntityMobPart> tail2;
shared_ptr<MultiEntityMobPart> tail3;
shared_ptr<MultiEntityMobPart> wing1;
shared_ptr<MultiEntityMobPart> wing2;
float oFlapTime;
float flapTime;
@@ -112,9 +112,11 @@ private:
public:
EnderDragon(Level *level);
void AddParts();
virtual ~EnderDragon();
protected:
virtual void registerAttributes();
virtual void defineSynchedData();
public:
@@ -122,7 +124,7 @@ public:
virtual void aiStep();
private:
using BossMob::hurt;
using MultiEntityMob::hurt;
void checkCrystals();
void checkAttack();
@@ -133,9 +135,11 @@ private:
bool checkWalls(AABB *bb);
public:
virtual bool hurt(shared_ptr<BossMobPart> bossMobPart, DamageSource *source, int damage);
virtual bool hurt(shared_ptr<MultiEntityMobPart> MultiEntityMobPart, DamageSource *source, float damage);
virtual bool hurt(DamageSource *source, float damage);
protected:
virtual bool reallyHurt(DamageSource *source, float damage);
virtual void tickDeath();
private:
@@ -143,11 +147,15 @@ private:
protected:
virtual void checkDespawn();
virtual int getHurtSound();
public:
virtual vector<shared_ptr<Entity> > *getSubEntities();
virtual bool isPickable();
virtual int getSynchedHealth();
Level *getLevel();
protected:
int getAmbientSound();
int getHurtSound();
float getSoundVolume();
private:
// 4J added for new dragon behaviour
@@ -174,4 +182,8 @@ public:
double getHeadPartYOffset(int partIndex, doubleArray bodyPos, doubleArray partPos);
double getHeadPartYRotDiff(int partIndex, doubleArray bodyPos, doubleArray partPos);
Vec3 *getHeadLookVector(float a);
virtual wstring getAName() { return app.GetString(IDS_ENDERDRAGON); };
virtual float getHealth() { return LivingEntity::getHealth(); };
virtual float getMaxHealth() { return LivingEntity::getMaxHealth(); };
};