Decompile 4 functions in Source/Contents/SpriteFrameSynchronization.cpp, Source/Contents/NpcLocationRadius.cpp, ...
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
This commit is contained in:
parent
7a88edb84c
commit
0bc20896db
5 changed files with 657 additions and 1 deletions
178
Source/Contents/SpriteJob.cpp
Normal file
178
Source/Contents/SpriteJob.cpp
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
#include "Client/Session.h"
|
||||
#include "Contents/Jobs/JobId.h"
|
||||
#include "Contents/Jobs/JobNames.h"
|
||||
|
||||
// OFFSET: 0x00E2EE70
|
||||
// FUNCTION: fn_24152
|
||||
int CSession::GetSpriteJob(int job, int costumeJob, bool spriteIndex) {
|
||||
switch (job) {
|
||||
case JT_MARRIED:
|
||||
case JT_SANTA:
|
||||
case JT_SUMMER:
|
||||
case JT_HANBOK:
|
||||
case JT_OKTOBERFEST:
|
||||
case JT_SUMMER2:
|
||||
return job;
|
||||
}
|
||||
|
||||
int mount;
|
||||
if (g_session.GetRidingJob(JobNames::BaseJob(job)) == job) {
|
||||
mount = 1;
|
||||
} else {
|
||||
switch (job) {
|
||||
case JT_CHICKEN:
|
||||
case JT_CHICKEN2:
|
||||
case JT_CHICKEN_H:
|
||||
case JT_CHICKEN2_H:
|
||||
case JT_CHICKEN_B:
|
||||
case JT_CHICKEN2_B:
|
||||
case JT_RUNE_CHICKEN:
|
||||
case JT_RUNE_CHICKEN_H:
|
||||
case JT_RUNE_CHICKEN_B:
|
||||
case JT_ROYAL_CHICKEN:
|
||||
case JT_ROYAL_CHICKEN_H:
|
||||
case JT_ROYAL_CHICKEN_B:
|
||||
case JT_WOLF_RANGER:
|
||||
case JT_WOLF_RANGER_H:
|
||||
case JT_WOLF_RANGER_B:
|
||||
case JT_WOLF_WINDHAWK:
|
||||
case JT_DRAGON_KNIGHT_CHICKEN:
|
||||
case JT_IMPERIAL_GUARD_CHICKEN:
|
||||
mount = 2;
|
||||
break;
|
||||
default:
|
||||
mount = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (costumeJob) {
|
||||
case JT_RUNE_KNIGHT_2ND:
|
||||
costumeJob = JT_RUNE_KNIGHT_H;
|
||||
break;
|
||||
case JT_MECHANIC_2ND:
|
||||
costumeJob = JT_MECHANIC_H;
|
||||
break;
|
||||
case JT_GUILLOTINE_CROSS_2ND:
|
||||
costumeJob = JT_GUILLOTINE_CROSS_H;
|
||||
break;
|
||||
case JT_WARLOCK_2ND:
|
||||
costumeJob = JT_WARLOCK_H;
|
||||
break;
|
||||
case JT_ARCHBISHOP_2ND:
|
||||
costumeJob = JT_ARCHBISHOP_H;
|
||||
break;
|
||||
case JT_RANGER_2ND:
|
||||
costumeJob = JT_RANGER_H;
|
||||
break;
|
||||
case JT_ROYAL_GUARD_2ND:
|
||||
costumeJob = JT_ROYAL_GUARD_H;
|
||||
break;
|
||||
case JT_GENETIC_2ND:
|
||||
costumeJob = JT_GENETIC_H;
|
||||
break;
|
||||
case JT_SHADOW_CHASER_2ND:
|
||||
costumeJob = JT_SHADOW_CHASER_H;
|
||||
break;
|
||||
case JT_SORCERER_2ND:
|
||||
costumeJob = JT_SORCERER_H;
|
||||
break;
|
||||
case JT_SURA_2ND:
|
||||
costumeJob = JT_SURA_H;
|
||||
break;
|
||||
case JT_MINSTREL_2ND:
|
||||
costumeJob = JT_MINSTREL_H;
|
||||
break;
|
||||
case JT_WANDERER_2ND:
|
||||
costumeJob = JT_WANDERER_H;
|
||||
break;
|
||||
}
|
||||
|
||||
if (mount == 1) {
|
||||
costumeJob = g_session.GetRidingJob(costumeJob);
|
||||
} else if (mount == 2) {
|
||||
switch (costumeJob) {
|
||||
case JT_KNIGHT:
|
||||
costumeJob = JT_CHICKEN;
|
||||
break;
|
||||
case JT_CRUSADER:
|
||||
costumeJob = JT_CHICKEN2;
|
||||
break;
|
||||
case JT_KNIGHT_H:
|
||||
costumeJob = JT_CHICKEN_H;
|
||||
break;
|
||||
case JT_CRUSADER_H:
|
||||
costumeJob = JT_CHICKEN2_H;
|
||||
break;
|
||||
case JT_KNIGHT_B:
|
||||
costumeJob = JT_CHICKEN_B;
|
||||
break;
|
||||
case JT_CRUSADER_B:
|
||||
costumeJob = JT_CHICKEN2_B;
|
||||
break;
|
||||
case JT_RUNE_KNIGHT:
|
||||
costumeJob = JT_RUNE_CHICKEN;
|
||||
break;
|
||||
case JT_RUNE_KNIGHT_H:
|
||||
costumeJob = JT_RUNE_CHICKEN_H;
|
||||
break;
|
||||
case JT_RUNE_KNIGHT_B:
|
||||
costumeJob = JT_RUNE_CHICKEN_B;
|
||||
break;
|
||||
case JT_DRAGON_KNIGHT:
|
||||
costumeJob = JT_DRAGON_KNIGHT_CHICKEN;
|
||||
break;
|
||||
case JT_ROYAL_GUARD:
|
||||
costumeJob = JT_ROYAL_CHICKEN;
|
||||
break;
|
||||
case JT_ROYAL_GUARD_H:
|
||||
costumeJob = JT_ROYAL_CHICKEN_H;
|
||||
break;
|
||||
case JT_ROYAL_GUARD_B:
|
||||
costumeJob = JT_ROYAL_CHICKEN_B;
|
||||
break;
|
||||
case JT_IMPERIAL_GUARD:
|
||||
costumeJob = JT_IMPERIAL_GUARD_CHICKEN;
|
||||
break;
|
||||
case JT_RANGER:
|
||||
costumeJob = JT_WOLF_RANGER;
|
||||
break;
|
||||
case JT_RANGER_H:
|
||||
costumeJob = JT_WOLF_RANGER_H;
|
||||
break;
|
||||
case JT_RANGER_B:
|
||||
costumeJob = JT_WOLF_RANGER_B;
|
||||
break;
|
||||
case JT_WINDHAWK:
|
||||
costumeJob = JT_WOLF_WINDHAWK;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if (job == JT_MADOGEAR || job == JT_MADOGEAR_H || job == JT_MADOGEAR_B || job == JT_MEISTER_MADOGEAR) {
|
||||
switch (costumeJob) {
|
||||
case JT_MECHANIC:
|
||||
costumeJob = JT_MADOGEAR;
|
||||
break;
|
||||
case JT_MECHANIC_H:
|
||||
costumeJob = JT_MADOGEAR_H;
|
||||
break;
|
||||
case JT_MECHANIC_B:
|
||||
costumeJob = JT_MADOGEAR_B;
|
||||
break;
|
||||
case JT_MEISTER:
|
||||
costumeJob = JT_MEISTER_MADOGEAR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (job == JT_WEREWOLF || job == JT_WERERAPTOR) {
|
||||
costumeJob = job;
|
||||
}
|
||||
}
|
||||
|
||||
if (spriteIndex == true && costumeJob > 3950) {
|
||||
return costumeJob - 3950;
|
||||
}
|
||||
|
||||
return costumeJob;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue