mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
Fix combat vocalizations with correct MPQ paths, add combat idle stance
Use actual WoW 3.3.5a PlayerExertions and Vox sound paths from MPQ manifests for attack grunts, wounds, and death sounds. Handle Blizzard naming quirks (HumanFeamle typo, OrcMale no Final suffix, Scourge→Undead). Add COMBAT_IDLE animation state with ready weapon stance between swings. Restore deleted MPQ sound manifest docs.
This commit is contained in:
parent
8a9d9f47db
commit
328ec9ea78
5 changed files with 10623 additions and 84 deletions
|
|
@ -960,6 +960,9 @@ void Renderer::updateCharacterAnimation() {
|
|||
constexpr uint32_t ANIM_SWIM_IDLE = 41; // Treading water (SwimIdle)
|
||||
constexpr uint32_t ANIM_SWIM = 42; // Swimming forward (Swim)
|
||||
constexpr uint32_t ANIM_MOUNT = 91; // Seated on mount
|
||||
constexpr uint32_t ANIM_READY_UNARMED = 7; // Combat ready stance (unarmed)
|
||||
constexpr uint32_t ANIM_READY_1H = 8; // Combat ready stance (1H weapon)
|
||||
constexpr uint32_t ANIM_READY_2H = 9; // Combat ready stance (2H weapon)
|
||||
constexpr uint32_t ANIM_FLY_IDLE = 158; // Flying mount idle/hover
|
||||
constexpr uint32_t ANIM_FLY_FORWARD = 159; // Flying mount forward
|
||||
|
||||
|
|
@ -1371,6 +1374,8 @@ void Renderer::updateCharacterAnimation() {
|
|||
newState = CharAnimState::RUN;
|
||||
} else if (moving) {
|
||||
newState = CharAnimState::WALK;
|
||||
} else if (inCombat_ && grounded) {
|
||||
newState = CharAnimState::COMBAT_IDLE;
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
@ -1493,6 +1498,8 @@ void Renderer::updateCharacterAnimation() {
|
|||
newState = CharAnimState::WALK;
|
||||
} else if (sitting) {
|
||||
newState = CharAnimState::SIT_DOWN;
|
||||
} else if (inCombat_) {
|
||||
newState = CharAnimState::COMBAT_IDLE;
|
||||
} else {
|
||||
newState = CharAnimState::IDLE;
|
||||
}
|
||||
|
|
@ -1518,6 +1525,22 @@ void Renderer::updateCharacterAnimation() {
|
|||
}
|
||||
break;
|
||||
|
||||
case CharAnimState::COMBAT_IDLE:
|
||||
if (swim) {
|
||||
newState = moving ? CharAnimState::SWIM : CharAnimState::SWIM_IDLE;
|
||||
} else if (!grounded && jumping) {
|
||||
newState = CharAnimState::JUMP_START;
|
||||
} else if (!grounded) {
|
||||
newState = CharAnimState::JUMP_MID;
|
||||
} else if (moving && sprinting) {
|
||||
newState = CharAnimState::RUN;
|
||||
} else if (moving) {
|
||||
newState = CharAnimState::WALK;
|
||||
} else if (!inCombat_) {
|
||||
newState = CharAnimState::IDLE;
|
||||
}
|
||||
break;
|
||||
|
||||
case CharAnimState::CHARGE:
|
||||
// Stay in CHARGE until charging_ is cleared
|
||||
break;
|
||||
|
|
@ -1589,6 +1612,10 @@ void Renderer::updateCharacterAnimation() {
|
|||
loop = false;
|
||||
break;
|
||||
case CharAnimState::MOUNT: animId = ANIM_MOUNT; loop = true; break;
|
||||
case CharAnimState::COMBAT_IDLE:
|
||||
animId = pickFirstAvailable({ANIM_READY_1H, ANIM_READY_2H, ANIM_READY_UNARMED}, ANIM_STAND);
|
||||
loop = true;
|
||||
break;
|
||||
case CharAnimState::CHARGE:
|
||||
animId = ANIM_RUN;
|
||||
loop = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue