]> git.jsancho.org Git - lugaru.git/commitdiff
Moved PersonType class to its own file
authorCôme Chilliet <come@chilliet.eu>
Sun, 5 Feb 2017 21:31:01 +0000 (22:31 +0100)
committerCôme Chilliet <come@chilliet.eu>
Sun, 5 Feb 2017 21:31:01 +0000 (22:31 +0100)
CMakeLists.txt
Source/Objects/Person.cpp
Source/Objects/Person.hpp
Source/Objects/PersonType.cpp [new file with mode: 0644]
Source/Objects/PersonType.hpp [new file with mode: 0644]

index 851df4edfa14ae2090bc141f32c8f2abf0e1bfca..2e6505eabff2b213d83c1506177099e9c74b7519 100644 (file)
@@ -118,6 +118,7 @@ set(LUGARU_SRCS
     ${SRCDIR}/Menu/Menu.cpp
     ${SRCDIR}/Objects/Object.cpp
     ${SRCDIR}/Objects/Person.cpp
     ${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
     ${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}/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
     ${SRCDIR}/Objects/Weapons.hpp
     ${SRCDIR}/Platform/Platform.hpp
     ${SRCDIR}/Thirdparty/optionparser.h
index 817ee03734268e777c76543571c2faa279e51c0b..f020f5e67a9990f8423dbb6b05b71faea3d41944 100644 (file)
@@ -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()));
 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)
 
 Person::Person()
     : whichpatchx(0)
index 4896cbd2e237c053ca5fec29763d7407c131d977..3f96a26f1b73e430636eceba768b35c56d80446e 100644 (file)
@@ -23,12 +23,12 @@ along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 
 #include "Animation/Animation.hpp"
 #include "Animation/Skeleton.hpp"
 
 #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 "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>
 #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
 
 #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";
    }
 };
 
 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:
 class Person : public enable_shared_from_this<Person>
 {
 private:
diff --git a/Source/Objects/PersonType.cpp b/Source/Objects/PersonType.cpp
new file mode 100644 (file)
index 0000000..b22200a
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+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";
+}
diff --git a/Source/Objects/PersonType.hpp b/Source/Objects/PersonType.hpp
new file mode 100644 (file)
index 0000000..1d48a71
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+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