1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
#include "d/d_player_act.h"
#include "common.h"
#include "d/a/d_a_item.h"
#include "d/a/d_a_itembase.h"
#include "d/a/d_a_player.h"
#include "d/a/obj/d_a_obj_base.h"
#include "m/m_angle.h"
#include "m/m_color.h"
#include "m/m_vec.h"
#include "toBeSorted/event_manager.h"
mVec3_c daPlayerActBase_c::sPos1(mVec3_c::Zero);
mVec3_c daPlayerActBase_c::sPos2(mVec3_c::Zero);
mAng daPlayerActBase_c::sRot1(0);
mAng daPlayerActBase_c::sRot2(0);
const f32 daPlayerActBase_c::sPushRelatedConstant = 75.0f;
int daPlayerActBase_c::preExecute() {
if (dAcObjBase_c::preExecute() == NOT_READY) {
return NOT_READY;
}
someFlags_0x350 = 0;
someFlags_0x354 = 0;
return SUCCEEDED;
}
void daPlayerActBase_c::postExecute(MAIN_STATE_e state) {
if (state != CANCELED) {
someFlags_0x358 = 0;
mForceOrPreventActionFlags = 0;
}
dAcObjBase_c::postExecute(state);
}
bool daPlayerActBase_c::isInEvent() {
return EventManager::isInEvent();
}
bool daPlayerActBase_c::isAttackingLeft() const {
return mAttackDirection == ATTACK_SPIN_LEFT || mAttackDirection == ATTACK_SWING_LEFT;
}
bool daPlayerActBase_c::isAttackingRight() const {
return mAttackDirection == ATTACK_SPIN_RIGHT || mAttackDirection == ATTACK_SWING_RIGHT;
}
bool daPlayerActBase_c::isAttackingDown() const {
return mAttackDirection == ATTACK_SWING_DOWN || mAttackDirection == ATTACK_SPIN_DOWN ||
mAttackDirection == ATTACK_JUMP_SLASH;
}
bool daPlayerActBase_c::isAttackingUp() const {
return mAttackDirection == ATTACK_SPIN_UP || mAttackDirection == ATTACK_SWING_UP;
}
bool daPlayerActBase_c::isAttackingStab() const {
return mAttackDirection == ATTACK_STAB;
}
bool daPlayerActBase_c::isAttackingSpinHorizontal() const {
return mAttackDirection == ATTACK_SPIN_LEFT || mAttackDirection == ATTACK_SPIN_RIGHT;
}
bool daPlayerActBase_c::isAttackingSpinVertical() const {
return mAttackDirection == ATTACK_SPIN_DOWN || mAttackDirection == ATTACK_SPIN_UP;
}
void daPlayerActBase_c::setBonkRelatedAnimFlag(bool b) {
if (b) {
field_0x360 |= 2;
} else {
field_0x360 |= 1;
}
}
void daPlayerActBase_c::setPosRot(const mVec3_c *pos, const mAng3_c *rot, bool force, UNKWORD, UNKWORD) {
if (isInEvent() || force) {
mStts.ClrCcMove();
if (pos != nullptr) {
mPosition = *pos;
mOldPosition = mPosition;
mVelocity.y = 0.0f;
}
if (rot != nullptr) {
mRotation = *rot;
mAngle.y = mRotation.y;
}
}
}
void daPlayerActBase_c::setPosYRot(const mVec3_c &pos, mAng rot, bool force, UNKWORD a4, UNKWORD a5) {
mAng3_c ang(0, rot, 0);
setPosRot(&pos, &ang, force, a4, a5);
}
void daPlayerActBase_c::setTransform(const mMtx_c &mtx, bool force, UNKWORD a4, UNKWORD a5) {
mVec3_c translate;
mtx.getTranslation(translate);
mAng3_c rot;
mtx.toRot(rot);
setPosRot(&translate, &rot, force, a4, a5);
}
extern "C" bool fn_80213090(dAcEnBase_c *);
bool daPlayerActBase_c::someTargetedActorCheck() const {
return fn_80213090(getTargetedActor1());
}
mAng daPlayerActBase_c::fn_8005BA90() {
return dAcPy_c::LINK2->fn_8023B520();
}
mAng daPlayerActBase_c::fn_8005BAA0() {
return dAcPy_c::LINK2->fn_8023B590();
}
const mColor &daPlayerActBase_c::getEarringsColor() {
static const mColor sNoFireshieldEarrings = mColor(45, 80, 127, 255);
static const mColor sFireshieldEarrings = mColor(222, 57, 20, 255);
if (dAcItem_c::hasItem(ITEM_FIRESHIELD_EARRINGS)) {
return sFireshieldEarrings;
} else {
return sNoFireshieldEarrings;
}
}
|