Initial commit: ROW Client source code

Game client codebase including:
- CharacterActionControl: Character and creature management
- GlobalScript: Network, items, skills, quests, utilities
- RYLClient: Main client application with GUI and event handlers
- Engine: 3D rendering engine (RYLGL)
- MemoryManager: Custom memory allocation
- Library: Third-party dependencies (DirectX, boost, etc.)
- Tools: Development utilities

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-29 16:24:34 +09:00
commit e067522598
5135 changed files with 1745744 additions and 0 deletions

View File

@@ -0,0 +1,123 @@
// SectorBGMTrigger.h: interface for the CSectorBGMTrigger class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SECTORBGMTRIGGER_H__2A07FEDB_6BAC_4C12_A532_4D50FA18E18E__INCLUDED_)
#define AFX_SECTORBGMTRIGGER_H__2A07FEDB_6BAC_4C12_A532_4D50FA18E18E__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "RenderTexture.h"
#include <vector>
using namespace std;
#define ZONE_NUM 15
#define BGM_TEXTURESIZE 128
//==========================
// Define Script Key
//==========================
#define APP_SET "SET"
#define APP_BGM_TRIGGER "BGM_TRIGGER"
#define KEY_TRIGGER "TRIGGER"
#define KEY_ZONE "ZONE"
#define KEY_SECTORX "SECTORX"
#define KEY_SECTORY "SECTORY"
#define KEY_BGM "BGM"
#define KEY_ESF "ESF"
#define KEY_COLOR "COLOR"
#define KEY_TEXTURE "TEXTURE"
#define KEY_EVENTNUM "EVENTNUM"
#define KEY_EVENTKEY "EVENTKEY"
//===========================
// Define Event Key
//===========================
//#define EK_BGM_ONCE 0
//#define EK_BGM_LOOP 1
#define EK_BGM_ONCE_SAFE 0
#define EK_BGM_LOOP_SAFE 1
#define EK_BGM_LOOP_UNSAFE 2
#define EK_BGM_ONCE_UNSAFE 3
#define EK_NOTBGM_SAFE 4
#define EK_BGM_TURN_AMB_SAFE 5
#define EK_BGM_TURN_AMB_UNSAFE 6
#define EK_CAMP_UNCREATE 9
#define EK_ESF_SAFE 10
#define EK_ESF_UNSAFE 11
// 0 <20>ѹ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD> , <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><> o
// 1 <20>ݺ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD> , <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><> o
// 2 <20>ݺ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD> , <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><> x
// 3 <20>ѹ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD> , <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><> x
// 4 <20><><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD>x, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><> o
// 5 BGM 1<><31> <20>÷<EFBFBD><C3B7><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>𽺷<EFBFBD> <20>н<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><> o
// 6 BGM 1<><31> <20>÷<EFBFBD><C3B7><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>𽺷<EFBFBD> <20>н<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><> x
// 9 ķ<><C4B7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 10 <20><><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><> o
// 11 <20><><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><> x
struct PerSectorTriggerInfo
{
int iSectorX;
int iSectorY;
char strTexFilename[MAX_PATH];
int iEventNum;
vector<int> EventKeyList;
vector<DWORD> BGMColorKeyList;
vector<char*> BGMFileList;
vector<char*> ESFFileList;
DWORD ColorTable[BGM_TEXTURESIZE][BGM_TEXTURESIZE];
void Destroy()
{
vector<char*>::iterator iter;
for( iter = BGMFileList.begin(); iter != BGMFileList.end(); iter++ )
{
delete (*iter);
}
for( iter = ESFFileList.begin(); iter != ESFFileList.end(); iter++ )
{
delete (*iter);
}
BGMFileList.clear();
ESFFileList.clear();
BGMColorKeyList.clear();
EventKeyList.clear();
};
};
class CSectorBGMTrigger
{
public:
vector<PerSectorTriggerInfo*> m_ScriptDataList[ZONE_NUM];
vector<PerSectorTriggerInfo*> m_SectorBgmList;
LPDIRECT3DTEXTURE8 m_pBgmTexture;
CRenderTexture m_ResizeTexture;
protected:
void LoadBgmTexture( char* strFile );
void DeleteScriptData();
void MakeColorTable( DWORD* pDest, char* strSrcFile );
public:
CSectorBGMTrigger();
virtual ~CSectorBGMTrigger();
void DeleteBgmData();
void Create();
void Destroy();
void GetScriptData( const char* strFilename );
void WriteBinData();
void LoadZoneData( int Zone );
void LoadData( char* strFile );
PerSectorTriggerInfo* GetTrigger( int SectorX, int SectorY );
};
#endif // !defined(AFX_SECTORBGMTRIGGER_H__2A07FEDB_6BAC_4C12_A532_4D50FA18E18E__INCLUDED_)