Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 9 additions & 18 deletions source/client/model/ChickenModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,16 @@

ChickenModel::ChickenModel() :
Model(64, 32),
m_head(0, 0),
m_unknown(0, 0),
m_body(0, 9),
m_leg1(26, 0),
m_leg2(26, 0),
m_wing1(24, 13),
m_wing2(24, 13),
m_beak(14, 0),
m_wattle(14, 4) // Yes, it's called a wattle. Look it up.
m_head(this, 0, 0),
//m_hair(this, 0, 0),
m_body(this, 0, 9),
m_leg1(this, 26, 0),
m_leg2(this, 26, 0),
m_wing1(this, 24, 13),
m_wing2(this, 24, 13),
m_beak(this, 14, 0),
m_wattle(this, 14, 4) // Yes, it's called a wattle. Look it up.
{
m_head.setModel(this);
m_beak.setModel(this);
m_wattle.setModel(this);
m_body.setModel(this);
m_leg1.setModel(this);
m_leg2.setModel(this);
m_wing1.setModel(this);
m_wing2.setModel(this);

m_head.addBox(-2, -6, -2, 4, 6, 3);
m_head.setPos(0, 15, -4);
m_beak.addBox(-2, -4, -4, 4, 2, 2, 0);
Expand Down
2 changes: 1 addition & 1 deletion source/client/model/ChickenModel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class ChickenModel : public Model

private:
ModelPart m_head;
ModelPart m_unknown;
//ModelPart m_hair;
ModelPart m_body;
ModelPart m_leg1;
ModelPart m_leg2;
Expand Down
7 changes: 2 additions & 5 deletions source/client/model/CowModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@
CowModel::CowModel() :
QuadrupedModel(12, 0.0f)
{
m_head = ModelPart(0, 0);

m_head.setModel(this);
m_head = ModelPart(this, 0, 0);

// head
m_head.addBox(-4, -4, -6, 8, 8, 6);
Expand All @@ -24,8 +22,7 @@ CowModel::CowModel() :
m_head.texOffs(22, 0);
m_head.addBox(4, -5, -4, 1, 3, 1);

m_body = ModelPart(18, 4);
m_body.setModel(this);
m_body = ModelPart(this, 18, 4);

// torso
m_body.addBox(-6, -10, -7, 12, 18, 10);
Expand Down
39 changes: 26 additions & 13 deletions source/client/model/CreeperModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,14 @@

CreeperModel::CreeperModel() :
Model(64, 32),
m_head(0, 0),
m_body(16, 16),
m_leg1(0, 16),
m_leg2(0, 16),
m_leg3(0, 16),
m_leg4(0, 16)
m_head(this, 0, 0),
//m_hair(this, 32, 0),
m_body(this, 16, 16),
m_leg1(this, 0, 16),
m_leg2(this, 0, 16),
m_leg3(this, 0, 16),
m_leg4(this, 0, 16)
{
m_head.setModel(this);
m_body.setModel(this);
m_leg1.setModel(this);
m_leg2.setModel(this);
m_leg3.setModel(this);
m_leg4.setModel(this);

m_head.addBox(-4, -8, -4, 8, 8, 8);
m_head.setPos(0, 4, 0);
m_body.addBox(-4, 0, -2, 8, 12, 4);
Expand All @@ -36,6 +30,25 @@ CreeperModel::CreeperModel() :
m_leg3.setPos(-2, 16, -4);
m_leg4.addBox(-2, 0, -2, 4, 6, 4);
m_leg4.setPos(2, 16, -4);

float g = 0.0f;
// Creepers have just always been floating in Java.
// Setting it to 6 fixes this, but makes the creeper look short.
int yo = 4;
m_head.addBox(-4, -8, -4, 8, 8, 8, g);
m_head.setPos(0, yo, 0);
//m_hair.addBox(-4, -8, -4, 8, 8, 8, g + 0.5f);
//m_hair.setPos(0, yo, 0);
m_body.addBox(-4, 0, -2, 8, 12, 4, g);
m_body.setPos(0, yo, 0);
m_leg1.addBox(-2, 0, -2, 4, 6, 4, g);
m_leg1.setPos(-2, 12 + yo, 4);
m_leg2.addBox(-2, 0, -2, 4, 6, 4, g);
m_leg2.setPos(2, 12 + yo, 4);
m_leg3.addBox(-2, 0, -2, 4, 6, 4, g);
m_leg3.setPos(-2, 12 + yo, -4);
m_leg4.addBox(-2, 0, -2, 4, 6, 4, g);
m_leg4.setPos(2, 12 + yo, -4);
}

CreeperModel::~CreeperModel()
Expand Down
1 change: 1 addition & 0 deletions source/client/model/CreeperModel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class CreeperModel : public Model

private:
ModelPart m_head;
//ModelPart m_hair; // wtf *is* this??
ModelPart m_body;
ModelPart m_leg1;
ModelPart m_leg2;
Expand Down
19 changes: 6 additions & 13 deletions source/client/model/HumanoidModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,19 @@

HumanoidModel::HumanoidModel(float a, float b):
Model(64, 32),
m_head(0, 0),
m_body(16, 16),
m_arm1(40, 16),
m_arm2(40, 16),
m_leg1(0, 16),
m_leg2(0, 16)
m_head(this, 0, 0),
m_body(this, 16, 16),
m_arm1(this, 40, 16),
m_arm2(this, 40, 16),
m_leg1(this, 0, 16),
m_leg2(this, 0, 16)
{
field_20 = false;
m_bHoldingLeftHand = false;
m_bHoldingRightHand = false;
m_bSneaking = false;
field_237 = false;

m_head.setModel(this);
m_body.setModel(this);
m_arm1.setModel(this);
m_arm2.setModel(this);
m_leg1.setModel(this);
m_leg2.setModel(this);

m_head.addBox(-4, -8, -4, 8, 8, 8, a);
m_head.setPos(0, b, 0);
m_body.addBox(-4, 0, -2, 8, 12, 4);
Expand Down
4 changes: 2 additions & 2 deletions source/client/model/ModelPart.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@

#define MUL_DEG_TO_RAD (180.0f / float(M_PI)) // formerly known as Cube::c

ModelPart::ModelPart(int a, int b, float textureWidth, float textureHeight)
ModelPart::ModelPart(int a, int b)
{
_init(a, b);
}

ModelPart::ModelPart(Model* model, int a, int b, float textureWidth, float textureHeight)
ModelPart::ModelPart(Model* model, int a, int b)
{
_init(a, b);
setModel(model);
Expand Down
4 changes: 2 additions & 2 deletions source/client/model/ModelPart.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ class Model;
class ModelPart
{
public:
ModelPart(int, int, float textureWidth = 64.0f, float textureHeight = 64.0f);
ModelPart(Model*, int, int, float textureWidth = 64.0f, float textureHeight = 64.0f);
ModelPart(int, int);
ModelPart(Model*, int, int);
ModelPart(const std::string&);
~ModelPart();

Expand Down
21 changes: 7 additions & 14 deletions source/client/model/QuadrupedModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,17 @@

QuadrupedModel::QuadrupedModel(int i, float f) :
Model(64, 32),
m_head(0, 0),
m_unknown(0, 0),
m_body(28, 8),
m_leg1(0, 16),
m_leg2(0, 16),
m_leg3(0, 16),
m_leg4(0, 16)
m_head(this, 0, 0),
m_hair(this, 0, 0),
m_body(this, 28, 8),
m_leg1(this, 0, 16),
m_leg2(this, 0, 16),
m_leg3(this, 0, 16),
m_leg4(this, 0, 16)
{
field_28C = 8.0f;
field_290 = 4.0f;

m_head.setModel(this);
m_body.setModel(this);
m_leg1.setModel(this);
m_leg2.setModel(this);
m_leg3.setModel(this);
m_leg4.setModel(this);

m_head.addBox(-4, -4, -8, 8, 8, 8, f);
m_head.setPos(0, 18 - float(i), -6);
m_body.addBox(-5, -10, -7, 10, 16, 8, f);
Expand Down
2 changes: 1 addition & 1 deletion source/client/model/QuadrupedModel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class QuadrupedModel : public Model
protected:
friend class PigModel;
ModelPart m_head;
ModelPart m_unknown;
ModelPart m_hair;
ModelPart m_body;
ModelPart m_leg1;
ModelPart m_leg2;
Expand Down
45 changes: 42 additions & 3 deletions source/client/renderer/entity/CreeperRenderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,50 @@ CreeperRenderer::~CreeperRenderer()

int CreeperRenderer::getOverlayColor(Mob* pMob, float a, float b)
{
// TODO
return 0;
Creeper* pCreeper = (Creeper*)pMob;

float step = pCreeper->getSwelling(b);

if (static_cast<int>(step * 10.0f) % 2 == 0)
{
return 0;
}

int _a = step * 0.2f * 255.0f;

if (_a < 0) { _a = 0; }

if (_a > 255) { _a = 255; }

int red = 255;
int green = 255;
int blue = 255;

return _a << 24 | red << 16 | green << 8 | blue;
}

void CreeperRenderer::scale(Mob* pMob, float f)
{
// TODO
Creeper* pCreeper = (Creeper*)pMob;

float g = pCreeper->getSwelling(f);
float wobble = 1.0f + Mth::sin(g * 100.0f) * g * 0.01f;

if (g < 0.0f)
{
g = 0.0f;
}

if (g > 1.0f)
{
g = 1.0f;
}

g *= g;
g *= g;

float s = (1.0f + g * 0.4f) * wobble;
float hs = (1.0f + g * 0.1f) / wobble;

glScalef(s, hs, s);
}
1 change: 1 addition & 0 deletions source/client/renderer/entity/CreeperRenderer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#pragma once

#include "MobRenderer.hpp"
#include "world/entity/Creeper.hpp"

class CreeperRenderer : public MobRenderer
{
Expand Down
31 changes: 19 additions & 12 deletions source/client/sound/sound_list.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,10 @@ SOUND(damage, fallbig, 2)

SOUND(damage, fallsmall, )

SOUND(mob, pig, 1)
SOUND(mob, pig, 2)
SOUND(mob, pig, 3)
SOUND(mob, pigdeath, )

SOUND(mob, sheep, 1)
SOUND(mob, sheep, 2)
SOUND(mob, sheep, 3)
SOUND(mob, chicken, 2)
SOUND(mob, chicken, 3)
SOUND(mob, chickenhurt, 1)
SOUND(mob, chickenhurt, 2)

SOUND(mob, cow, 1)
SOUND(mob, cow, 2)
Expand All @@ -62,7 +58,18 @@ SOUND(mob, cowhurt, 1)
SOUND(mob, cowhurt, 2)
SOUND(mob, cowhurt, 3)

SOUND(mob, chicken, 2)
SOUND(mob, chicken, 3)
SOUND(mob, chickenhurt, 1)
SOUND(mob, chickenhurt, 2)
SOUND(mob, creeper, 1)
SOUND(mob, creeper, 2)
SOUND(mob, creeper, 3)
SOUND(mob, creeper, 4)
SOUND(mob, creeperdeath, )

SOUND(mob, pig, 1)
SOUND(mob, pig, 2)
SOUND(mob, pig, 3)
SOUND(mob, pigdeath, )

SOUND(mob, sheep, 1)
SOUND(mob, sheep, 2)
SOUND(mob, sheep, 3)

Loading