feat(glue): add realm and character handling (#7)

* fix(build): make project compilable

* feat(glue): update Character Selection screen to support switching

* fix(ui): fix CSimpleFontString::GetHeight() to use proper method

* feat(db): add static database classes from whoa-autocode

* feat(ui): use class and area IDs for Character Selection

* chore(db): update ItemRandomPropertiesRec

* feat(glue): update CCharacterSelection methods

* chore(db): uncomment DB records

* feat(glue): implement character deletion

* feat(gx): update supported text tags in GxuDetermineQuotedCode

* fix(ui): fix CSimpleFontString to use the FixedColor flag only if the string does not contain color tags

* feat(net): implement GrunLogin::LogOff

* feat(net): implement NetClient::Disconnect

* feat(login): implement trimming of realm name in LoginResponse::HandleRealmData

* feat(net): implement proper disconnection from login and realm servers

* feat(net): implement PING/PONG messages

* feat(net): add NetClient::Destroy method

* feat(net): implement ClientServices::GetRealmList (second request of Realm List)

* feat(glue): implement CGlueMgr::PollRealmList

* feat(glue): implement CGlueMgr::PollCreateCharacter

* chore(glue): add skeleton of CCharacterComponent class

* fix(build): fix build using latest features

* fix(glue): kill gotos in CGlueMgr::NetDisconnectHandler

* fix(build): include SDL3

---------

Co-authored-by: superp00t <superp00t@tutanota.com>
This commit is contained in:
VDm 2025-04-17 01:32:37 +04:00 committed by GitHub
parent 50e37d16bc
commit 957a4c7e2f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
633 changed files with 1729 additions and 227 deletions

0
src/db/StaticDb.cpp Executable file → Normal file
View file

0
src/db/StaticDb.hpp Executable file → Normal file
View file

0
src/db/rec/Achievement_CategoryRec.cpp Executable file → Normal file
View file

0
src/db/rec/Achievement_CategoryRec.hpp Executable file → Normal file
View file

0
src/db/rec/Achievement_CriteriaRec.cpp Executable file → Normal file
View file

0
src/db/rec/Achievement_CriteriaRec.hpp Executable file → Normal file
View file

0
src/db/rec/AnimKitBoneSetAliasRec.cpp Executable file → Normal file
View file

0
src/db/rec/AnimKitBoneSetAliasRec.hpp Executable file → Normal file
View file

0
src/db/rec/AnimKitBoneSetRec.cpp Executable file → Normal file
View file

0
src/db/rec/AnimKitBoneSetRec.hpp Executable file → Normal file
View file

0
src/db/rec/AnimKitConfigBoneSetRec.cpp Executable file → Normal file
View file

0
src/db/rec/AnimKitConfigBoneSetRec.hpp Executable file → Normal file
View file

0
src/db/rec/AnimKitConfigRec.cpp Executable file → Normal file
View file

0
src/db/rec/AnimKitConfigRec.hpp Executable file → Normal file
View file

0
src/db/rec/AnimKitPriorityRec.cpp Executable file → Normal file
View file

0
src/db/rec/AnimKitPriorityRec.hpp Executable file → Normal file
View file

0
src/db/rec/AnimKitRec.cpp Executable file → Normal file
View file

0
src/db/rec/AnimKitRec.hpp Executable file → Normal file
View file

0
src/db/rec/AnimKitSegmentRec.cpp Executable file → Normal file
View file

0
src/db/rec/AnimKitSegmentRec.hpp Executable file → Normal file
View file

0
src/db/rec/AnimReplacementRec.cpp Executable file → Normal file
View file

0
src/db/rec/AnimReplacementRec.hpp Executable file → Normal file
View file

0
src/db/rec/AnimReplacementSetRec.cpp Executable file → Normal file
View file

0
src/db/rec/AnimReplacementSetRec.hpp Executable file → Normal file
View file

0
src/db/rec/AnimationDataRec.cpp Executable file → Normal file
View file

0
src/db/rec/AnimationDataRec.hpp Executable file → Normal file
View file

0
src/db/rec/AreaAssignmentRec.cpp Executable file → Normal file
View file

0
src/db/rec/AreaAssignmentRec.hpp Executable file → Normal file
View file

0
src/db/rec/AreaGroupRec.cpp Executable file → Normal file
View file

0
src/db/rec/AreaGroupRec.hpp Executable file → Normal file
View file

0
src/db/rec/AreaPOIRec.cpp Executable file → Normal file
View file

0
src/db/rec/AreaPOIRec.hpp Executable file → Normal file
View file

0
src/db/rec/AreaTableRec.cpp Executable file → Normal file
View file

0
src/db/rec/AreaTableRec.hpp Executable file → Normal file
View file

0
src/db/rec/AreaTriggerRec.cpp Executable file → Normal file
View file

0
src/db/rec/AreaTriggerRec.hpp Executable file → Normal file
View file

0
src/db/rec/ArmorLocationRec.cpp Executable file → Normal file
View file

0
src/db/rec/ArmorLocationRec.hpp Executable file → Normal file
View file

0
src/db/rec/AttackAnimKitsRec.cpp Executable file → Normal file
View file

0
src/db/rec/AttackAnimKitsRec.hpp Executable file → Normal file
View file

0
src/db/rec/AttackAnimTypesRec.cpp Executable file → Normal file
View file

0
src/db/rec/AttackAnimTypesRec.hpp Executable file → Normal file
View file

0
src/db/rec/AuctionHouseRec.cpp Executable file → Normal file
View file

0
src/db/rec/AuctionHouseRec.hpp Executable file → Normal file
View file

0
src/db/rec/BankBagSlotPricesRec.cpp Executable file → Normal file
View file

0
src/db/rec/BankBagSlotPricesRec.hpp Executable file → Normal file
View file

View file

@ -0,0 +1,48 @@
// DO NOT EDIT: generated by whoa-autocode
#include "db/rec/BannedAddOnsRec.hpp"
#include "db/Locale.hpp"
#include "util/SFile.hpp"
const char* BannedAddOnsRec::GetFilename() {
return "DBFilesClient\\BannedAddOns.dbc";
}
uint32_t BannedAddOnsRec::GetNumColumns() {
return 11;
}
uint32_t BannedAddOnsRec::GetRowSize() {
return 44;
}
bool BannedAddOnsRec::NeedIDAssigned() {
return false;
}
int32_t BannedAddOnsRec::GetID() {
return this->m_ID;
}
void BannedAddOnsRec::SetID(int32_t id) {
this->m_ID = id;
}
bool BannedAddOnsRec::Read(SFile* f, const char* stringBuffer) {
if (
!SFile::Read(f, &this->m_ID, sizeof(this->m_ID), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_nameMd5[0], sizeof(m_nameMd5[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_nameMd5[1], sizeof(m_nameMd5[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_nameMd5[2], sizeof(m_nameMd5[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_nameMd5[3], sizeof(m_nameMd5[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_versionMd5[0], sizeof(m_versionMd5[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_versionMd5[1], sizeof(m_versionMd5[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_versionMd5[2], sizeof(m_versionMd5[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_versionMd5[3], sizeof(m_versionMd5[0]), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_lastModified, sizeof(this->m_lastModified), nullptr, nullptr, nullptr)
|| !SFile::Read(f, &this->m_flags, sizeof(this->m_flags), nullptr, nullptr, nullptr)
) {
return false;
}
return true;
}

View file

@ -0,0 +1,26 @@
// DO NOT EDIT: generated by whoa-autocode
#ifndef DB_REC_BANNED_ADD_ONS_REC_HPP
#define DB_REC_BANNED_ADD_ONS_REC_HPP
#include <cstdint>
class SFile;
class BannedAddOnsRec {
public:
int32_t m_ID;
int32_t m_nameMd5[4];
int32_t m_versionMd5[4];
int32_t m_lastModified;
int32_t m_flags;
static const char* GetFilename();
static uint32_t GetNumColumns();
static uint32_t GetRowSize();
static bool NeedIDAssigned();
int32_t GetID();
void SetID(int32_t id);
bool Read(SFile* f, const char* stringBuffer);
};
#endif

0
src/db/rec/BarberShopStyleRec.cpp Executable file → Normal file
View file

0
src/db/rec/BarberShopStyleRec.hpp Executable file → Normal file
View file

0
src/db/rec/BattlemasterListRec.cpp Executable file → Normal file
View file

0
src/db/rec/BattlemasterListRec.hpp Executable file → Normal file
View file

0
src/db/rec/CameraModeRec.cpp Executable file → Normal file
View file

0
src/db/rec/CameraModeRec.hpp Executable file → Normal file
View file

0
src/db/rec/CameraShakesRec.cpp Executable file → Normal file
View file

0
src/db/rec/CameraShakesRec.hpp Executable file → Normal file
View file

0
src/db/rec/CharBaseInfoRec.cpp Executable file → Normal file
View file

0
src/db/rec/CharBaseInfoRec.hpp Executable file → Normal file
View file

0
src/db/rec/CharHairGeosetsRec.cpp Executable file → Normal file
View file

0
src/db/rec/CharHairGeosetsRec.hpp Executable file → Normal file
View file

0
src/db/rec/CharHairTexturesRec.cpp Executable file → Normal file
View file

0
src/db/rec/CharHairTexturesRec.hpp Executable file → Normal file
View file

0
src/db/rec/CharSectionsRec.cpp Executable file → Normal file
View file

0
src/db/rec/CharSectionsRec.hpp Executable file → Normal file
View file

0
src/db/rec/CharStartOutfitRec.cpp Executable file → Normal file
View file

0
src/db/rec/CharStartOutfitRec.hpp Executable file → Normal file
View file

0
src/db/rec/CharTitlesRec.cpp Executable file → Normal file
View file

0
src/db/rec/CharTitlesRec.hpp Executable file → Normal file
View file

0
src/db/rec/CharVariationsRec.cpp Executable file → Normal file
View file

0
src/db/rec/CharVariationsRec.hpp Executable file → Normal file
View file

0
src/db/rec/CharacterFacialHairStylesRec.cpp Executable file → Normal file
View file

0
src/db/rec/CharacterFacialHairStylesRec.hpp Executable file → Normal file
View file

0
src/db/rec/ChatChannelsRec.cpp Executable file → Normal file
View file

0
src/db/rec/ChatChannelsRec.hpp Executable file → Normal file
View file

0
src/db/rec/ChatProfanityRec.cpp Executable file → Normal file
View file

0
src/db/rec/ChatProfanityRec.hpp Executable file → Normal file
View file

0
src/db/rec/ChrClassesRec.cpp Executable file → Normal file
View file

0
src/db/rec/ChrClassesRec.hpp Executable file → Normal file
View file

0
src/db/rec/CinematicCameraRec.cpp Executable file → Normal file
View file

0
src/db/rec/CinematicCameraRec.hpp Executable file → Normal file
View file

0
src/db/rec/CinematicSequencesRec.cpp Executable file → Normal file
View file

0
src/db/rec/CinematicSequencesRec.hpp Executable file → Normal file
View file

0
src/db/rec/CreatureDisplayInfoExtraRec.cpp Executable file → Normal file
View file

0
src/db/rec/CreatureDisplayInfoExtraRec.hpp Executable file → Normal file
View file

0
src/db/rec/CreatureDisplayInfoRec.cpp Executable file → Normal file
View file

0
src/db/rec/CreatureDisplayInfoRec.hpp Executable file → Normal file
View file

0
src/db/rec/CreatureFamilyRec.cpp Executable file → Normal file
View file

0
src/db/rec/CreatureFamilyRec.hpp Executable file → Normal file
View file

0
src/db/rec/CreatureModelDataRec.cpp Executable file → Normal file
View file

0
src/db/rec/CreatureModelDataRec.hpp Executable file → Normal file
View file

0
src/db/rec/CreatureMovementInfoRec.cpp Executable file → Normal file
View file

0
src/db/rec/CreatureMovementInfoRec.hpp Executable file → Normal file
View file

0
src/db/rec/CreatureSoundDataRec.cpp Executable file → Normal file
View file

0
src/db/rec/CreatureSoundDataRec.hpp Executable file → Normal file
View file

0
src/db/rec/CreatureSpellDataRec.cpp Executable file → Normal file
View file

0
src/db/rec/CreatureSpellDataRec.hpp Executable file → Normal file
View file

0
src/db/rec/CreatureTypeRec.cpp Executable file → Normal file
View file

0
src/db/rec/CreatureTypeRec.hpp Executable file → Normal file
View file

0
src/db/rec/CurrencyCategoryRec.cpp Executable file → Normal file
View file

0
src/db/rec/CurrencyCategoryRec.hpp Executable file → Normal file
View file

Some files were not shown because too many files have changed in this diff Show more