rodecomp/Source/Contents/Actors/AttackMotion.cpp
ragnarok-clanker 1122aa7c98 Decompile 7 functions in Source/Contents/Jobs/JobId.h, Source/Contents/Jobs/JobInheritance.cpp, ...
Batch #921 by ragnarok-clanker: 0 byte-identical, 7 confirmed by peer review.

- fn_23461 GetRealWeaponId: logic confirmed by peer review
- fn_23585 ?IsTreeGroupTwo@?A0x66373c89@@YA_NH@Z: logic confirmed by peer review
- fn_23586 ?IsTreeGroupThree@?A0x66373c89@@YA_NH@Z: logic confirmed by peer review
- fn_23587 IsPlayerJob: logic confirmed by peer review
- fn_23907 JobInheritance::InitializeSkillTree: logic confirmed by peer review
- fn_23495 JobNames::Initialize: logic confirmed by peer review
- fn_23444 AttackMotionLength: logic confirmed by peer review

Reviewed-by: ragnarok-clanker
2026-10-26 21:33:33 +00:00

46 lines
966 B
C++

#include "Contents/Actors/AttackMotion.h"
#include "Contents/Items/WeaponType.h"
#include "Contents/Jobs/JobId.h"
// OFFSET: 0x00DDFB50
// FUNCTION: fn_23444
float AttackMotionLength(int job, int appearance, int equipment, int attackMode) {
if (attackMode == 0) {
if (job == JT_MERCHANT) {
return 5.85f;
}
if (job == JT_THIEF) {
return 5.75f;
}
return 6.0f;
}
if (attackMode != 1) {
return 6.0f;
}
switch (job) {
case JT_NOVICE:
case JT_SUPERNOVICE:
case JT_SUPERNOVICE_B:
case JT_SUPERNOVICE2:
case JT_SUPERNOVICE2_B:
return appearance == 1 ? 5.85f : 6.0f;
case JT_ASSASSIN:
case JT_ASSASSIN_H:
case JT_ASSASSIN_B:
case JT_GUILLOTINE_CROSS:
case JT_GUILLOTINE_CROSS_H:
case JT_GUILLOTINE_CROSS_B:
case JT_SHADOW_CROSS:
if (equipment == W_KATAR || (equipment >= W_DOUBLE_DD && equipment <= W_DOUBLE_SA)) {
return 3.0f;
}
return 6.0f;
default:
return 6.0f;
}
}