#include #include "DBAllocator.h" #include "GameDBManager.h" #include "DB_Commands.h" // 2009. 8. 11 FLOYD 보안비밀번호 2차 수정 // #include "DB_CheckSecurityNo.h" static XCriticalSection s_csDBHeapLock( "s_csDBHeapLock" ); XMemoryPool & GetDBHeap() { static XMemoryPool heap( COMPILE_TIME_SIZE_COMPARE( DB_OnStartUp, COMPILE_TIME_SIZE_COMPARE( DB_UpdateOneTimePassword, COMPILE_TIME_SIZE_COMPARE( DB_UpdateCharacter, COMPILE_TIME_SIZE_COMPARE( DB_UpdateCharacterHair, COMPILE_TIME_SIZE_COMPARE( DB_UpdateCharacterSkin, COMPILE_TIME_SIZE_COMPARE( DB_UpdateCharacterHideEquipFlag, COMPILE_TIME_SIZE_COMPARE( DB_UpdatePlayTimePoint, COMPILE_TIME_SIZE_COMPARE( DB_UpdateTimeBasedEvent, COMPILE_TIME_SIZE_COMPARE( DB_CheckCharacterName, COMPILE_TIME_SIZE_COMPARE( DB_ChangeCharacterName, COMPILE_TIME_SIZE_COMPARE( DB_ChangeCharacterAlias, COMPILE_TIME_SIZE_COMPARE( DB_Login, COMPILE_TIME_SIZE_COMPARE( DB_UpdateClientInfo, COMPILE_TIME_SIZE_COMPARE( DB_UpdateQuickSlot, COMPILE_TIME_SIZE_COMPARE( DB_UpdateCurrentKey, COMPILE_TIME_SIZE_COMPARE( DB_UpdateSavedKey, COMPILE_TIME_SIZE_COMPARE( DB_Logout, COMPILE_TIME_SIZE_COMPARE( DB_UpdateItemOwner, COMPILE_TIME_SIZE_COMPARE( DB_InsertSummon, COMPILE_TIME_SIZE_COMPARE( DB_ReadStorageList, COMPILE_TIME_SIZE_COMPARE( DB_ReadCommercialStorageList, COMPILE_TIME_SIZE_COMPARE( DB_TakeOutCommercialItem, COMPILE_TIME_SIZE_COMPARE( DB_GetCommercialStorageInfo, COMPILE_TIME_SIZE_COMPARE( DB_InsertItem, COMPILE_TIME_SIZE_COMPARE( DB_InsertFavor, COMPILE_TIME_SIZE_COMPARE( DB_UpdateItem, COMPILE_TIME_SIZE_COMPARE( DB_UpdateSummon, COMPILE_TIME_SIZE_COMPARE( DB_InsertPet, COMPILE_TIME_SIZE_COMPARE( DB_UpdatePet, COMPILE_TIME_SIZE_COMPARE( DB_ChangePetName, COMPILE_TIME_SIZE_COMPARE( DB_CharacterList, COMPILE_TIME_SIZE_COMPARE( DB_DeleteCharacter, COMPILE_TIME_SIZE_COMPARE( DB_CreateCharacter, COMPILE_TIME_SIZE_COMPARE( DB_DeleteParty, COMPILE_TIME_SIZE_COMPARE( DB_SetParty, COMPILE_TIME_SIZE_COMPARE( DB_InsertParty, COMPILE_TIME_SIZE_COMPARE( DB_UpdatePartyInfo, COMPILE_TIME_SIZE_COMPARE( DB_InsertSkill, COMPILE_TIME_SIZE_COMPARE( DB_UpdateStorageGold, COMPILE_TIME_SIZE_COMPARE( DB_ResetSkill, COMPILE_TIME_SIZE_COMPARE( DB_DeleteSkill, COMPILE_TIME_SIZE_COMPARE( DB_UpdateSkill, COMPILE_TIME_SIZE_COMPARE( DB_DeleteGuild, COMPILE_TIME_SIZE_COMPARE( DB_ChangeGuildName, COMPILE_TIME_SIZE_COMPARE( DB_SetGuild, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildBlockTime, COMPILE_TIME_SIZE_COMPARE( DB_UpdateGuildDonationPoint, COMPILE_TIME_SIZE_COMPARE( DB_InsertEventAreaEnterCount, COMPILE_TIME_SIZE_COMPARE( DB_UpdateEventAreaEnterCount, COMPILE_TIME_SIZE_COMPARE( DB_InsertFriend, COMPILE_TIME_SIZE_COMPARE( DB_DeleteFriend, COMPILE_TIME_SIZE_COMPARE( DB_InsertGuild, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildGold, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildAllianceID, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildAllianceBlockTime, COMPILE_TIME_SIZE_COMPARE( DB_InsertAlliance, COMPILE_TIME_SIZE_COMPARE( DB_UpdateAllianceInfo, COMPILE_TIME_SIZE_COMPARE( DB_ChangeAllianceName, COMPILE_TIME_SIZE_COMPARE( DB_DeleteAllianceInfo, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildLeader, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildDungeonID, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildDungeonBlockTime, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildNotice, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildURL, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildPermission, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildPermissionName, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildPermissionSet, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildMemberMemo, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildAdvertiseTypeAndTime, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildAdvertiseComment, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildRecruiting, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildIcon, COMPILE_TIME_SIZE_COMPARE( DB_SetGuildBanner, COMPILE_TIME_SIZE_COMPARE( DB_InsertQuest, COMPILE_TIME_SIZE_COMPARE( DB_InsertRandomQuest, COMPILE_TIME_SIZE_COMPARE( DB_UpdateRandomQuest, COMPILE_TIME_SIZE_COMPARE( DB_UpdateQuest, COMPILE_TIME_SIZE_COMPARE( DB_DeleteQuest, COMPILE_TIME_SIZE_COMPARE( DB_InsertQuestCoolTime, COMPILE_TIME_SIZE_COMPARE( DB_UpdateQuestCoolTime, COMPILE_TIME_SIZE_COMPARE( DB_DeleteQuestCoolTime, COMPILE_TIME_SIZE_COMPARE( DB_InsertTitle, COMPILE_TIME_SIZE_COMPARE( DB_UpdateTitle, COMPILE_TIME_SIZE_COMPARE( DB_UpdateEventItemDropInfo, COMPILE_TIME_SIZE_COMPARE( DB_UpdateEventItemSupplyInfo, COMPILE_TIME_SIZE_COMPARE( DB_UpdateDungeonRaidTime, COMPILE_TIME_SIZE_COMPARE( DB_UpdateDungeon, COMPILE_TIME_SIZE_COMPARE( DB_UpdateDungeonOwnerGuild, COMPILE_TIME_SIZE_COMPARE( DB_ClearDungeonRaidRecord, COMPILE_TIME_SIZE_COMPARE( DB_EraseUserFromAutoAccountList, COMPILE_TIME_SIZE_COMPARE( DB_ClearAutoAccountList, COMPILE_TIME_SIZE_COMPARE( DB_UpdateLaunchedScheduledCommand, COMPILE_TIME_SIZE_COMPARE( DB_InsertAuctionInfo, COMPILE_TIME_SIZE_COMPARE( DB_UpdateAuctionBiddingInfo, COMPILE_TIME_SIZE_COMPARE( DB_DeleteAuctionInfo, COMPILE_TIME_SIZE_COMPARE( DB_InsertNewItemAndKeepingInfo, COMPILE_TIME_SIZE_COMPARE( DB_DeleteItemKeepingInfo, COMPILE_TIME_SIZE_COMPARE( DB_DeleteAuctionInfoAndInsertItemKeepingInfo, COMPILE_TIME_SIZE_COMPARE( DB_UpdateItemAuctionKeepingID, COMPILE_TIME_SIZE_COMPARE( DB_InsertAutoAuctionRegistrationInfo, COMPILE_TIME_SIZE_COMPARE( DB_SetRankingScore, COMPILE_TIME_SIZE_COMPARE( DB_InvalidateRankingScore, COMPILE_TIME_SIZE_COMPARE( DB_SettleRanking, COMPILE_TIME_SIZE_COMPARE( DB_InsertGlobalVariable, COMPILE_TIME_SIZE_COMPARE( DB_UpdateGlobalVariable, COMPILE_TIME_SIZE_COMPARE( DB_DeleteGlobalVariable, COMPILE_TIME_SIZE_COMPARE( DB_InsertCash, COMPILE_TIME_SIZE_COMPARE( DB_InsertFarmInfo, COMPILE_TIME_SIZE_COMPARE( DB_UpdateNursingTime, COMPILE_TIME_SIZE_COMPARE( DB_DeleteFarmInfo, COMPILE_TIME_SIZE_COMPARE( DB_UpdateBattleArenaPenalty, COMPILE_TIME_SIZE_COMPARE( DB_SetRandomOption, COMPILE_TIME_SIZE_COMPARE( DB_DeleteRandomOption, COMPILE_TIME_SIZE_COMPARE( DB_UpdateItemAwakenSID, COMPILE_TIME_SIZE_COMPARE( DB_UpdateItemRandomOptionSID, COMPILE_TIME_SIZE_COMPARE( DB_UpdateRandomOptionOwnerInfo, COMPILE_TIME_SIZE_COMPARE( DB_ReadAccountAuthorityInfo, COMPILE_TIME_SIZE_COMPARE( DB_SetAccountAuthorityInfo, COMPILE_TIME_SIZE_COMPARE( DB_CloseAccountAuthorityInfo, COMPILE_TIME_SIZE_COMPARE( DB_UpdateItemCode, COMPILE_TIME_SIZE_COMPARE( DB_UpdateItemEffect, // Fraun Sky Accessories 7/12/2025 COMPILE_TIME_SIZE_COMPARE( DB_InsertEventItemDropInfo, 0 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) // Fraun Sky Accessories 7/12/2025; Additional ')' // 뭐 나도 이렇게 몰아서 괄호 닫고 싶진 않았는데... // 재귀 템플릿화에 능한 누군가가 좀 고쳐주셈;; #ifdef _DEBUG , 100, 2, false ); #else , 500, 6, false ); #endif return heap; } void InitDBHeap() { // 싱글톤 초기화. (안해주면 난리남) GetDBHeap(); // } struct GameDBManager::DBProc * allocDBProcStruct() { THREAD_SYNCHRONIZE( s_csDBHeapLock ); struct GameDBManager::DBProc * pHeapBlock = reinterpret_cast< struct GameDBManager::DBProc * >( GetDBHeap().Alloc() ); return pHeapBlock; } void prepareFreeDBProcStruct( struct GameDBManager::DBProc * pStruct ) { THREAD_SYNCHRONIZE( s_csDBHeapLock ); GetDBHeap().PrepareFree( pStruct ); } void freeDBProcStruct( struct GameDBManager::DBProc * pStruct ) { THREAD_SYNCHRONIZE( s_csDBHeapLock ); GetDBHeap().Free( pStruct ); }