-
Notifications
You must be signed in to change notification settings - Fork 173
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: Assorted pet improvements (#1402)
* Assorted pet improvements * remove unecessary include * updates to address some feedback * fixed database code for testing * Removed reference member (for now) * Removed cmake flag
- Loading branch information
Showing
19 changed files
with
245 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
#ifndef __EPETABILITYTYPE__H__ | ||
#define __EPETABILITYTYPE__H__ | ||
|
||
#include <cstdint> | ||
|
||
enum class ePetAbilityType : uint32_t { | ||
Invalid, | ||
GoToObject, | ||
JumpOnObject, | ||
DigAtPosition | ||
}; | ||
|
||
#endif //!__EPETABILITYTYPE__H__ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
61 changes: 61 additions & 0 deletions
61
dDatabase/CDClientDatabase/CDClientTables/CDPetComponentTable.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
#include "CDPetComponentTable.h" | ||
|
||
namespace { | ||
// Default entries for fallback | ||
CDPetComponent defaultEntry{ | ||
.id = 0, | ||
UNUSED_ENTRY(.minTameUpdateTime = 60.0f,) | ||
UNUSED_ENTRY(.maxTameUpdateTime = 300.0f,) | ||
UNUSED_ENTRY(.percentTameChance = 101.0f,) | ||
UNUSED_ENTRY(.tameability = 100.0f,) | ||
UNUSED_ENTRY(.elementType = 1,) | ||
.walkSpeed = 2.5f, | ||
.runSpeed = 5.0f, | ||
.sprintSpeed = 10.0f, | ||
UNUSED_ENTRY(.idleTimeMin = 60.0f,) | ||
UNUSED_ENTRY(.idleTimeMax = 300.0f,) | ||
UNUSED_ENTRY(.petForm = 0,) | ||
.imaginationDrainRate = 60.0f, | ||
UNUSED_ENTRY(.AudioMetaEventSet = "",) | ||
UNUSED_ENTRY(.buffIDs = "",) | ||
}; | ||
} | ||
|
||
void CDPetComponentTable::LoadValuesFromDatabase() { | ||
auto tableData = CDClientDatabase::ExecuteQuery("SELECT * FROM PetComponent"); | ||
while (!tableData.eof()) { | ||
const uint32_t componentID = tableData.getIntField("id", defaultEntry.id); | ||
|
||
auto& entry = m_Entries[componentID]; | ||
entry.id = componentID; | ||
UNUSED_COLUMN(entry.minTameUpdateTime = tableData.getFloatField("minTameUpdateTime", defaultEntry.minTameUpdateTime)); | ||
UNUSED_COLUMN(entry.maxTameUpdateTime = tableData.getFloatField("maxTameUpdateTime", defaultEntry.maxTameUpdateTime)); | ||
UNUSED_COLUMN(entry.percentTameChance = tableData.getFloatField("percentTameChance", defaultEntry.percentTameChance)); | ||
UNUSED_COLUMN(entry.tameability = tableData.getFloatField("tamability", defaultEntry.tameability)); // Mispelled as "tamability" in CDClient | ||
UNUSED_COLUMN(entry.elementType = tableData.getIntField("elementType", defaultEntry.elementType)); | ||
entry.walkSpeed = static_cast<float>(tableData.getFloatField("walkSpeed", defaultEntry.walkSpeed)); | ||
entry.runSpeed = static_cast<float>(tableData.getFloatField("runSpeed", defaultEntry.runSpeed)); | ||
entry.sprintSpeed = static_cast<float>(tableData.getFloatField("sprintSpeed", defaultEntry.sprintSpeed)); | ||
UNUSED_COLUMN(entry.idleTimeMin = tableData.getFloatField("idleTimeMin", defaultEntry.idleTimeMin)); | ||
UNUSED_COLUMN(entry.idleTimeMax = tableData.getFloatField("idleTimeMax", defaultEntry.idleTimeMax)); | ||
UNUSED_COLUMN(entry.petForm = tableData.getIntField("petForm", defaultEntry.petForm)); | ||
entry.imaginationDrainRate = static_cast<float>(tableData.getFloatField("imaginationDrainRate", defaultEntry.imaginationDrainRate)); | ||
UNUSED_COLUMN(entry.AudioMetaEventSet = tableData.getStringField("AudioMetaEventSet", defaultEntry.AudioMetaEventSet)); | ||
UNUSED_COLUMN(entry.buffIDs = tableData.getStringField("buffIDs", defaultEntry.buffIDs)); | ||
|
||
tableData.nextRow(); | ||
} | ||
} | ||
|
||
void CDPetComponentTable::LoadValuesFromDefaults() { | ||
m_Entries.insert(std::make_pair(defaultEntry.id, defaultEntry)); | ||
} | ||
|
||
CDPetComponent& CDPetComponentTable::GetByID(const uint32_t componentID) { | ||
auto itr = m_Entries.find(componentID); | ||
if (itr == m_Entries.end()) { | ||
LOG("Unable to load pet component (ID %i) values from database! Using default values instead.", componentID); | ||
return defaultEntry; | ||
} | ||
return itr->second; | ||
} |
45 changes: 45 additions & 0 deletions
45
dDatabase/CDClientDatabase/CDClientTables/CDPetComponentTable.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
#pragma once | ||
#include "CDTable.h" | ||
#include <cstdint> | ||
#include <string> | ||
|
||
struct CDPetComponent { | ||
uint32_t id; | ||
UNUSED_COLUMN(float minTameUpdateTime;) | ||
UNUSED_COLUMN(float maxTameUpdateTime;) | ||
UNUSED_COLUMN(float percentTameChance;) | ||
UNUSED_COLUMN(float tameability;) // Mispelled as "tamability" in CDClient | ||
UNUSED_COLUMN(uint32_t elementType;) | ||
float walkSpeed; | ||
float runSpeed; | ||
float sprintSpeed; | ||
UNUSED_COLUMN(float idleTimeMin;) | ||
UNUSED_COLUMN(float idleTimeMax;) | ||
UNUSED_COLUMN(uint32_t petForm;) | ||
float imaginationDrainRate; | ||
UNUSED_COLUMN(std::string AudioMetaEventSet;) | ||
UNUSED_COLUMN(std::string buffIDs;) | ||
}; | ||
|
||
class CDPetComponentTable : public CDTable<CDPetComponentTable> { | ||
public: | ||
|
||
/** | ||
* Load values from the CD client database | ||
*/ | ||
void LoadValuesFromDatabase(); | ||
|
||
/** | ||
* Load the default values into memory instead of attempting to connect to the CD client database | ||
*/ | ||
void LoadValuesFromDefaults(); | ||
|
||
/** | ||
* Gets the pet component table corresponding to the pet component ID | ||
* @returns A reference to the corresponding table, or the default if one could not be found | ||
*/ | ||
CDPetComponent& GetByID(const uint32_t componentID); | ||
|
||
private: | ||
std::map<uint32_t, CDPetComponent> m_Entries; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.