feat(object): add initial structure for basic client object classes

This commit is contained in:
fallenoak 2026-01-08 15:56:39 -06:00
parent 766d849d79
commit 267890cafe
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D
33 changed files with 305 additions and 21 deletions

View File

@ -7,7 +7,7 @@
#include "glue/CGlueLoading.hpp" #include "glue/CGlueLoading.hpp"
#include "model/CM2Shared.hpp" #include "model/CM2Shared.hpp"
#include "net/Connection.hpp" #include "net/Connection.hpp"
#include "object/client/Player_C.hpp" #include "object/client/CGPlayer_C.hpp"
#include "ui/simple/CSimpleModelFFX.hpp" #include "ui/simple/CSimpleModelFFX.hpp"
#include "util/Random.hpp" #include "util/Random.hpp"
#include <tempest/Random.hpp> #include <tempest/Random.hpp>

View File

@ -4,7 +4,7 @@
#include "db/Db.hpp" #include "db/Db.hpp"
#include "glue/CCharacterCreation.hpp" #include "glue/CCharacterCreation.hpp"
#include "net/Connection.hpp" #include "net/Connection.hpp"
#include "object/client/Unit_C.hpp" #include "object/client/CGUnit_C.hpp"
#include "ui/FrameScript.hpp" #include "ui/FrameScript.hpp"
#include "ui/Types.hpp" #include "ui/Types.hpp"
#include "ui/game/CGLookingForGroup.hpp" #include "ui/game/CGLookingForGroup.hpp"

View File

@ -1,7 +1,7 @@
#include "glue/CCharacterSelectionScript.hpp" #include "glue/CCharacterSelectionScript.hpp"
#include "db/Db.hpp" #include "db/Db.hpp"
#include "glue/CCharacterSelection.hpp" #include "glue/CCharacterSelection.hpp"
#include "object/client/Unit_C.hpp" #include "object/client/CGUnit_C.hpp"
#include "ui/Types.hpp" #include "ui/Types.hpp"
#include "ui/simple/CSimpleModelFFX.hpp" #include "ui/simple/CSimpleModelFFX.hpp"
#include "util/Lua.hpp" #include "util/Lua.hpp"

View File

