Batch #1625 by eAthena: 0 byte-identical, 1 confirmed by peer review. - fn_23811 CSession::GetPetHungryStateString: logic confirmed by peer review Reviewed-by: ragnarok-clanker
119 lines
2.5 KiB
C++
119 lines
2.5 KiB
C++
#include "Client/Session.h"
|
|
|
|
#include <cstring>
|
|
|
|
// OFFSET: 0x00E0ADC0
|
|
// FUNCTION: fn_23806
|
|
int CSession::GetPetActionNumber(int hungerLevel, int friendlyLevel, int action) {
|
|
int number = this->m_petActionTable[hungerLevel][friendlyLevel][action];
|
|
if (number == -1) {
|
|
return -1;
|
|
}
|
|
|
|
return number * 10 + 2;
|
|
}
|
|
|
|
// OFFSET: 0x00E0AEB0
|
|
// FUNCTION: fn_23808
|
|
int CSession::GetPetFriendlyState(int friendly) {
|
|
if (friendly <= 100) {
|
|
return 0;
|
|
}
|
|
if (friendly <= 250) {
|
|
return 1;
|
|
}
|
|
if (friendly <= 750) {
|
|
return 2;
|
|
}
|
|
if (friendly <= 900) {
|
|
return 3;
|
|
}
|
|
return 4;
|
|
}
|
|
|
|
// OFFSET: 0x00E0AF00
|
|
// FUNCTION: fn_23809
|
|
void CSession::GetPetFriendlyStateString(int friendly, char* buffer) {
|
|
if (friendly >= 0) {
|
|
if (friendly <= 100) {
|
|
std::strcpy(buffer, "서먹서먹함");
|
|
return;
|
|
}
|
|
if (friendly <= 250) {
|
|
std::strcpy(buffer, "어색함");
|
|
return;
|
|
}
|
|
if (friendly <= 750) {
|
|
std::strcpy(buffer, "보통");
|
|
return;
|
|
}
|
|
if (friendly <= 900) {
|
|
std::strcpy(buffer, "친함");
|
|
return;
|
|
}
|
|
if (friendly <= 1000) {
|
|
std::strcpy(buffer, "절친함");
|
|
return;
|
|
}
|
|
}
|
|
|
|
std::strcpy(buffer, "저는 모릅니다아아아.");
|
|
}
|
|
|
|
// OFFSET: 0x00E0AFF0
|
|
// FUNCTION: fn_23810
|
|
int CSession::GetPetHungryState(int hunger) {
|
|
if (hunger >= 91 && hunger <= 100) {
|
|
return 4;
|
|
}
|
|
if (hunger >= 76 && hunger <= 90) {
|
|
return 3;
|
|
}
|
|
if (hunger >= 26 && hunger <= 75) {
|
|
return 2;
|
|
}
|
|
if (hunger >= 11 && hunger <= 25) {
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
// OFFSET: 0x00E0B040
|
|
// FUNCTION: fn_23811
|
|
void CSession::GetPetHungryStateString(int hunger, char* buffer) {
|
|
if (hunger >= 0) {
|
|
if (hunger <= 10) {
|
|
std::strcpy(buffer, "배고픔");
|
|
return;
|
|
}
|
|
if (hunger <= 25) {
|
|
std::strcpy(buffer, "출출함");
|
|
return;
|
|
}
|
|
if (hunger <= 75) {
|
|
std::strcpy(buffer, "보통");
|
|
return;
|
|
}
|
|
if (hunger <= 90) {
|
|
std::strcpy(buffer, "배부름");
|
|
return;
|
|
}
|
|
if (hunger <= 100) {
|
|
std::strcpy(buffer, "아주 배부름");
|
|
return;
|
|
}
|
|
}
|
|
|
|
const char unknown[] = {'\xB8', '\xF4', '\xB6', '\xF3', '\xBF', '\xE4', '.', '\0'};
|
|
std::memcpy(buffer, unknown, sizeof(unknown));
|
|
}
|
|
|
|
// OFFSET: 0x00E12830
|
|
// FUNCTION: fn_23817
|
|
int CSession::GetPetEmotionNumber(int job, int action, int hungerLevel) {
|
|
if (g_session.unknown_0E98 != g_session.unknown_5558) {
|
|
g_session.unknown_0E98 = g_session.unknown_5558;
|
|
}
|
|
|
|
return g_session.unknown_0E98 + ((job * 10 + action) * 10 + hungerLevel) * 10;
|
|
}
|