Drachenseelensystem entfernen (2/3): DS-Code aus gemeinsam genutzten Dateien entfernen

Zweiter Schritt der vollstaendigen Entfernung des Drachenseelensystems
(Kernsystem + Alchemie/Refine, per Nutzerentscheidung komplett raus,
Drachenseelen sollen ueberhaupt nicht mehr aktivierbar sein).

Entfernt alle DragonSoul_*/DSManager-Aufrufe, ITEM_DS/ITEM_SPECIAL_DS/
ITEM_EXTRACT-Handling, das Drachenseelen-Inventar (pDSItems/wDSItemGrid),
Deck-Aktivierung, den Refine-Netzwerkpfad (HEADER_CG_DRAGON_SOUL_REFINE),
den GM-Befehl /dragon_soul sowie alle Aufrufstellen in char_item.cpp,
item.cpp, exchange.cpp, shop(Ex).cpp, input_db.cpp, input_main.cpp,
cmd(_gm).cpp.

Sicherheitsprinzip beachtet: numerische Enum-Werte, von denen andere,
bleibende Slot-Bereiche relativ abhaengen (v.a. BELT_INVENTORY_SLOT_START
via DRAGON_SOUL_EQUIP_SLOT_*, sowie EItemTypes' ITEM_DS/ITEM_SPECIAL_DS/
ITEM_EXTRACT vor ITEM_SECONDARY_COIN/RING/BELT), wurden bewusst NICHT
entfernt oder neu nummeriert, um Item-Positionen/-Typen bestehender
Spieler-Datenbankeintraege nicht stillschweigend zu verschieben - nur der
Code, der sie fuer Drachenseelen benutzt hat, wurde entfernt.
This commit is contained in:
Andreas Lierschaft
2026-08-17 22:48:27 +02:00
parent 18c6772d35
commit 11db2b3870
24 changed files with 9 additions and 988 deletions
-22
View File
@@ -60,7 +60,6 @@
#ifdef __PET_SYSTEM__
#include "PetSystem.h"
#endif
#include "DragonSoul.h"
extern const BYTE g_aBuffOnAttrPoints;
extern bool RaceToJob(unsigned race, unsigned *ret_job);
@@ -382,8 +381,6 @@ void CHARACTER::Initialize()
m_fAttMul = 1.0f;
m_fDamMul = 1.0f;
m_pointsInstant.iDragonSoulActiveDeck = -1;
memset(&m_tvLastSyncTime, 0, sizeof(m_tvLastSyncTime));
m_iSyncHackCount = 0;
}
@@ -469,7 +466,6 @@ void CHARACTER::Destroy()
if (NULL == m_pkMobData)
{
DragonSoul_CleanUp();
ClearItem();
}
@@ -2384,24 +2380,6 @@ void CHARACTER::ComputePoints()
}
}
// 용혼석 시스템
// ComputePoints에서는 케릭터의 모든 속성값을 초기화하고,
// 아이템, 버프 등에 관련된 모든 속성값을 재계산하기 때문에,
// 용혼석 시스템도 ActiveDeck에 있는 모든 용혼석의 속성값을 다시 적용시켜야 한다.
if (DragonSoul_IsDeckActivated())
{
for (int i = WEAR_MAX_NUM + DS_SLOT_MAX * DragonSoul_GetActiveDeck();
i < WEAR_MAX_NUM + DS_SLOT_MAX * (DragonSoul_GetActiveDeck() + 1); i++)
{
LPITEM pItem = GetWear(i);
if (pItem)
{
if (DSManager::instance().IsTimeLeftDragonSoul(pItem))
pItem->ModifyPoints(true);
}
}
}
if (GetHP() > GetMaxHP())
PointChange(POINT_HP, GetMaxHP() - GetHP());