feat: Migrating features from newer implementation

This commit is contained in:
2025-03-29 10:50:16 +01:00
parent 171a48eb71
commit 810264aa71
15 changed files with 982 additions and 538 deletions
+55 -80
View File
@@ -13,6 +13,7 @@
*/
#include "SPITPlayer.h"
#include <vector>
unordered_map<string, SPITPlayer*> SPITPlayer::s_SPITPlayers;
@@ -29,18 +30,17 @@ SPITPlayer* SPITPlayer::getSPITPlayer(string p_PlayerID) {
}
void SPITPlayer::clearPlayers() {
SPITPlayer* ptrSPITPlayer;
{
for (auto i = s_SPITPlayers.begin(); i != s_SPITPlayers.end(); i++) {
ptrSPITPlayer = i->second;
i = s_SPITPlayers.erase(i);
delete ptrSPITPlayer;
if (i == s_SPITPlayers.end()) {
break;
}
}
;
vector<SPITPlayer*> o_SPITPlayers;
for (auto i = s_SPITPlayers.begin(); i != s_SPITPlayers.end(); i++) {
SPITPlayer* ptrSPITPlayer = i->second;
o_SPITPlayers.push_back(ptrSPITPlayer);
}
for (auto i = o_SPITPlayers.begin(); i != o_SPITPlayers.end(); i++) {
SPITPlayer* ptrSPITPlayer = *i;
delete ptrSPITPlayer;
}
o_SPITPlayers.clear();
}
SPITPlayer::SPITPlayer(string p_PlayerID) {
@@ -48,19 +48,17 @@ SPITPlayer::SPITPlayer(string p_PlayerID) {
s_SPITPlayers[p_PlayerID] = this;
}
SPITPlayer::~SPITPlayer() {
{
PlayObject* ptrPlayObject;
for (auto i = m_PlayObjects.begin(); i != m_PlayObjects.end(); i++) {
ptrPlayObject = i->second;
i = m_PlayObjects.erase(i);
delete ptrPlayObject;
if (i == m_PlayObjects.end()) {
break;
}
PlaySPITType* ptrPlaySPITType;
for (auto i = m_PlaySPITTypes.begin(); i != m_PlaySPITTypes.end(); i++) {
ptrPlaySPITType = i->second;
i = m_PlaySPITTypes.erase(i);
delete ptrPlaySPITType;
if (i == m_PlaySPITTypes.end()) {
break;
}
}
}
void SPITPlayer::setIsRunning(bool p_IsRunning) {
@@ -76,8 +74,8 @@ void SPITPlayer::setTime(long long p_Frames) {
m_TimeFrames = p_Frames;
}
unordered_map<string, SPITPlayer::PlayObject*>* SPITPlayer::getPlayObjects() {
return &m_PlayObjects;
unordered_map<string, SPITPlayer::PlaySPITType*>* SPITPlayer::getPlaySPITTypes() {
return &m_PlaySPITTypes;
}
/**
*
@@ -85,72 +83,59 @@ unordered_map<string, SPITPlayer::PlayObject*>* SPITPlayer::getPlayObjects() {
* @return true = new PlayObject added<br>
* false = PlayObject exists
*/
SPITPlayer::PlayObject* SPITPlayer::addSPITObject_Playing (string p_SPITObjectID) {
PlayObject* ptrPlayObject;
{
auto i = m_PlayObjects.find(p_SPITObjectID);
if (i == m_PlayObjects.end()) {
ptrPlayObject = new PlayObject(this, p_SPITObjectID);
ptrPlayObject->setIsPlayed(true);
ptrPlayObject->setIsNew(true);
m_PlayObjects[p_SPITObjectID] = ptrPlayObject;
SPITPlayer::PlaySPITType* SPITPlayer::addSPITType_Playing (string p_SPITTypeID) {
PlaySPITType* ptrPlaySPITType;
auto i = m_PlaySPITTypes.find(p_SPITTypeID);
if (i == m_PlaySPITTypes.end()) {
ptrPlaySPITType = new PlaySPITType(this, p_SPITTypeID);
ptrPlaySPITType->setIsPlayed(true);
ptrPlaySPITType->setIsNew(true);
m_PlaySPITTypes[p_SPITTypeID] = ptrPlaySPITType;
}
else {
ptrPlayObject = i->second;
ptrPlayObject->setIsPlayed(true);
ptrPlaySPITType = i->second;
ptrPlaySPITType->setIsPlayed(true);
}
return ptrPlayObject;
}
return ptrPlaySPITType;
}
void SPITPlayer::startPlaySequence() {
PlayObject* ptrPlayObject;
{
for (auto i = m_PlayObjects.begin(); i != m_PlayObjects.end(); i++) {
ptrPlayObject = i->second;
ptrPlayObject->startPlaySequence();
}
PlaySPITType* ptrPlaySPITType;
for (auto i = m_PlaySPITTypes.begin(); i != m_PlaySPITTypes.end(); i++) {
ptrPlaySPITType = i->second;
ptrPlaySPITType->startPlaySequence();
}
}
/*
SPITPlayer::PlayObject* SPITPlayer::getPlayObject(string p_SPITObjectID) {
auto i = m_SPITObjectsPlaying.find(p_SPITObjectID);
if (i == m_SPITObjectsPlaying.end()) {
return NULL;
}
return i->second;
}
*/
void SPITPlayer::endPlaySequence() {
PlayObject* ptrPlayObject;
{
for (auto i = m_PlayObjects.begin(); i != m_PlayObjects.end(); i++) {
ptrPlayObject = i->second;
if (ptrPlayObject->getIsPlayed() == false) {
i = m_PlayObjects.erase(i);
delete ptrPlayObject;
if (i == m_PlayObjects.end()) {
PlaySPITType* ptrPlaySPITType;
for (auto i = m_PlaySPITTypes.begin(); i != m_PlaySPITTypes.end(); i++) {
ptrPlaySPITType = i->second;
if (ptrPlaySPITType->getIsPlayed() == false) {
i = m_PlaySPITTypes.erase(i);
delete ptrPlaySPITType;
if (i == m_PlaySPITTypes.end()) {
break;
}
}
}
}
}
SPITPlayer::PlayObject::PlayObject() {
SPITPlayer::PlaySPITType::PlaySPITType() {
}
SPITPlayer::PlayObject::PlayObject(SPITPlayer* p_SPITPlayer, string p_SPITObjectID) {
m_SPITObjectID = p_SPITObjectID;
SPITPlayer::PlaySPITType::PlaySPITType(SPITPlayer* p_SPITPlayer, string p_SPITTypeID) {
m_SPITTypeID = p_SPITTypeID;
m_PlayerID = p_SPITPlayer->getID();
m_PlayerName = p_SPITPlayer->getName();
startPlaySequence();
m_IsNew = true;
}
SPITPlayer::PlayObject::PlayObject(const PlayObject& orig) {
m_SPITObjectID = orig.getSPITObjectID();
SPITPlayer::PlaySPITType::PlaySPITType(const PlaySPITType& orig) {
m_SPITTypeID = orig.getSPITTypeID();
m_IsPlayed = orig.getIsPlayed();
m_IsNew = orig.getIsNew();
@@ -158,21 +143,11 @@ SPITPlayer::PlayObject::PlayObject(const PlayObject& orig) {
m_PlayerName = orig.getPlayerName();
m_PlayerRuns = orig.getPlayerIsRunning();
m_Value = orig.getValueFade();
m_ValuePrePosition = getValueFadePrePosition();
m_ValueFactor = orig.getValueFactor();
m_ValueFlag = orig.getValueFlag();
m_FrameInsidePrePosition = orig.getFrameInsidePrePosition();
m_FrameInside = orig.getFrameInside();
m_Value = orig.getValue();
}
void SPITPlayer::PlayObject::startPlaySequence() {
void SPITPlayer::PlaySPITType::startPlaySequence() {
m_IsPlayed = false;
m_IsNew = false;
m_FrameInside = -1;
m_FrameInsidePrePosition = -1;
m_Value = 0;
m_ValuePrePosition = 0;
m_ValueFlag = 0x00;
}
}