We are currently deploying GitLab EE 10.4.0. For status updates, please follow https://twitter.com/GitLabStatus

Commit 61122a63 by MCMic

Moved PersonType class to its own file

parent 3bc5ee09
......@@ -118,6 +118,7 @@ set(LUGARU_SRCS
${SRCDIR}/Menu/Menu.cpp
${SRCDIR}/Objects/Object.cpp
${SRCDIR}/Objects/Person.cpp
${SRCDIR}/Objects/PersonType.cpp
${SRCDIR}/Objects/Weapons.cpp
${SRCDIR}/Platform/PlatformUnix.cpp
${SRCDIR}/Platform/PlatformWindows.cpp
......@@ -165,6 +166,7 @@ set(LUGARU_H
${SRCDIR}/Menu/Menu.hpp
${SRCDIR}/Objects/Object.hpp
${SRCDIR}/Objects/Person.hpp
${SRCDIR}/Objects/PersonType.hpp
${SRCDIR}/Objects/Weapons.hpp
${SRCDIR}/Platform/Platform.hpp
${SRCDIR}/Thirdparty/optionparser.h
......
......@@ -73,110 +73,6 @@ extern float envsoundlife[30];
extern XYZ windvector;
std::vector<std::shared_ptr<Person>> Person::players(1, std::shared_ptr<Person>(new Person()));
std::vector<PersonType> PersonType::types;
PersonType::PersonType()
{
animTalkIdle = tempanim;
}
bool PersonType::hasAnimTalkIdle()
{
return (animTalkIdle != tempanim);
}
void PersonType::Load()
{
types.resize(2);
/* Wolf */
types[wolftype].proportions[0] = 1.1;
types[wolftype].proportions[1] = 1.1;
types[wolftype].proportions[2] = 1.1;
types[wolftype].proportions[3] = 1.1;
types[wolftype].animRun = wolfrunanim;
types[wolftype].animRunning = wolfrunninganim;
types[wolftype].animCrouch = wolfcrouchanim;
types[wolftype].animStop = wolfstopanim;
types[wolftype].animLanding = wolflandanim;
types[wolftype].animLandingHard = wolflandhardanim;
types[wolftype].animFightIdle = wolfidle;
types[wolftype].animBounceIdle = wolfidle;
types[wolftype].soundsAttack[0] = barksound;
types[wolftype].soundsAttack[1] = bark2sound;
types[wolftype].soundsAttack[2] = bark3sound;
types[wolftype].soundsAttack[3] = barkgrowlsound;
types[wolftype].soundsTalk[0] = growlsound;
types[wolftype].soundsTalk[1] = growl2sound;
types[wolftype].figureFileName = "Skeleton/BasicFigureWolf";
types[wolftype].lowFigureFileName = "Skeleton/BasicFigureWolfLow";
types[wolftype].clothesFileName = "Skeleton/RabbitBelt";
types[wolftype].modelFileNames[0] = "Models/Wolf.solid";
types[wolftype].modelFileNames[1] = "Models/Wolf2.solid";
types[wolftype].modelFileNames[2] = "Models/Wolf3.solid";
types[wolftype].modelFileNames[3] = "Models/Wolf4.solid";
types[wolftype].modelFileNames[4] = "Models/Wolf5.solid";
types[wolftype].modelFileNames[5] = "Models/Wolf6.solid";
types[wolftype].modelFileNames[6] = "Models/Wolf7.solid";
types[wolftype].lowModelFileName = "Models/WolfLow.solid";
types[wolftype].modelClothesFileName = "Models/Belt.solid";
types[wolftype].skins.resize(3);
types[wolftype].skins[0] = "Textures/Wolf.jpg";
types[wolftype].skins[1] = "Textures/DarkWolf.jpg";
types[wolftype].skins[2] = "Textures/SnowWolf.jpg";
/* Rabbit */
types[rabbittype].proportions[0] = 1.2;
types[rabbittype].proportions[1] = 1.05;
types[rabbittype].proportions[2] = 1;
types[rabbittype].proportions[3] = 1.1;
types[rabbittype].proportions[3].y = 1.05;
types[rabbittype].animRun = runanim;
types[rabbittype].animRunning = rabbitrunninganim;
types[rabbittype].animCrouch = crouchanim;
types[rabbittype].animStop = stopanim;
types[rabbittype].animLanding = landanim;
types[rabbittype].animLandingHard = landhardanim;
types[rabbittype].animFightIdle = fightidleanim;
types[rabbittype].animBounceIdle = bounceidleanim;
types[rabbittype].soundsAttack[0] = rabbitattacksound;
types[rabbittype].soundsAttack[1] = rabbitattack2sound;
types[rabbittype].soundsAttack[2] = rabbitattack3sound;
types[rabbittype].soundsAttack[3] = rabbitattack4sound;
types[rabbittype].soundsTalk[0] = rabbitchitter;
types[rabbittype].soundsTalk[1] = rabbitchitter2;
types[rabbittype].figureFileName = "Skeleton/BasicFigure";
types[rabbittype].lowFigureFileName = "Skeleton/BasicFigureLow";
types[rabbittype].clothesFileName = "Skeleton/RabbitBelt";
types[rabbittype].modelFileNames[0] = "Models/Body.solid";
types[rabbittype].modelFileNames[1] = "Models/Body2.solid";
types[rabbittype].modelFileNames[2] = "Models/Body3.solid";
types[rabbittype].modelFileNames[3] = "Models/Body4.solid";
types[rabbittype].modelFileNames[4] = "Models/Body5.solid";
types[rabbittype].modelFileNames[5] = "Models/Body6.solid";
types[rabbittype].modelFileNames[6] = "Models/Body7.solid";
types[rabbittype].lowModelFileName = "Models/BodyLow.solid";
types[rabbittype].modelClothesFileName = "Models/Belt.solid";
types[rabbittype].skins.resize(10);
types[rabbittype].skins[0] = "Textures/Fur3.jpg";
types[rabbittype].skins[1] = "Textures/Fur.jpg";
types[rabbittype].skins[2] = "Textures/Fur2.jpg";
types[rabbittype].skins[3] = "Textures/Lynx.jpg";
types[rabbittype].skins[4] = "Textures/Otter.jpg";
types[rabbittype].skins[5] = "Textures/Opal.jpg";
types[rabbittype].skins[6] = "Textures/Sable.jpg";
types[rabbittype].skins[7] = "Textures/Chocolate.jpg";
types[rabbittype].skins[8] = "Textures/BW2.jpg";
types[rabbittype].skins[9] = "Textures/WB2.jpg";
}
Person::Person()
: whichpatchx(0)
......
......@@ -23,12 +23,12 @@ along with Lugaru. If not, see <http://www.gnu.org/licenses/>.
#include "Animation/Animation.hpp"
#include "Animation/Skeleton.hpp"
#include "Audio/Sounds.hpp"
#include "Environment/Terrain.hpp"
#include "Graphic/gamegl.hpp"
#include "Graphic/Models.hpp"
#include "Graphic/Sprite.hpp"
#include "Math/XYZ.hpp"
#include "Objects/PersonType.hpp"
#include "Objects/Weapons.hpp"
#include <cmath>
......@@ -44,54 +44,12 @@ along with Lugaru. If not, see <http://www.gnu.org/licenses/>.
#define getweapontype 7
#define pathfindtype 8
enum person_type
{
rabbittype = 0,
wolftype = 1
};
struct InvalidPersonException : public exception {
const char * what () const throw () {
return "Invalid weapon number";
}
};
class PersonType
{
public:
// head, body, arms, legs
XYZ proportions[4];
animation_type animRun;
animation_type animRunning;
animation_type animCrouch;
animation_type animStop;
animation_type animLanding;
animation_type animLandingHard;
animation_type animFightIdle;
animation_type animBounceIdle;
animation_type animTalkIdle;
sound_type soundsAttack[4];
sound_type soundsTalk[2];
std::string figureFileName;
std::string lowFigureFileName;
std::string clothesFileName;
std::string modelFileNames[7];
std::string lowModelFileName;
std::string modelClothesFileName;
std::vector<std::string> skins;
GLubyte bloodText[512 * 512 * 3] = { 0 };
PersonType();
bool hasAnimTalkIdle();
static std::vector<PersonType> types;
static void Load();
};
class Person : public enable_shared_from_this<Person>
{
private:
......
/*
Copyright (C) 2016-2017 - Lugaru contributors (see AUTHORS file)
This file is part of Lugaru.
Lugaru is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
Lugaru is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Lugaru. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Objects/PersonType.hpp"
std::vector<PersonType> PersonType::types;
PersonType::PersonType()
{
animTalkIdle = tempanim;
}
bool PersonType::hasAnimTalkIdle()
{
return (animTalkIdle != tempanim);
}
void PersonType::Load()
{
types.resize(2);
/* Wolf */
types[wolftype].proportions[0] = 1.1;
types[wolftype].proportions[1] = 1.1;
types[wolftype].proportions[2] = 1.1;
types[wolftype].proportions[3] = 1.1;
types[wolftype].animRun = wolfrunanim;
types[wolftype].animRunning = wolfrunninganim;
types[wolftype].animCrouch = wolfcrouchanim;
types[wolftype].animStop = wolfstopanim;
types[wolftype].animLanding = wolflandanim;
types[wolftype].animLandingHard = wolflandhardanim;
types[wolftype].animFightIdle = wolfidle;
types[wolftype].animBounceIdle = wolfidle;
types[wolftype].soundsAttack[0] = barksound;
types[wolftype].soundsAttack[1] = bark2sound;
types[wolftype].soundsAttack[2] = bark3sound;
types[wolftype].soundsAttack[3] = barkgrowlsound;
types[wolftype].soundsTalk[0] = growlsound;
types[wolftype].soundsTalk[1] = growl2sound;
types[wolftype].figureFileName = "Skeleton/BasicFigureWolf";
types[wolftype].lowFigureFileName = "Skeleton/BasicFigureWolfLow";
types[wolftype].clothesFileName = "Skeleton/RabbitBelt";
types[wolftype].modelFileNames[0] = "Models/Wolf.solid";
types[wolftype].modelFileNames[1] = "Models/Wolf2.solid";
types[wolftype].modelFileNames[2] = "Models/Wolf3.solid";
types[wolftype].modelFileNames[3] = "Models/Wolf4.solid";
types[wolftype].modelFileNames[4] = "Models/Wolf5.solid";
types[wolftype].modelFileNames[5] = "Models/Wolf6.solid";
types[wolftype].modelFileNames[6] = "Models/Wolf7.solid";
types[wolftype].lowModelFileName = "Models/WolfLow.solid";
types[wolftype].modelClothesFileName = "Models/Belt.solid";
types[wolftype].skins.resize(3);
types[wolftype].skins[0] = "Textures/Wolf.jpg";
types[wolftype].skins[1] = "Textures/DarkWolf.jpg";
types[wolftype].skins[2] = "Textures/SnowWolf.jpg";
/* Rabbit */
types[rabbittype].proportions[0] = 1.2;
types[rabbittype].proportions[1] = 1.05;
types[rabbittype].proportions[2] = 1;
types[rabbittype].proportions[3] = 1.1;
types[rabbittype].proportions[3].y = 1.05;
types[rabbittype].animRun = runanim;
types[rabbittype].animRunning = rabbitrunninganim;
types[rabbittype].animCrouch = crouchanim;
types[rabbittype].animStop = stopanim;
types[rabbittype].animLanding = landanim;
types[rabbittype].animLandingHard = landhardanim;
types[rabbittype].animFightIdle = fightidleanim;
types[rabbittype].animBounceIdle = bounceidleanim;
types[rabbittype].soundsAttack[0] = rabbitattacksound;
types[rabbittype].soundsAttack[1] = rabbitattack2sound;
types[rabbittype].soundsAttack[2] = rabbitattack3sound;
types[rabbittype].soundsAttack[3] = rabbitattack4sound;
types[rabbittype].soundsTalk[0] = rabbitchitter;
types[rabbittype].soundsTalk[1] = rabbitchitter2;
types[rabbittype].figureFileName = "Skeleton/BasicFigure";
types[rabbittype].lowFigureFileName = "Skeleton/BasicFigureLow";
types[rabbittype].clothesFileName = "Skeleton/RabbitBelt";
types[rabbittype].modelFileNames[0] = "Models/Body.solid";
types[rabbittype].modelFileNames[1] = "Models/Body2.solid";
types[rabbittype].modelFileNames[2] = "Models/Body3.solid";
types[rabbittype].modelFileNames[3] = "Models/Body4.solid";
types[rabbittype].modelFileNames[4] = "Models/Body5.solid";
types[rabbittype].modelFileNames[5] = "Models/Body6.solid";
types[rabbittype].modelFileNames[6] = "Models/Body7.solid";
types[rabbittype].lowModelFileName = "Models/BodyLow.solid";
types[rabbittype].modelClothesFileName = "Models/Belt.solid";
types[rabbittype].skins.resize(10);
types[rabbittype].skins[0] = "Textures/Fur3.jpg";
types[rabbittype].skins[1] = "Textures/Fur.jpg";
types[rabbittype].skins[2] = "Textures/Fur2.jpg";
types[rabbittype].skins[3] = "Textures/Lynx.jpg";
types[rabbittype].skins[4] = "Textures/Otter.jpg";
types[rabbittype].skins[5] = "Textures/Opal.jpg";
types[rabbittype].skins[6] = "Textures/Sable.jpg";
types[rabbittype].skins[7] = "Textures/Chocolate.jpg";
types[rabbittype].skins[8] = "Textures/BW2.jpg";
types[rabbittype].skins[9] = "Textures/WB2.jpg";
}
/*
Copyright (C) 2016-2017 - Lugaru contributors (see AUTHORS file)
This file is part of Lugaru.
Lugaru is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
Lugaru is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Lugaru. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _PERSONTYPE_HPP_
#define _PERSONTYPE_HPP_
#include "Animation/Animation.hpp"
#include "Audio/Sounds.hpp"
#include "Math/XYZ.hpp"
enum person_type
{
rabbittype = 0,
wolftype = 1
};
class PersonType
{
public:
// head, body, arms, legs
XYZ proportions[4];
animation_type animRun;
animation_type animRunning;
animation_type animCrouch;
animation_type animStop;
animation_type animLanding;
animation_type animLandingHard;
animation_type animFightIdle;
animation_type animBounceIdle;
animation_type animTalkIdle;
sound_type soundsAttack[4];
sound_type soundsTalk[2];
std::string figureFileName;
std::string lowFigureFileName;
std::string clothesFileName;
std::string modelFileNames[7];
std::string lowModelFileName;
std::string modelClothesFileName;
std::vector<std::string> skins;
GLubyte bloodText[512 * 512 * 3] = { 0 };
PersonType();
bool hasAnimTalkIdle();
static std::vector<PersonType> types;
static void Load();
};
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment