Batch #1694 by eAthena: 0 byte-identical, 4 confirmed by peer review. - fn_23819 CSession::GetSyncedFrame: logic confirmed by peer review - fn_23467 CSession::GetNpcLocationRadius: logic confirmed by peer review - fn_23823 CSession::GetRidingJob: logic confirmed by peer review - fn_24152 CSession::GetSpriteJob: logic confirmed by peer review Reviewed-by: ragnarok-clanker Adds to the build: Source/Contents/SpriteFrameSynchronization.cpp, Source/Contents/NpcLocationRadius.cpp, Source/Contents/SpriteJob.cpp
438 lines
9.5 KiB
C++
438 lines
9.5 KiB
C++
#include "Client/Session.h"
|
|
#include "Contents/Jobs/JobId.h"
|
|
#include "Script/LuaScript.h"
|
|
|
|
// OFFSET: 0x00DE0A70
|
|
// FUNCTION: fn_23467
|
|
float CSession::GetNpcLocationRadius(int job, bool riding) {
|
|
if (riding == true) {
|
|
job = this->GetRidingJob(job);
|
|
}
|
|
|
|
int radius = 0;
|
|
g_session.m_hotkeyScript->Call("GetNpcLocationRadius", "d>d", job, &radius);
|
|
if (radius != 0) {
|
|
return static_cast<float>(radius * 2 + 1);
|
|
}
|
|
|
|
if (this->m_npcLocationRadius.find(job) == this->m_npcLocationRadius.end()) {
|
|
return 1.0f;
|
|
}
|
|
|
|
return this->m_npcLocationRadius[job];
|
|
}
|
|
|
|
// OFFSET: 0x00E130A0
|
|
// FUNCTION: fn_23823
|
|
int CSession::GetRidingJob(int job) {
|
|
if (job == JT_NINJA) {
|
|
return JT_FROG_NINJA;
|
|
}
|
|
if (job == JT_LINKER) {
|
|
return JT_FROG_LINKER;
|
|
}
|
|
if (job == JT_GUNSLINGER) {
|
|
return JT_PECO_GUNNER;
|
|
}
|
|
if (job == JT_SWORDMAN) {
|
|
return JT_PECO_SWORD;
|
|
}
|
|
if (job == JT_BLACKSMITH_H) {
|
|
return JT_PIG_WHITESMITH;
|
|
}
|
|
if (job == JT_MERCHANT) {
|
|
return JT_PIG_MERCHANT;
|
|
}
|
|
if (job == JT_GENETIC || job == JT_GENETIC_H) {
|
|
return JT_PIG_GENETIC;
|
|
}
|
|
if (job == JT_ALCHEMIST_H) {
|
|
return JT_PIG_CREATOR;
|
|
}
|
|
if (job == JT_ARCHER) {
|
|
return JT_OSTRICH_ARCHER;
|
|
}
|
|
if (job == JT_STAR || job == JT_STAR2) {
|
|
return JT_PORING_STAR;
|
|
}
|
|
if (job == JT_NOVICE) {
|
|
return JT_PORING_NOVICE;
|
|
}
|
|
if (job == JT_MONK) {
|
|
return JT_SHEEP_MONK;
|
|
}
|
|
if (job == JT_ACOLYTE) {
|
|
return JT_SHEEP_ACO;
|
|
}
|
|
if (job == JT_SURA || job == JT_SURA_H) {
|
|
return JT_SHEEP_SURA;
|
|
}
|
|
if (job == JT_SUPERNOVICE) {
|
|
return JT_PORING_SNOVICE;
|
|
}
|
|
if (job == JT_ARCHBISHOP || job == JT_ARCHBISHOP_H) {
|
|
return JT_SHEEP_ARCB;
|
|
}
|
|
if (job == JT_MAGICIAN) {
|
|
return JT_FOX_MAGICIAN;
|
|
}
|
|
if (job == JT_SAGE) {
|
|
return JT_FOX_SAGE;
|
|
}
|
|
if (job == JT_SORCERER || job == JT_SORCERER_H) {
|
|
return JT_FOX_SORCERER;
|
|
}
|
|
if (job == JT_WARLOCK || job == JT_WARLOCK_H) {
|
|
return JT_FOX_WARLOCK;
|
|
}
|
|
if (job == JT_WIZARD) {
|
|
return JT_FOX_WIZ;
|
|
}
|
|
if (job == JT_SAGE_H) {
|
|
return JT_FOX_PROF;
|
|
}
|
|
if (job == JT_WIZARD_H) {
|
|
return JT_FOX_HWIZ;
|
|
}
|
|
if (job == JT_ALCHEMIST) {
|
|
return JT_PIG_ALCHE;
|
|
}
|
|
if (job == JT_BLACKSMITH) {
|
|
return JT_PIG_BLACKSMITH;
|
|
}
|
|
if (job == JT_MONK_H) {
|
|
return JT_SHEEP_CHAMP;
|
|
}
|
|
if (job == JT_GUILLOTINE_CROSS || job == JT_GUILLOTINE_CROSS_H) {
|
|
return JT_DOG_G_CROSS;
|
|
}
|
|
if (job == JT_THIEF) {
|
|
return JT_DOG_THIEF;
|
|
}
|
|
if (job == JT_ROGUE) {
|
|
return JT_DOG_ROGUE;
|
|
}
|
|
if (job == JT_SHADOW_CHASER || job == JT_SHADOW_CHASER_H) {
|
|
return JT_DOG_CHASER;
|
|
}
|
|
if (job == JT_ROGUE_H) {
|
|
return JT_DOG_STALKER;
|
|
}
|
|
if (job == JT_ASSASSIN) {
|
|
return JT_DOG_ASSASSIN;
|
|
}
|
|
if (job == JT_ASSASSIN_H) {
|
|
return JT_DOG_ASSA_X;
|
|
}
|
|
if (job == JT_DANCER) {
|
|
return JT_OSTRICH_DANCER;
|
|
}
|
|
if (job == JT_MINSTREL || job == JT_MINSTREL_H) {
|
|
return JT_OSTRICH_MINSTREL;
|
|
}
|
|
if (job == JT_BARD) {
|
|
return JT_OSTRICH_BARD;
|
|
}
|
|
if (job == JT_HUNTER_H) {
|
|
return JT_OSTRICH_SNIPER;
|
|
}
|
|
if (job == JT_WANDERER || job == JT_WANDERER_H) {
|
|
return JT_OSTRICH_WANDER;
|
|
}
|
|
if (job == JT_DANCER_H) {
|
|
return JT_OSTRICH_ZIPSI;
|
|
}
|
|
if (job == JT_BARD_H) {
|
|
return JT_OSTRICH_CROWN;
|
|
}
|
|
if (job == JT_HUNTER) {
|
|
return JT_OSTRICH_HUNTER;
|
|
}
|
|
if (job == JT_TAEKWON) {
|
|
return JT_PORING_TAEKWON;
|
|
}
|
|
if (job == JT_PRIEST) {
|
|
return JT_SHEEP_PRIEST;
|
|
}
|
|
if (job == JT_PRIEST_H) {
|
|
return JT_SHEEP_HPRIEST;
|
|
}
|
|
if (job == JT_NOVICE_B) {
|
|
return JT_PORING_NOVICE_B;
|
|
}
|
|
if (job == JT_SWORDMAN_B) {
|
|
return JT_PECO_SWORD_B;
|
|
}
|
|
if (job == JT_MAGICIAN_B) {
|
|
return JT_FOX_MAGICIAN_B;
|
|
}
|
|
if (job == JT_ARCHER_B) {
|
|
return JT_OSTRICH_ARCHER_B;
|
|
}
|
|
if (job == JT_ACOLYTE_B) {
|
|
return JT_SHEEP_ACO_B;
|
|
}
|
|
if (job == JT_MERCHANT_B) {
|
|
return JT_PIG_MERCHANT_B;
|
|
}
|
|
if (job == JT_HUNTER_B) {
|
|
return JT_OSTRICH_HUNTER_B;
|
|
}
|
|
if (job == JT_ASSASSIN_B) {
|
|
return JT_DOG_ASSASSIN_B;
|
|
}
|
|
if (job == JT_MONK_B) {
|
|
return JT_SHEEP_MONK_B;
|
|
}
|
|
if (job == JT_SAGE_B) {
|
|
return JT_FOX_SAGE_B;
|
|
}
|
|
if (job == JT_ROGUE_B) {
|
|
return JT_DOG_ROGUE_B;
|
|
}
|
|
if (job == JT_ALCHEMIST_B) {
|
|
return JT_PIG_ALCHE_B;
|
|
}
|
|
if (job == JT_BARD_B) {
|
|
return JT_OSTRICH_BARD_B;
|
|
}
|
|
if (job == JT_DANCER_B) {
|
|
return JT_OSTRICH_DANCER_B;
|
|
}
|
|
if (job == JT_SUPERNOVICE_B) {
|
|
return JT_PORING_SNOVICE_B;
|
|
}
|
|
if (job == JT_WARLOCK_B) {
|
|
return JT_FOX_WARLOCK_B;
|
|
}
|
|
if (job == JT_ARCHBISHOP_B) {
|
|
return JT_SHEEP_ARCB_B;
|
|
}
|
|
if (job == JT_GUILLOTINE_CROSS_B) {
|
|
return JT_DOG_G_CROSS_B;
|
|
}
|
|
if (job == JT_SORCERER_B) {
|
|
return JT_FOX_SORCERER_B;
|
|
}
|
|
if (job == JT_MINSTREL_B) {
|
|
return JT_OSTRICH_MINSTREL_B;
|
|
}
|
|
if (job == JT_WANDERER_B) {
|
|
return JT_OSTRICH_WANDER_B;
|
|
}
|
|
if (job == JT_SURA_B) {
|
|
return JT_SHEEP_SURA_B;
|
|
}
|
|
if (job == JT_GENETIC_B) {
|
|
return JT_PIG_GENETIC_B;
|
|
}
|
|
if (job == JT_SHADOW_CHASER_B) {
|
|
return JT_DOG_CHASER_B;
|
|
}
|
|
if (job == JT_NOVICE_H) {
|
|
return JT_PORING_NOVICE_H;
|
|
}
|
|
if (job == JT_SWORDMAN_H) {
|
|
return JT_PECO_SWORD_H;
|
|
}
|
|
if (job == JT_MAGICIAN_H) {
|
|
return JT_FOX_MAGICIAN_H;
|
|
}
|
|
if (job == JT_ARCHER_H) {
|
|
return JT_OSTRICH_ARCHER_H;
|
|
}
|
|
if (job == JT_ACOLYTE_H) {
|
|
return JT_SHEEP_ACO_H;
|
|
}
|
|
if (job == JT_MERCHANT_H) {
|
|
return JT_PIG_MERCHANT_H;
|
|
}
|
|
if (job == JT_THIEF_H) {
|
|
return JT_DOG_THIEF_H;
|
|
}
|
|
if (job == JT_THIEF_B) {
|
|
return JT_DOG_THIEF_B;
|
|
}
|
|
if (job == JT_SUPERNOVICE2) {
|
|
return JT_PORING_SNOVICE2;
|
|
}
|
|
if (job == JT_SUPERNOVICE2_B) {
|
|
return JT_PORING_SNOVICE2_B;
|
|
}
|
|
if (job == JT_PRIEST_B) {
|
|
return JT_SHEEP_PRIEST_B;
|
|
}
|
|
if (job == JT_WIZARD_B) {
|
|
return JT_FOX_WIZ_B;
|
|
}
|
|
if (job == JT_BLACKSMITH_B) {
|
|
return JT_PIG_BLACKSMITH_B;
|
|
}
|
|
if (job == JT_MECHANIC || job == JT_MECHANIC_H) {
|
|
return JT_PIG_MECHANIC;
|
|
}
|
|
if (job == JT_MECHANIC_B) {
|
|
return JT_PIG_MECHANIC_B;
|
|
}
|
|
if (job == JT_RANGER || job == JT_RANGER_H) {
|
|
return JT_OSTRICH_RANGER;
|
|
}
|
|
if (job == JT_RANGER_B) {
|
|
return JT_OSTRICH_RANGER_B;
|
|
}
|
|
if (job == JT_KNIGHT) {
|
|
return JT_LION_KNIGHT;
|
|
}
|
|
if (job == JT_KNIGHT_H) {
|
|
return JT_LION_KNIGHT_H;
|
|
}
|
|
if (job == JT_KNIGHT_B) {
|
|
return JT_LION_KNIGHT_B;
|
|
}
|
|
if (job == JT_ROYAL_GUARD || job == JT_ROYAL_GUARD_H) {
|
|
return JT_LION_ROYAL_GUARD;
|
|
}
|
|
if (job == JT_ROYAL_GUARD_B) {
|
|
return JT_LION_ROYAL_GUARD_B;
|
|
}
|
|
if (job == JT_RUNE_KNIGHT || job == JT_RUNE_KNIGHT_H) {
|
|
return JT_LION_RUNE_KNIGHT;
|
|
}
|
|
if (job == JT_RUNE_KNIGHT_B) {
|
|
return JT_LION_RUNE_KNIGHT_B;
|
|
}
|
|
if (job == JT_CRUSADER) {
|
|
return JT_LION_CRUSADER;
|
|
}
|
|
if (job == JT_CRUSADER_H) {
|
|
return JT_LION_CRUSADER_H;
|
|
}
|
|
if (job == JT_CRUSADER_B) {
|
|
return JT_LION_CRUSADER_B;
|
|
}
|
|
if (job == JT_KAGEROU) {
|
|
return JT_FROG_KAGEROU;
|
|
}
|
|
if (job == JT_OBORO) {
|
|
return JT_FROG_OBORO;
|
|
}
|
|
if (job == JT_REBELLION) {
|
|
return JT_PECO_REBELLION;
|
|
}
|
|
if (job == JT_DO_SUMMONER) {
|
|
return JT_DO_CART_SUMMONER;
|
|
}
|
|
if (job == JT_DO_SUMMONER_B) {
|
|
return JT_DO_CART_SUMMONER_B;
|
|
}
|
|
if (job == JT_NINJA_B) {
|
|
return JT_FROG_NINJA_B;
|
|
}
|
|
if (job == JT_KAGEROU_B) {
|
|
return JT_FROG_KAGEROU_B;
|
|
}
|
|
if (job == JT_OBORO_B) {
|
|
return JT_FROG_OBORO_B;
|
|
}
|
|
if (job == JT_TAEKWON_B) {
|
|
return JT_PORING_TAEKWON_B;
|
|
}
|
|
if (job == JT_STAR_B || job == JT_STAR2_B) {
|
|
return JT_PORING_STAR_B;
|
|
}
|
|
if (job == JT_LINKER_B) {
|
|
return JT_FROG_LINKER_B;
|
|
}
|
|
if (job == JT_GUNSLINGER_B) {
|
|
return JT_PECO_GUNNER_B;
|
|
}
|
|
if (job == JT_REBELLION_B) {
|
|
return JT_PECO_REBELLION_B;
|
|
}
|
|
if (job == JT_STAR_EMPEROR || job == JT_STAR2_EMPEROR) {
|
|
return JT_HAETAE_STAR_EMPEROR;
|
|
}
|
|
if (job == JT_STAR_EMPEROR_B || job == JT_STAR2_EMPEROR_B) {
|
|
return JT_HAETAE_STAR_EMPEROR_B;
|
|
}
|
|
if (job == JT_SOUL_REAPER) {
|
|
return JT_HAETAE_SOUL_REAPER;
|
|
}
|
|
if (job == JT_SOUL_REAPER_B) {
|
|
return JT_HAETAE_SOUL_REAPER_B;
|
|
}
|
|
if (job == JT_SHADOW_CROSS) {
|
|
return JT_SHADOW_CROSS_RIDING;
|
|
}
|
|
if (job == JT_ABYSS_CHASER) {
|
|
return JT_ABYSS_CHASER_RIDING;
|
|
}
|
|
if (job == JT_DRAGON_KNIGHT) {
|
|
return JT_DRAGON_KNIGHT_RIDING;
|
|
}
|
|
if (job == JT_IMPERIAL_GUARD) {
|
|
return JT_IMPERIAL_GUARD_RIDING;
|
|
}
|
|
if (job == JT_BIOLO) {
|
|
return JT_BIOLO_RIDING;
|
|
}
|
|
if (job == JT_MEISTER) {
|
|
return JT_MEISTER_RIDING;
|
|
}
|
|
if (job == JT_WINDHAWK) {
|
|
return JT_WINDHAWK_RIDING;
|
|
}
|
|
if (job == JT_TROUBADOUR) {
|
|
return JT_TROUBADOUR_RIDING;
|
|
}
|
|
if (job == JT_TROUVERE) {
|
|
return JT_TROUVERE_RIDING;
|
|
}
|
|
if (job == JT_ARCH_MAGE) {
|
|
return JT_ARCH_MAGE_RIDING;
|
|
}
|
|
if (job == JT_ELEMENTAL_MASTER) {
|
|
return JT_ELEMENTAL_MASTER_RIDING;
|
|
}
|
|
if (job == JT_CARDINAL) {
|
|
return JT_CARDINAL_RIDING;
|
|
}
|
|
if (job == JT_INQUISITOR) {
|
|
return JT_INQUISITOR_RIDING;
|
|
}
|
|
if (job == JT_SKY_EMPEROR || job == JT_SKY_EMPEROR2) {
|
|
return JT_SKY_EMPEROR_RIDING;
|
|
}
|
|
if (job == JT_SOUL_ASCETIC) {
|
|
return JT_SOUL_ASCETIC_RIDING;
|
|
}
|
|
if (job == JT_SHINKIRO) {
|
|
return JT_SHINKIRO_RIDING;
|
|
}
|
|
if (job == JT_SHIRANUI) {
|
|
return JT_SHIRANUI_RIDING;
|
|
}
|
|
if (job == JT_NIGHT_WATCH) {
|
|
return JT_NIGHT_WATCH_RIDING;
|
|
}
|
|
if (job == JT_HYPER_NOVICE) {
|
|
return JT_HYPER_NOVICE_RIDING;
|
|
}
|
|
if (job == JT_SPIRIT_HANDLER) {
|
|
return JT_SPIRIT_HANDLER_RIDING;
|
|
}
|
|
if (job == JT_DRUID || job == JT_DRUID_B) {
|
|
return JT_DRUID_RIDING;
|
|
}
|
|
if (job == JT_KARNOS || job == JT_KARNOS_B) {
|
|
return JT_KARNOS_RIDING;
|
|
}
|
|
if (job == JT_ALITEA) {
|
|
return JT_ALITEA_RIDING;
|
|
}
|
|
if (job == JT_WEREWOLF || job == JT_WERERAPTOR) {
|
|
return JT_DRUID_RIDING;
|
|
}
|
|
|
|
return job;
|
|
}
|