rodecomp/Source/Contents/PetStatus.cpp
ragnarok-clanker d7bd31b4a6 Decompile 5 functions in Source/Contents/PetStatus.cpp, Source/Client/Session.h
Batch #1190 by eAthena: 0 byte-identical, 5 confirmed by peer review.

- fn_23806 CSession::GetPetActionNumber: logic confirmed by peer review
- fn_23808 CSession::GetPetFriendlyState: logic confirmed by peer review
- fn_23809 CSession::GetPetFriendlyStateString: logic confirmed by peer review
- fn_23810 CSession::GetPetHungryState: logic confirmed by peer review
- fn_23817 CSession::GetPetEmotionNumber: logic confirmed by peer review

Reviewed-by: ragnarok-clanker
Adds to the build: Source/Contents/PetStatus.cpp
2026-10-27 21:08:12 +00:00

89 lines
1.8 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: 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;
}