+/*
+Copyright (C) 2003, 2010 - Wolfire Games
+
+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.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
#ifndef _PERSON_H_
#define _PERSON_H_
#include "gamegl.h"
#include "Quaternions.h"
-#include "fmod.h"
#include "Skeleton.h"
#include "Models.h"
#include "Constants.h"
#include "Terrain.h"
-#include "Sprites.h"
+#include "Sprite.h"
#include <cmath>
#include "Weapons.h"
+#include "Animation.h"
#define passivetype 0
#define guardtype 1
#define rabbittype 0
#define wolftype 1
-class HitStruct
-{
- public:
- Joint *joint1;
- Joint *joint2;
- XYZ hitlocation;
- bool collision;
-};
-
class Person
{
public:
void DoBloodBig(float howmuch, int which);
bool DoBloodBigWhere(float howmuch, int which, XYZ where);
- bool wasIdle();
- bool isIdle();
+ bool wasIdle()
+ {
+ return animation_bits[currentanimation] & ab_idle;
+ }
+ bool isIdle()
+ {
+ return animation_bits[targetanimation] & ab_idle;
+ }
int getIdle();
- bool isSitting();
- bool isSleeping();
-
-
- bool wasCrouch();
- bool isCrouch();
+ bool isSitting()
+ {
+ return animation_bits[targetanimation] & ab_sit;
+ }
+
+ bool isSleeping()
+ {
+ return animation_bits[targetanimation] & ab_sleep;
+ }
+
+ bool wasCrouch()
+ {
+ return animation_bits[currentanimation] & ab_crouch;
+ }
+ bool isCrouch()
+ {
+ return animation_bits[targetanimation] & ab_crouch;
+ }
int getCrouch();
- bool wasStop();
- bool isStop();
+ bool wasStop()
+ {
+ return animation_bits[currentanimation] & ab_stop;
+ }
+ bool isStop()
+ {
+ return animation_bits[targetanimation] & ab_stop;
+ }
int getStop();
bool wasSneak();
bool isSneak();
int getSneak();
- bool wasRun();
- bool isRun();
+ bool wasRun()
+ {
+ return animation_bits[currentanimation] & ab_run;
+ }
+ bool isRun()
+ {
+ return animation_bits[targetanimation] & ab_run;
+ }
int getRun();
-
- bool wasLanding();
- bool isLanding();
+
+ bool wasLanding()
+ {
+ return animation_bits[currentanimation] & ab_land;
+ }
+ bool isLanding()
+ {
+ return animation_bits[targetanimation] & ab_land;
+ }
int getLanding();
bool wasLandhard();
void DoStuff();
void DoAnimations();
void RagDoll(bool checkcollision);
- HitStruct BulletCollideWithPlayer(XYZ start, XYZ end);
};
-#endif
\ No newline at end of file
+extern Person player[maxplayers];
+#endif