mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-04-09 23:06:47 +03:00
Compare commits
3 Commits
152cb7dea4
...
4e7a4fb87a
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4e7a4fb87a | ||
![]() |
832c64ba80 | ||
![]() |
9b7ca5cf6a |
@ -345,10 +345,10 @@ void StaticDBLoadAll(void (*loadFn)(WowClientDB_Base*, const char*, int32_t)) {
|
||||
loadFn(&g_chrRacesDB, __FILE__, __LINE__);
|
||||
//loadFn(&g_cinematicCameraDB, __FILE__, __LINE__);
|
||||
//loadFn(&g_cinematicSequencesDB, __FILE__, __LINE__);
|
||||
//loadFn(&g_creatureDisplayInfoDB, __FILE__, __LINE__);
|
||||
loadFn(&g_creatureDisplayInfoDB, __FILE__, __LINE__);
|
||||
//loadFn(&g_creatureDisplayInfoExtraDB, __FILE__, __LINE__);
|
||||
//loadFn(&g_creatureFamilyDB, __FILE__, __LINE__);
|
||||
//loadFn(&g_creatureModelDataDB, __FILE__, __LINE__);
|
||||
loadFn(&g_creatureModelDataDB, __FILE__, __LINE__);
|
||||
//loadFn(&g_creatureMovementInfoDB, __FILE__, __LINE__);
|
||||
//loadFn(&g_creatureSoundDataDB, __FILE__, __LINE__);
|
||||
//loadFn(&g_creatureSpellDataDB, __FILE__, __LINE__);
|
||||
|
@ -27,45 +27,45 @@ void ItemRandomPropertiesRec::SetID(int32_t id) {
|
||||
}
|
||||
|
||||
bool ItemRandomPropertiesRec::Read(SFile* f, const char* stringBuffer) {
|
||||
uint32_t internalNameOfs;
|
||||
uint32_t nameOfs[16];
|
||||
uint32_t nameMask;
|
||||
uint32_t nameOfs;
|
||||
uint32_t name_langOfs[16];
|
||||
uint32_t name_langMask;
|
||||
|
||||
if (
|
||||
!SFile::Read(f, &this->m_ID, sizeof(this->m_ID), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &internalNameOfs, sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs, sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &this->m_enchantment[0], sizeof(m_enchantment[0]), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &this->m_enchantment[1], sizeof(m_enchantment[0]), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &this->m_enchantment[2], sizeof(m_enchantment[0]), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &this->m_enchantment[3], sizeof(m_enchantment[0]), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &this->m_enchantment[4], sizeof(m_enchantment[0]), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[0], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[1], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[2], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[3], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[4], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[5], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[6], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[7], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[8], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[9], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[10], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[11], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[12], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[13], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[14], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameOfs[15], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &nameMask, sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[0], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[1], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[2], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[3], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[4], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[5], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[6], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[7], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[8], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[9], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[10], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[11], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[12], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[13], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[14], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langOfs[15], sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
|| !SFile::Read(f, &name_langMask, sizeof(uint32_t), nullptr, nullptr, nullptr)
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (stringBuffer) {
|
||||
this->m_internalName = &stringBuffer[internalNameOfs];
|
||||
this->m_name = &stringBuffer[nameOfs[CURRENT_LANGUAGE]];
|
||||
this->m_name = &stringBuffer[nameOfs];
|
||||
this->m_name_lang = &stringBuffer[name_langOfs[CURRENT_LANGUAGE]];
|
||||
} else {
|
||||
this->m_internalName = "";
|
||||
this->m_name = "";
|
||||
this->m_name_lang = "";
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -9,9 +9,9 @@ class SFile;
|
||||
class ItemRandomPropertiesRec {
|
||||
public:
|
||||
int32_t m_ID;
|
||||
const char* m_internalName;
|
||||
int32_t m_enchantment[5];
|
||||
const char* m_name;
|
||||
int32_t m_enchantment[5];
|
||||
const char* m_name_lang;
|
||||
|
||||
static const char* GetFilename();
|
||||
static uint32_t GetNumColumns();
|
||||
@ -22,4 +22,4 @@ class ItemRandomPropertiesRec {
|
||||
bool Read(SFile* f, const char* stringBuffer);
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
@ -1,10 +1,13 @@
|
||||
#include "glue/CCharacterSelection.hpp"
|
||||
#include "model/CM2Model.hpp"
|
||||
#include "model/CM2Shared.hpp"
|
||||
#include "ui/CSimpleModelFFX.hpp"
|
||||
#include "client/ClientServices.hpp"
|
||||
#include "client/Client.hpp"
|
||||
#include "console/CVar.hpp"
|
||||
#include "net/Connection.hpp"
|
||||
#include "clientobject/Player_C.hpp"
|
||||
#include "db/Db.hpp"
|
||||
|
||||
CSimpleModelFFX* CCharacterSelection::m_modelFrame = nullptr;
|
||||
uint32_t CCharacterSelection::m_characterCount = 0;
|
||||
@ -23,6 +26,11 @@ TSGrowableArray<CharacterSelectionDisplay> CCharacterSelection::s_characterList;
|
||||
int32_t CCharacterSelection::m_selectionIndex = 0;
|
||||
|
||||
|
||||
CharacterSelectionDisplay::CharacterSelectionDisplay()
|
||||
: m_characterModel(nullptr) {
|
||||
}
|
||||
|
||||
|
||||
void CCharacterSelection::RenderPrep() {
|
||||
// TODO
|
||||
}
|
||||
@ -59,11 +67,41 @@ void CCharacterSelection::EnumerateCharactersCallback(CHARACTER_INFO& info, void
|
||||
}
|
||||
|
||||
void CCharacterSelection::ShowCharacter() {
|
||||
auto index = CCharacterSelection::m_selectionIndex;
|
||||
if (index < 0 || index >= CCharacterSelection::GetNumCharacters()) {
|
||||
return;
|
||||
}
|
||||
// TODO
|
||||
|
||||
CCharacterSelection::m_charFacing = 0.0;
|
||||
|
||||
auto& character = CCharacterSelection::s_characterList[index];
|
||||
|
||||
if (character.m_characterModel) {
|
||||
// TODO
|
||||
return;
|
||||
}
|
||||
|
||||
auto rec = Player_C_GetModelName(character.m_characterInfo.raceID, character.m_characterInfo.sexID);
|
||||
STORM_ASSERT(rec);
|
||||
if (!rec->m_modelName) {
|
||||
// TODO
|
||||
return;
|
||||
}
|
||||
|
||||
auto scene = CCharacterSelection::m_modelFrame->GetScene();
|
||||
character.m_characterModel = scene->CreateModel(rec->m_modelName, 0);
|
||||
}
|
||||
|
||||
void CCharacterSelection::SetCharFacing(float facing) {
|
||||
// TODO
|
||||
if (!CCharacterSelection::m_characterCount || !CCharacterSelection::GetNumCharacters()) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto character = CCharacterSelection::s_characterList[CCharacterSelection::m_selectionIndex];
|
||||
if (character.m_characterModel) {
|
||||
character.m_characterModel->SetWorldTransform(C3Vector(), facing, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
void CCharacterSelection::ClearCharacterList() {
|
||||
@ -112,5 +150,5 @@ void CCharacterSelection::UpdateCharacterList() {
|
||||
}
|
||||
|
||||
uint32_t CCharacterSelection::GetNumCharacters() {
|
||||
return s_characterList.Count();
|
||||
return CCharacterSelection::s_characterList.Count();
|
||||
}
|
||||
|
@ -5,9 +5,13 @@
|
||||
#include "net/Types.hpp"
|
||||
|
||||
class CSimpleModelFFX;
|
||||
class CM2Model;
|
||||
|
||||
struct CharacterSelectionDisplay {
|
||||
CharacterSelectionDisplay();
|
||||
|
||||
CHARACTER_INFO m_characterInfo;
|
||||
CM2Model* m_characterModel;
|
||||
};
|
||||
|
||||
class CCharacterSelection {
|
||||
|
Loading…
Reference in New Issue
Block a user