@ -2,7 +2,7 @@
#include "component/CCharacterComponent.hpp" #include "component/CCharacterComponent.hpp"
#include "db/Db.hpp" #include "db/Db.hpp"
#include "glue/CCharacterSelection.hpp" #include "glue/CCharacterSelection.hpp"
#include "object/client/Player_C.hpp" #include "object/client/CGPlayer_C.hpp"
#include "ui/simple/CSimpleModelFFX.hpp" #include "ui/simple/CSimpleModelFFX.hpp"
CharacterSelectionDisplay::~CharacterSelectionDisplay() { CharacterSelectionDisplay::~CharacterSelectionDisplay() {

View File

@ -0,0 +1,6 @@
#include "object/client/CGContainer.hpp"
#include "object/client/CGItem.hpp"
uint32_t CGContainer::TotalFieldsSaved() {
return CGItem::TotalFieldsSaved() + 72;
}

View File

@ -0,0 +1,16 @@
#ifndef OBJECT_CLIENT_CG_CONTAINER_HPP
#define OBJECT_CLIENT_CG_CONTAINER_HPP
#include <cstdint>
struct CGContainerData {
// TODO
};
class CGContainer {
public:
// Public static functions
static uint32_t TotalFieldsSaved();
};
#endif

View File

@ -0,0 +1,12 @@
#ifndef OBJECT_CLIENT_CG_CONTAINER_C_HPP
#define OBJECT_CLIENT_CG_CONTAINER_C_HPP
#include "object/client/CGContainer.hpp"
#include "object/client/CGItem_C.hpp"
class CGContainer_C : public CGItem_C, public CGContainer {
public:
// TODO
};
#endif

View File

@ -0,0 +1,6 @@
#include "object/client/CGCorpse.hpp"
#include "object/client/CGObject.hpp"
uint32_t CGCorpse::TotalFieldsSaved() {
return CGObject::TotalFieldsSaved() + 3;
}

View File

@ -0,0 +1,16 @@
#ifndef OBJECT_CLIENT_CG_CORPSE_HPP
#define OBJECT_CLIENT_CG_CORPSE_HPP
#include <cstdint>
struct CGCorpseData {
// TODO
};
class CGCorpse {
public:
// Public static functions
static uint32_t TotalFieldsSaved();
};
#endif

View File

@ -0,0 +1,12 @@
#ifndef OBJECT_CLIENT_CG_CORPSE_C_HPP
#define OBJECT_CLIENT_CG_CORPSE_C_HPP
#include "object/client/CGCorpse.hpp"
#include "object/client/CGObject_C.hpp"
class CGCorpse_C : public CGObject_C, public CGCorpse {
public:
// TODO
};
#endif

View File

@ -0,0 +1,6 @@
#include "object/client/CGDynamicObject.hpp"
#include "object/client/CGObject.hpp"
uint32_t CGDynamicObject::TotalFieldsSaved() {
return CGObject::TotalFieldsSaved();
}

View File

@ -0,0 +1,16 @@
#ifndef OBJECT_CLIENT_CG_DYNAMIC_OBJECT_HPP
#define OBJECT_CLIENT_CG_DYNAMIC_OBJECT_HPP
#include <cstdint>
struct CGDynamicObjectData {
// TODO
};
class CGDynamicObject {
public:
// Public static functions
static uint32_t TotalFieldsSaved();
};
#endif

View File

@ -0,0 +1,12 @@
#ifndef OBJECT_CLIENT_CG_DYNAMIC_OBJECT_C_HPP
#define OBJECT_CLIENT_CG_DYNAMIC_OBJECT_C_HPP
#include "object/client/CGDynamicObject.hpp"
#include "object/client/CGObject_C.hpp"
class CGDynamicObject_C : public CGObject_C, public CGDynamicObject {
public:
// TODO
};
#endif

View File

@ -0,0 +1,6 @@
#include "object/client/CGGameObject.hpp"
#include "object/client/CGObject.hpp"
uint32_t CGGameObject::TotalFieldsSaved() {
return CGObject::TotalFieldsSaved() + 4;
}

View File

@ -0,0 +1,16 @@
#ifndef OBJECT_CLIENT_CG_GAME_OBJECT_HPP
#define OBJECT_CLIENT_CG_GAME_OBJECT_HPP
#include <cstdint>
struct CGGameObjectData {
// TODO
};
class CGGameObject {
public:
// Public static functions
static uint32_t TotalFieldsSaved();
};
#endif

View File

@ -0,0 +1,12 @@
#ifndef OBJECT_CLIENT_CG_GAME_OBJECT_C_HPP
#define OBJECT_CLIENT_CG_GAME_OBJECT_C_HPP
#include "object/client/CGGameObject.hpp"
#include "object/client/CGObject_C.hpp"
class CGGameObject_C : public CGObject_C, public CGGameObject {
public:
// TODO
};
#endif

View File

@ -0,0 +1,6 @@
#include "object/client/CGItem.hpp"
#include "object/client/CGObject.hpp"
uint32_t CGItem::TotalFieldsSaved() {
return CGObject::TotalFieldsSaved() + 47;
}

View File

@ -0,0 +1,16 @@
#ifndef OBJECT_CLIENT_CG_ITEM_HPP
#define OBJECT_CLIENT_CG_ITEM_HPP
#include <cstdint>
struct CGItemData {
// TODO
};
class CGItem {
public:
// Public static functions
static uint32_t TotalFieldsSaved();
};
#endif

View File

@ -0,0 +1,12 @@
#ifndef OBJECT_CLIENT_CG_ITEM_C_HPP
#define OBJECT_CLIENT_CG_ITEM_C_HPP
#include "object/client/CGObject_C.hpp"
#include "object/client/CGItem.hpp"
class CGItem_C : public CGObject_C, public CGItem {
public:
// TODO
};
#endif

View File

@ -0,0 +1,5 @@
#include "object/client/CGObject.hpp"
uint32_t CGObject::TotalFieldsSaved() {
return 3;
}

View File

@ -0,0 +1,16 @@
#ifndef OBJECT_CLIENT_CG_OBJECT_HPP
#define OBJECT_CLIENT_CG_OBJECT_HPP
#include <cstdint>
struct CGObjectData {
// TODO
};
class CGObject {
public:
// Public static functions
static uint32_t TotalFieldsSaved();
};
#endif

View File

@ -0,0 +1,13 @@
#ifndef OBJECT_CLIENT_CG_OBJECT_C_HPP
#define OBJECT_CLIENT_CG_OBJECT_C_HPP
#include "object/client/CGObject.hpp"
#include "util/CHashKeyGUID.hpp"
#include <storm/Hash.hpp>
class CGObject_C : public CGObject, public TSHashObject<CGObject_C, CHashKeyGUID> {
public:
// TODO
};
#endif

View File

@ -0,0 +1,6 @@
#include "object/client/CGPlayer.hpp"
#include "object/client/CGUnit.hpp"
uint32_t CGPlayer::TotalFieldsSaved() {
return CGUnit::TotalFieldsSaved() + 173;
}

View File

@ -0,0 +1,16 @@
#ifndef OBJECT_CLIENT_CG_PLAYER_HPP
#define OBJECT_CLIENT_CG_PLAYER_HPP
#include <cstdint>
struct CGPlayerData {
// TODO
};
class CGPlayer {
public:
// Public static functions
static uint32_t TotalFieldsSaved();
};
#endif

View File

@ -1,4 +1,4 @@
#include "object/client/Player_C.hpp" #include "object/client/CGPlayer_C.hpp"
#include "db/Db.hpp" #include "db/Db.hpp"
#include "object/Types.hpp" #include "object/Types.hpp"
#include <storm/Error.hpp> #include <storm/Error.hpp>

View File

@ -0,0 +1,19 @@
#ifndef OBJECT_CLIENT_CG_PLAYER_C_HPP
#define OBJECT_CLIENT_CG_PLAYER_C_HPP
#include "object/client/CGPlayer.hpp"
#include "object/client/CGUnit_C.hpp"
#include <cstdint>
class CreatureModelDataRec;
class CGPlayer_C : public CGUnit_C, public CGPlayer {
public:
// TODO
};
uint32_t Player_C_GetDisplayId(uint32_t race, uint32_t sex);
const CreatureModelDataRec* Player_C_GetModelName(uint32_t race, uint32_t sex);
#endif

View File

@ -0,0 +1,6 @@
#include "object/client/CGUnit.hpp"
#include "object/client/CGObject.hpp"
uint32_t CGUnit::TotalFieldsSaved() {
return CGObject::TotalFieldsSaved() + 123;
}

View File

@ -0,0 +1,16 @@
#ifndef OBJECT_CLIENT_CG_UNIT_HPP
#define OBJECT_CLIENT_CG_UNIT_HPP
#include <cstdint>
struct CGUnitData {
// TODO
};
class CGUnit {
public:
// Public static functions
static uint32_t TotalFieldsSaved();
};
#endif

View File

@ -1,4 +1,4 @@
#include "object/client/Unit_C.hpp" #include "object/client/CGUnit_C.hpp"
#include "db/Db.hpp" #include "db/Db.hpp"
const char* CGUnit_C::GetDisplayClassNameFromRecord(const ChrClassesRec* classRec, UNIT_SEX sex, UNIT_SEX* displaySex) { const char* CGUnit_C::GetDisplayClassNameFromRecord(const ChrClassesRec* classRec, UNIT_SEX sex, UNIT_SEX* displaySex) {

View File

@ -1,13 +1,16 @@
#ifndef OBJECT_CLIENT_UNIT_C_HPP #ifndef OBJECT_CLIENT_CG_UNIT_C_HPP
#define OBJECT_CLIENT_UNIT_C_HPP #define OBJECT_CLIENT_CG_UNIT_C_HPP
#include "object/client/CGObject_C.hpp"
#include "object/client/CGUnit.hpp"
#include "object/Types.hpp" #include "object/Types.hpp"
class ChrClassesRec; class ChrClassesRec;
class ChrRacesRec; class ChrRacesRec;
class CGUnit_C { class CGUnit_C : public CGObject_C, public CGUnit {
public: public:
// Public static functions
static const char* GetDisplayClassNameFromRecord(const ChrClassesRec* classRec, UNIT_SEX sex, UNIT_SEX* displaySex); static const char* GetDisplayClassNameFromRecord(const ChrClassesRec* classRec, UNIT_SEX sex, UNIT_SEX* displaySex);
static const char* GetDisplayRaceNameFromRecord(const ChrRacesRec* raceRec, UNIT_SEX sex, UNIT_SEX* displaySex); static const char* GetDisplayRaceNameFromRecord(const ChrRacesRec* raceRec, UNIT_SEX sex, UNIT_SEX* displaySex);
}; };

View File

@ -1,12 +0,0 @@
#ifndef OBJECT_CLIENT_PLAYER_C_HPP
#define OBJECT_CLIENT_PLAYER_C_HPP
#include <cstdint>
class CreatureModelDataRec;
uint32_t Player_C_GetDisplayId(uint32_t race, uint32_t sex);
const CreatureModelDataRec* Player_C_GetModelName(uint32_t race, uint32_t sex);
#endif

View File

@ -0,0 +1,9 @@
#include "util/CHashKeyGUID.hpp"
CHashKeyGUID::CHashKeyGUID() {
this->m_guid = 0;
}
CHashKeyGUID::CHashKeyGUID(uint64_t guid) {
this->m_guid = guid;
}

17
src/util/CHashKeyGUID.hpp Normal file
View File

@ -0,0 +1,17 @@
#ifndef UTIL_C_HASH_KEY_GUID_HPP
#define UTIL_C_HASH_KEY_GUID_HPP
#include <cstdint>
class CHashKeyGUID {
public:
// Public member functions
CHashKeyGUID();
CHashKeyGUID(uint64_t guid);
private:
// Private member variables
uint64_t m_guid;
};
#endif