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,147 @@
#ifndef _BASEDATA_H
#define _BASEDATA_H
const long MAX_NAMEBUFFER=256;
extern char INITVALUEFILE[];
extern char MAPDATAPATH[];
extern char ROOTPATH[];
extern char CHARACTERDATAPATH[];
extern char CHARACTERTEXTUREDATAPATH[];
extern char CHARACTERMESHTEX[];
extern char CHARACTERANIPACK[];
extern char CHARACTERLODMESH[];
extern char CHARACTERTEXPIECE[];
extern char CHARACTERATTACHMENTMESH[];
extern char CHARACTERTEXTURE[];
extern char ORIGINALTEXUTREINTERFACEPATH[];
extern char ORIGINALTEXUTRELIGHTMAPPATH[];
extern char ORIGINALTEXUTRENATUREPATH[];
extern char ORIGINALTEXTUREOBJECTPATH[];
extern char ORIGINALTEXTURETERRAINPATH[];
extern char ORIGINALTEXTUREWIDEPATH[];
extern char ORIGINALTEXTUREFXPATH[];
extern char ORIGINALTEXTUREEFFECT[];
//Object Path Define//
extern char HOUSEOBJECTPATH[];
extern char LIGHTOBJECTPATH[];
extern char TREEOBJECTPATH[];
extern char OBJECTPATH[];
extern char EFFECTPATH[];
extern char EFFECTSOUNDSPATH[];
extern char EFFECTSOUNDMPATH[];
extern char INSTANCEOBJECTPATH[];
//Texture Path Define//
extern char TERRAINTEXTUREPATH[];
extern char OBJECTTEXTUREPATH[];
extern char NATURETEXTUREPATH[];
extern char WIDETEXTUREPATH[];
extern char NEOINTERFACETEXTUREPATH[];
extern char INTERFACETEXTUREPATH[];
extern char FXTEXTUREPATH[];
extern char BSPTEXTUREPATH[];
extern char BSPDATAPATH[];
extern char EFFECTTEXTUREPATH[];
extern char EFFECTSCRIPTPATH[];
extern char OBJECTGEMPATH[];
extern char UNSHADOWWIDETEXTUREPATH[];
// LightMap Path Define//
extern char LIGHTMAPTEXTUREPATH[];
//VertexShader Path Define//
extern char TERRAINVERTEXSHADEROATH[];
extern char SHADERPATH[];
//Save Data Path Define//
extern char WEATHERPATH[];
//Sound Data Path Define//
extern char SOUNDFILEPATH[];
//Octree Path Define//
extern char OCTREEPATH[];
//Sector Scene Map Path Define//
extern char SECTORMAPPATH[];
//Font Texture Filename//
extern char FONTFILE[];
extern float LENS_NEAR_HOUSE;
extern float LENS_NEAR_OBJECT;
extern long MOVE_NOTHING;
extern long MOVE_HOUSE;
extern long MOVE_LIGHT;
extern long MOVE_OBJECT;
extern float NEARPLANEVALUE;
extern float LIGHTMAPSIZE;
extern float MAX_ALLOWLIGHTMAPSIZE;
extern float PERLIGHTMAP;
extern long GF3OPTION;
extern long COLLISIONOBJECTVIEW;
// Character Lod Distance
extern float fCHARACTERLODLEVELDIST[];
//Ambience DataPath
extern char AMBIENCEPATH[];
//BGM DataPath
extern char BGMPATH[];
/*
//Init Value File //
#define INITVALUEFILE "c:\\MP-Project\\Mp.INI"
//Original Texutre Path//
#define ORIGINALTEXUTREINTERFACEPATH "c:\\MP-Project\\RawTexture\\Interface"
#define ORIGINALTEXUTRELIGHTMAPPATH "c:\\MP-Project\\RawTexture\\Lightmap"
#define ORIGINALTEXUTRENATUREPATH "c:\\MP-Project\\RawTexture\\NatureObject"
#define ORIGINALTEXTUREOBJECTPATH "c:\\MP-Project\\RawTexture\\Object"
#define ORIGINALTEXTURETERRAINPATH "c:\\MP-Project\\RawTexture\\Terrain"
#define ORIGINALTEXTUREWIDEPATH "c:\\MP-Project\\RawTexture\\WideTexture"
//Object Path Define//
#define HOUSEOBJECTPATH "c:\\MP-Project\\Objects\\House\\"
#define LIGHTOBJECTPATH "c:\\MP-Project\\Objects\\Object\\"
#define TREEOBJECTPATH "c:\\MP-Project\\Objects\\NatureObject\\"
#define OBJECTPATH "c:\\MP-Project\\Objects\\Object\\"
//Texture Path Define//
#define TERRAINTEXTUREPATH "c:\\MP-project\\Texture\\Terrain"
#define OBJECTTEXTUREPATH "c:\\MP-Project\\Texture\\Object"
#define NATURETEXTUREPATH "c:\\MP-project\\Texture\\NatureObject"
#define WIDETEXTUREPATH "C:\\MP-Project\\Texture\\WideTexture"
#define INTERFACETEXTUREPATH "c:\\MP-Project\\Texture\\Interface"
// LightMap Path Define//
#define LIGHTMAPTEXTUREPATH "c:\\MP-Project\\Texture\\Lightmap"
//VertexShader Path Define//
#define TERRAINVERTEXSHADEROATH "c:\\MP-Project\\VertexShader\\LayerFog\\LayerFogTerrain.vsh"
//Save Data Path Define//
#define WEATHERPATH "c:\\MP-Project\\WeatherColorTable.dat"
//Octree Path Define//
#define OCTREEPATH "c:\\MP-Project\\Octree"
//Sector Scene Map Path Define//
#define SECTORMAPPATH "c:\\MP-Project\\Map"
//Font Texture Filename//
#define FONTFILE "Font-H.dds"
const float LENS_NEAR_HOUSE=3000.0f;
const float LENS_NEAR_OBJECT=5000.0f;
const long MOVE_NOTHING=0;
const long MOVE_HOUSE=1;
const long MOVE_LIGHT=2;
const long MOVE_OBJECT=3;
const float NEARPLANEVALUE=3.0f;
const float LIGHTMAPSIZE=32;
const float MAX_ALLOWLIGHTMAPSIZE=50000.0f;
const float PERLIGHTMAP=30.0f;
*/
#endif

View File

@@ -0,0 +1,81 @@
// CISBitmap.cpp: implementation of the CCISBitmap class.
// Author: Paul Reynolds
// Date: 24/04/1998
// Version: 1.0
//////////////////////////////////////////////////////////////////////
#include "CISBitmap.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCISBitmap::CCISBitmap()
{
m_crBlack = 0;
m_crWhite = RGB(255,255,255);
}
CCISBitmap::~CCISBitmap()
{
}
int CCISBitmap::Width()
{
BITMAP bm;
GetBitmap(&bm);
return bm.bmWidth;
}
int CCISBitmap::Height()
{
BITMAP bm;
GetBitmap(&bm);
return bm.bmHeight;
}
void CCISBitmap::DrawTransparent(CDC * pDC, int x, int y, COLORREF crColour)
{
COLORREF crOldBack = pDC->SetBkColor(m_crWhite);
COLORREF crOldText = pDC->SetTextColor(m_crBlack);
CDC dcImage, dcTrans;
// Create two memory dcs for the image and the mask
dcImage.CreateCompatibleDC(pDC);
dcTrans.CreateCompatibleDC(pDC);
// Select the image into the appropriate dc
CBitmap* pOldBitmapImage = dcImage.SelectObject(this);
// Create the mask bitmap
CBitmap bitmapTrans;
int nWidth = Width();
int nHeight = Height();
bitmapTrans.CreateBitmap(nWidth, nHeight, 1, 1, NULL);
// Select the mask bitmap into the appropriate dc
CBitmap* pOldBitmapTrans = dcTrans.SelectObject(&bitmapTrans);
// Build mask based on transparent colour
dcImage.SetBkColor(crColour);
dcTrans.BitBlt(0, 0, nWidth, nHeight, &dcImage, 0, 0, SRCCOPY);
// Do the work - True Mask method - cool if not actual display
pDC->BitBlt(x, y, nWidth, nHeight, &dcImage, 0, 0, SRCINVERT);
pDC->BitBlt(x, y, nWidth, nHeight, &dcTrans, 0, 0, SRCAND);
pDC->BitBlt(x, y, nWidth, nHeight, &dcImage, 0, 0, SRCINVERT);
// Restore settings
dcImage.SelectObject(pOldBitmapImage);
dcTrans.SelectObject(pOldBitmapTrans);
pDC->SetBkColor(crOldBack);
pDC->SetTextColor(crOldText);
}

View File

@@ -0,0 +1,30 @@
// CISBitmap.h: interface for the CCISBitmap class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CISBITMAP_H__08BA6EB3_DB4C_11D1_8A89_0040052E2D91__INCLUDED_)
#define AFX_CISBITMAP_H__08BA6EB3_DB4C_11D1_8A89_0040052E2D91__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "afxwin.h"
class CCISBitmap : public CBitmap
{
public:
CCISBitmap();
virtual ~CCISBitmap();
// Functions
int Height();
int Width();
virtual void DrawTransparent(CDC* pDC, int x, int y, COLORREF crColour);
private:
COLORREF m_crBlack;
COLORREF m_crWhite;
};
#endif // !defined(AFX_CISBITMAP_H__08BA6EB3_DB4C_11D1_8A89_0040052E2D91__INCLUDED_)

View File

@@ -0,0 +1,467 @@
#include <windows.h>
#include <fstream>
#include <crtdbg.h>
#include <tchar.h>
#include "Crc32Static.h"
using namespace std;
// Static CRC table
unsigned long CCrc32Static::s_arrdwCrc32Table[256] =
{
0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,
0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,
0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,
0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,
0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,
0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,
0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,
0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,
0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,
0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,
};
//***********************************************
CCrc32Static::CCrc32Static()
{
}
//***********************************************
CCrc32Static::~CCrc32Static()
{
}
//***********************************************
inline void CCrc32Static::CalcCrc32(const BYTE byte, unsigned long &dwCrc32)
{
dwCrc32 = ((dwCrc32) >> 8) ^ s_arrdwCrc32Table[(byte) ^ ((dwCrc32) & 0x000000FF)];
}
//***********************************************
bool CCrc32Static::GetFileSizeQW(const HANDLE hFile, QWORD &qwSize)
{
_ASSERTE(hFile != INVALID_HANDLE_VALUE);
bool bSuccess = true;
try
{
unsigned long dwLo = 0, dwHi = 0;
dwLo = GetFileSize(hFile, &dwHi);
if(dwLo == INVALID_FILE_SIZE && GetLastError() != NO_ERROR)
{
bSuccess = false;
qwSize = 0;
}
else
{
qwSize = MAKEQWORD(dwHi, dwLo);
}
}
catch(...)
{
bSuccess = false;
}
return bSuccess;
}
//***********************************************
unsigned long CCrc32Static::StringCrc32(LPCTSTR szString, unsigned long &dwCrc32)
{
_ASSERTE(szString);
unsigned long dwErrorCode = NO_ERROR;
dwCrc32 = 0xFFFFFFFF;
try
{
while(*szString != _T('\0'))
{
CalcCrc32((BYTE)*szString, dwCrc32);
szString++;
}
}
catch(...)
{
// An unknown exception happened
dwErrorCode = ERROR_CRC;
}
dwCrc32 = ~dwCrc32;
return dwErrorCode;
}
//***********************************************
unsigned long CCrc32Static::FileCrc32Streams(LPCTSTR szFilename, unsigned long &dwCrc32)
{
#if UNICODE || _UNICODE
return ERROR_NOT_SUPPORTED;
#else
_ASSERTE(szFilename);
_ASSERTE(lstrlen(szFilename));
unsigned long dwErrorCode = NO_ERROR;
ifstream file;
dwCrc32 = 0xFFFFFFFF;
try
{
// Open the file
// file.open(szFilename, ios::in | ios::nocreate | ios::binary, filebuf::sh_read);
file.open(szFilename, ios::in | ios::binary);
if(file.is_open())
{
char buffer[MAX_BUFFER_SIZE];
int nLoop, nCount;
nCount = file.read(buffer, sizeof(buffer)).gcount();
while(nCount)
{
for(nLoop = 0; nLoop < nCount; nLoop++)
CalcCrc32(buffer[nLoop], dwCrc32);
nCount = file.read(buffer, sizeof(buffer)).gcount();
}
file.close();
}
}
catch(...)
{
// An unknown exception happened
dwErrorCode = ERROR_CRC;
}
if(file.is_open()) file.close();
dwCrc32 = ~dwCrc32;
return dwErrorCode;
#endif
}
//***********************************************
unsigned long CCrc32Static::FileCrc32Win32(LPCTSTR szFilename, unsigned long &dwCrc32)
{
_ASSERTE(szFilename);
_ASSERTE(lstrlen(szFilename));
unsigned long dwErrorCode = NO_ERROR;
HANDLE hFile = NULL;
dwCrc32 = 0xFFFFFFFF;
try
{
// Open the file
hFile = CreateFile(szFilename,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_SEQUENTIAL_SCAN,
NULL);
if(hFile == INVALID_HANDLE_VALUE)
dwErrorCode = GetLastError();
else
{
BYTE buffer[MAX_BUFFER_SIZE];
unsigned long dwBytesRead, dwLoop;
BOOL bSuccess = ReadFile(hFile, buffer, sizeof(buffer), &dwBytesRead, NULL);
while(bSuccess && dwBytesRead)
{
for(dwLoop = 0; dwLoop < dwBytesRead; dwLoop++)
CalcCrc32(buffer[dwLoop], dwCrc32);
bSuccess = ReadFile(hFile, buffer, sizeof(buffer), &dwBytesRead, NULL);
}
}
}
catch(...)
{
// An unknown exception happened
dwErrorCode = ERROR_CRC;
}
if(hFile != NULL) CloseHandle(hFile);
dwCrc32 = ~dwCrc32;
return dwErrorCode;
}
//***********************************************
unsigned long CCrc32Static::FileCrc32Filemap(LPCTSTR szFilename, unsigned long &dwCrc32)
{
_ASSERTE(szFilename);
_ASSERTE(lstrlen(szFilename));
unsigned long dwErrorCode = NO_ERROR;
HANDLE hFile = NULL, hFilemap = NULL;
dwCrc32 = 0xFFFFFFFF;
try
{
// Open the file
hFile = CreateFile(szFilename,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_SEQUENTIAL_SCAN,
NULL);
if(hFile == INVALID_HANDLE_VALUE)
dwErrorCode = GetLastError();
else
{
QWORD qwFileSize = 0, qwFileOffset = 0;
unsigned long dwByteCount, dwViewSize;
unsigned long dwBaseAddress;
// Get the file size
if(!GetFileSizeQW(hFile, qwFileSize))
dwErrorCode = ERROR_BAD_LENGTH;
else if(qwFileSize != 0) // We cannot CRC zero byte files
{
// Create the file mapping
hFilemap = CreateFileMapping(hFile,
NULL,
PAGE_READONLY,
0,
0,
NULL);
if(hFilemap == NULL)
dwErrorCode = GetLastError();
else
{
LPBYTE pByte;
// Loop while we map a section of the file and CRC it
while(qwFileSize > 0)
{
if(qwFileSize < MAX_VIEW_SIZE)
dwViewSize = LODWORD(qwFileSize);
else
dwViewSize = MAX_VIEW_SIZE;
dwBaseAddress = (unsigned long)MapViewOfFile(hFilemap,
FILE_MAP_READ,
HIDWORD(qwFileOffset),
LODWORD(qwFileOffset),
dwViewSize);
dwByteCount = dwViewSize;
pByte = (LPBYTE)dwBaseAddress;
while(dwByteCount-- > 0)
{
CalcCrc32(*pByte, dwCrc32);
pByte++;
}
UnmapViewOfFile((LPVOID)dwBaseAddress);
qwFileOffset += dwViewSize;
qwFileSize -= dwViewSize;
}
}
}
}
}
catch(...)
{
// An unknown exception happened
dwErrorCode = ERROR_CRC;
}
if(hFile != NULL) CloseHandle(hFile);
if(hFilemap != NULL) CloseHandle(hFilemap);
dwCrc32 = ~dwCrc32;
return dwErrorCode;
}
//***********************************************
unsigned long CCrc32Static::FileCrc32Assembly(LPCTSTR szFilename, unsigned long &dwCrc32)
{
_ASSERTE(szFilename);
_ASSERTE(lstrlen(szFilename));
unsigned long dwErrorCode = NO_ERROR;
HANDLE hFile = NULL;
dwCrc32 = 0xFFFFFFFF;
try
{
// Open the file
hFile = CreateFile(szFilename,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_SEQUENTIAL_SCAN,
NULL);
if(hFile == INVALID_HANDLE_VALUE)
dwErrorCode = GetLastError();
else
{
// There is a bug in the Microsoft compilers where inline assembly
// code cannot access static member variables. This is a work around
// for that bug. For more info see Knowledgebase article Q88092
LPVOID ptrCrc32Table = &s_arrdwCrc32Table;
BYTE buffer[MAX_BUFFER_SIZE];
unsigned long dwBytesRead;
BOOL bSuccess = ReadFile(hFile, buffer, sizeof(buffer), &dwBytesRead, NULL);
while(bSuccess && dwBytesRead)
{
// Register use:
// eax - CRC32 value
// ebx - a lot of things
// ecx - CRC32 value
// edx - address of end of buffer
// esi - address of start of buffer
// edi - CRC32 table
__asm
{
// Save the esi and edi registers
push esi
push edi
mov eax, dwCrc32 // Load the pointer to dwCrc32
mov ecx, [eax] // Dereference the pointer to load dwCrc32
mov edi, ptrCrc32Table // Load the CRC32 table
lea esi, buffer // Load buffer
mov ebx, dwBytesRead // Load dwBytesRead
lea edx, [esi + ebx] // Calculate the end of the buffer
crc32loop:
xor eax, eax // Clear the eax register
mov bl, byte ptr [esi] // Load the current source byte
mov al, cl // Copy crc value into eax
inc esi // Advance the source pointer
xor al, bl // Create the index into the CRC32 table
shr ecx, 8
mov ebx, [edi + eax * 4] // Get the value out of the table
xor ecx, ebx // xor with the current byte
cmp edx, esi // Have we reached the end of the buffer?
jne crc32loop
// Restore the edi and esi registers
pop edi
pop esi
mov eax, dwCrc32 // Load the pointer to dwCrc32
mov [eax], ecx // Write the result
}
bSuccess = ReadFile(hFile, buffer, sizeof(buffer), &dwBytesRead, NULL);
}
}
}
catch(...)
{
// An unknown exception happened
dwErrorCode = ERROR_CRC;
}
if(hFile != NULL) CloseHandle(hFile);
dwCrc32 = ~dwCrc32;
return dwErrorCode;
}
//***********************************************
unsigned long CCrc32Static::BufferCrc32(const char *szBuffer, size_t size, unsigned long &dwCrc32)
{
_ASSERTE(szBuffer);
unsigned long dwErrorCode = NO_ERROR;
dwCrc32 = 0xFFFFFFFF;
try
{
for (size_t nIndex = 0; nIndex < size; ++nIndex)
{
CalcCrc32((BYTE)*szBuffer, dwCrc32);
++szBuffer;
}
}
catch (...)
{
// An unknown exception happened
dwErrorCode = ERROR_CRC;
}
dwCrc32 = ~dwCrc32;
return dwErrorCode;
}

View File

@@ -0,0 +1,27 @@
#ifndef _CRC32STATIC_H_
#define _CRC32STATIC_H_
#include "Common.h"
#include <windows.h>
class CCrc32Static
{
public:
CCrc32Static();
virtual ~CCrc32Static();
static unsigned long BufferCrc32(const char *szBuffer, size_t size, unsigned long &dwCrc32);
static unsigned long StringCrc32(const char *szString, unsigned long &dwCrc32);
static unsigned long FileCrc32Streams(const char *szFilename, unsigned long &dwCrc32);
static unsigned long FileCrc32Win32(const char *szFilename, unsigned long &dwCrc32);
static unsigned long FileCrc32Filemap(const char *szFilename, unsigned long &dwCrc32);
static unsigned long FileCrc32Assembly(const char *szFilename, unsigned long &dwCrc32);
protected:
static bool GetFileSizeQW(const HANDLE hFile, __int64 &qwSize);
static inline void CalcCrc32(const unsigned char byte, unsigned long &dwCrc32);
static unsigned long s_arrdwCrc32Table[256];
};
#endif

View File

@@ -0,0 +1,173 @@
#include "BaseDataDefine.h"
//#include "SectorDefine.h"
long SHADOWSIZE=256;
long MAXCHRSHADOW=4;
long GROUNDSHADOW=1;
long WATERREFLECTION=1;
long LIGHTMAPRENDER=1;
long CHRTEXTURESIZE=0;
//Init Value File //
char INITVALUEFILE[256]="c:\\MP-Project\\Mp.INI";
char MAPDATAPATH[256]="c:\\MP-Project\\MapData";
char ROOTPATH[256] = "c:\\MP-Project\\";
//Character DataSet Path//
char CHARACTERDATAPATH[256]="c:\\MP-Project\\Character\\Data\\";
char CHARACTERTEXTUREDATAPATH[256]="c:\\MP-Project\\Character\\Data\\tex\\";
char CHARACTERMESHTEX[256]="c:\\MP-Project\\Character\\Data\\meshtex.htable";
char CHARACTERANIPACK[256]="c:\\MP-Project\\Character\\Data\\ani\\APack.ntable";
char CHARACTERLODMESH[256]="c:\\MP-Project\\Character\\Data\\mesh\\LODMesh.ntable";
char CHARACTERTEXPIECE[256]="c:\\MP-Project\\Character\\Data\\tex\\Texpiece.ntable";
char CHARACTERATTACHMENTMESH[256]="c:\\MP-Project\\Character\\Data\\Amesh\\amesh.ntable";
char CHARACTERTEXTURE[256]="c:\\MP-Project\\Character\\Data\\Texture\\texture.ntable";
//Original Texutre Path//
char ORIGINALTEXUTREINTERFACEPATH[256]="c:\\MP-Project\\RawTexture\\Interface";
char ORIGINALTEXUTRELIGHTMAPPATH[256]="c:\\MP-Project\\RawTexture\\Lightmap";
char ORIGINALTEXUTRENATUREPATH[256]="c:\\MP-Project\\RawTexture\\NatureObject";
char ORIGINALTEXTUREOBJECTPATH[256]="c:\\MP-Project\\RawTexture\\Object";
char ORIGINALTEXTURETERRAINPATH[256]="c:\\MP-Project\\RawTexture\\Terrain";
char ORIGINALTEXTUREWIDEPATH[256]="c:\\MP-Project\\RawTexture\\WideTexture";
char ORIGINALTEXTUREFXPATH[256]="c:\\MP-Project\\Texture\\FX";
char ORIGINALTEXTUREEFFECT[256]="c:\\MP-Project\\Texture\\Effect";
//Object Path Define//
char HOUSEOBJECTPATH[256]="c:\\MP-Project\\Objects\\House\\";
char LIGHTOBJECTPATH[256]="c:\\MP-Project\\Objects\\Object\\";
char TREEOBJECTPATH[256]="c:\\MP-Project\\Objects\\NatureObject\\";
char OBJECTPATH[256]="c:\\MP-Project\\Objects\\Object\\";
char OBJECTGEMPATH[256] = "c:\\MP-Project\\Objects\\Gem\\";
char INSTANCEOBJECTPATH[256]="c:\\MP-Project\\Objects\\Instance\\";
//Texture Path Define//
char TERRAINTEXTUREPATH[256]="c:\\MP-project\\Texture\\Terrain";
char OBJECTTEXTUREPATH[256]="c:\\MP-Project\\Texture\\Object";
char NATURETEXTUREPATH[256]="c:\\MP-project\\Texture\\NatureObject";
char WIDETEXTUREPATH[256]="C:\\MP-Project\\Texture\\WideTexture";
char INTERFACETEXTUREPATH[256]="c:\\MP-Project\\Texture\\Interface";
char NEOINTERFACETEXTUREPATH[ 256 ]="c:\\MP-Project\\Texture\\Interface\\NeoInterface";
char FXTEXTUREPATH[256]="c:\\MP-Project\\Texture\\FX";
char BSPTEXTUREPATH[256]="c:\\MP-Project\\Texture\\BSP";
char BSPDATAPATH[256]="c:\\MP-Project\\MapData\\Bsp\\";
char EFFECTTEXTUREPATH[256]="c:\\MP-Project\\Texture\\Effect\\";
char EFFECTSCRIPTPATH[256] = "c:\\MP-Project\\Effect\\Esf\\";
char UNSHADOWWIDETEXTUREPATH[256]="c:\\MP-Project\\Texture\\UnShadowWideTexture";
// LightMap Path Define//
char LIGHTMAPTEXTUREPATH[256]="c:\\MP-Project\\Texture\\Lightmap";
//VertexShader Path Define//
char TERRAINVERTEXSHADEROATH[256]="c:\\MP-Project\\VertexShader\\LayerFog\\LayerFogTerrain.vsh";
char SHADERPATH[256]="c:\\MP-Project\\Shader\\";
//Save Data Path Define//
char WEATHERPATH[256]="c:\\MP-Project\\WeatherColorTable.dat";
//Octree Path Define//
char OCTREEPATH[256]="c:\\MP-Project\\Octree";
//Sector Scene Map Path Define//
char SECTORMAPPATH[256]="c:\\MP-Project\\Map";
//Font Texture Filename//
char FONTFILE[256]="Font-H.dds";
char EFFECTPATH[256] = "c:\\MP-Project\\Effect\\";
//Sound Path//
char SOUNDFILEPATH[256]="c:\\MP-Project\\Sound\\";
char EFFECTSOUNDSPATH[256] = "c:\\MP-Project\\Sound\\Effect\\Ssnd\\";
char EFFECTSOUNDMPATH[256] = "c:\\MP-Project\\Sound\\Effect\\Msnd\\";
float DETAILGROUND=5.0f;
float LENS_NEAR_HOUSE=30000.0f;
float LENS_NEAR_OBJECT=5000.0f;
long MOVE_NOTHING=0;
long MOVE_HOUSE=1;
long MOVE_LIGHT=2;
long MOVE_OBJECT=3;
float NEARPLANEVALUE=3.0f;
float LIGHTMAPSIZE=32;
float MAX_ALLOWLIGHTMAPSIZE=50000.0f;
float PERLIGHTMAP=30.0f;
float DETAILTEXTUREDEPTH=75.0f;
float FIELDHIGH=13000.0f;
float FIELDMIDDLE=8000.0f;
float FIELDLOW=0.0f;
long ROAMBUFFERSIZE=6;
enum HEIGHTSAVEMODE { LOWERDETAIL,HIGHDETAIL };
float FIELDDIVIDE=64.0f;
//House Data define.......
///*
float MAX_HOUSEVIEWRANGE=80000.0f;
float MAX_HOUSEDISAPPER=MAX_HOUSEVIEWRANGE-4000.0f;
float MAX_OUTVIEWRANGE=15000.0f;
float MAX_MEDVIEWRANGE=15000.0f;
float MAX_INVIEWRANGE=3000.0f;
//*/
/*
float MAX_HOUSEVIEWRANGE=15000.0f;
float MAX_HOUSEDISAPPER=MAX_HOUSEVIEWRANGE-4000.0f;
float MAX_OUTVIEWRANGE=15000.0f;
float MAX_MEDVIEWRANGE=15000.0f;
float MAX_INVIEWRANGE=3000.0f;
//*/
float MAX_HOUSECOLLISION=30000.0f;
//Object Data define
float MAX_OBJECTVIEWRANBE=10000.0f;
float MAX_OBJECTDISAPPER=MAX_OBJECTVIEWRANBE-1000.0f;
//Nature Data define......//
long MAX_SEEDRANGE=30;
float LENS_REALPOLYTREE=5000.0f;
// Grass Data define........//
float MAX_GRASS=100;
int MAX_GRASSRANGE=19;
long SIZE_FOGTEXTURE=64;
float fFogHeight=3000.0f;
float fFogXRange=5000.0f;
float fFogYRange=1000.0f;
float fFogAddHeight=100.0f;
float fFogMax=20000.0f;
float fFogMin=-1000.0f;
float fSky_Height=120000.0f;
float fCloud_Height=50000.0f;
//Sun Scene Data define..
float fSun_Length=200000.0f;
float fSun_FrontEye=10000.0f;
//Lens Flare Data Define..
long LENSFLARE=4;
//Fall Scene Data Define ...
long MAX_FALLPARTICLE=1000;
long GF3OPTION=0;
long COLLISIONOBJECTVIEW=0;
float fCHARACTERLODLEVELDIST[3] = {1700.0f,3000.0f,4500.0f};
//Ambience DataPath
char AMBIENCEPATH[256] = "c:\\MP-Project\\SOUND\\Amb\\";
//BGM DataPath
char BGMPATH[256] = "c:\\MP-Project\\SOUND\\Bgm\\";

View File

@@ -0,0 +1,161 @@
// DlgRegionSelect.cpp : implementation file
//
#include "stdafx.h"
#include "ryllogin.h"
#include "DlgRegionSelect.h"
#include "../LoginRes/Resource.h"
#include "RYLLOGIN_DEFINITIONS.H"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgRegionSelect dialog
IMPLEMENT_DYNAMIC(CDlgRegionSelect, CDialog)
CDlgRegionSelect::CDlgRegionSelect(CWnd* pParent /*=NULL*/)
: CDialog(CDlgRegionSelect::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgRegionSelect)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_nRegionIndex = 0;
}
void CDlgRegionSelect::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgRegionSelect)
// NOTE: the ClassWizard will add DDX and DDV calls here
//DDX_Control(pDX, IDC_LIST_SERVER, m_RegionList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgRegionSelect, CDialog)
//{{AFX_MSG_MAP(CDlgRegionSelect)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_WM_CTLCOLOR()
//ON_LBN_SELCHANGE(IDC_LIST_SERVER, OnLbnSelchangeListServer)
//ON_LBN_DBLCLK(IDC_LIST_SERVER, OnLbnDblclkListServer)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgRegionSelect message handlers
void CDlgRegionSelect::RenderBack( CDC &rDC, CBitmap &rBitmap, int Px, int Py , int SizeX, int SizeY )
{
CBitmap *pOldBitmap;
CDC memDC;
memDC.CreateCompatibleDC(&rDC);
pOldBitmap=memDC.SelectObject(&rBitmap);
CSize sBitmap=rBitmap.GetBitmapDimension();
BITMAP bmInfo;
rBitmap.GetBitmap(&bmInfo);
if( SizeX == -1 && SizeY == -1 )
rDC.BitBlt(Px,Py,bmInfo.bmWidth,bmInfo.bmHeight,&memDC,0,0,SRCCOPY);
else
rDC.BitBlt(Px,Py,SizeX,SizeY,&memDC,0,0,SRCCOPY);
memDC.SelectObject(pOldBitmap);
}
void CDlgRegionSelect::OnPaint()
{
CPaintDC dc(this); // device context for painting
RenderBack( dc, m_btmBack, 0, 0 );
// TODO: Add your message handler code here
// Do not call CDialog::OnPaint() for painting messages
}
BOOL CDlgRegionSelect::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
SetDllResource();
m_btmBack.LoadBitmap( IDB_BITMAP_SERVERSEL );
SetDefaultResource();
SetWindowPos( NULL, 0, 0, 286, 237, SWP_NOZORDER | SWP_NOMOVE );
m_RegionList.SetWindowPos( NULL, 17, 24, 150-17, 203-24, SWP_NOZORDER );
for( int i = 0; i < m_vec_strRegionName.size(); ++i )
{
m_RegionList.InsertString( -1, m_vec_strRegionName[i] );
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgRegionSelect::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y) );
CDialog::OnLButtonDown(nFlags, point);
}
HBRUSH CDlgRegionSelect::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
switch(nCtlColor)
{
case CTLCOLOR_LISTBOX:
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB( 200,200,200 ));
return (HBRUSH)GetStockObject(NULL_BRUSH);
break;
}
// TODO: Change any attributes of the DC here
// TODO: Return a different brush if the default is not desired
return hbr;
}
void CDlgRegionSelect::OnLbnSelchangeListServer()
{
//m_ServerList.Invalidate( FALSE );
Invalidate( FALSE );
// TODO: Add your control notification handler code here
}
void CDlgRegionSelect::OnLbnDblclkListServer()
{
// TODO: Add your control notification handler code here
if( m_RegionList.GetCurSel() == -1 )
{
AfxMessageBox( RYLLoginGetMessage( 0 ) );
return;
}
m_nRegionIndex = m_RegionList.GetCurSel();
CDialog::OnOK();
}

View File

@@ -0,0 +1,69 @@
#if !defined(AFX_DLGREGIONSELECT_H__3E59E301_F8F2_47F6_8709_DC63F1C37A1E__INCLUDED_)
#define AFX_DLGREGIONSELECT_H__3E59E301_F8F2_47F6_8709_DC63F1C37A1E__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DlgRegionSelect.h : header file
//
#include "tranlistbox.h"
#include <vector>
/////////////////////////////////////////////////////////////////////////////
// CDlgRegionSelect dialog
class CDlgRegionSelect : public CDialog
{
DECLARE_DYNAMIC(CDlgRegionSelect)
// Construction
public:
CDlgRegionSelect(CWnd* pParent = NULL); // standard constructor
void RenderBack( CDC &rDC, CBitmap &rBitmap, int Px, int Py , int SizeX = -1, int SizeY = -1 );
CBitmap m_btmBack;
CTranListBox m_RegionList;
int m_nRegionIndex;
std::vector<CString> m_vec_strRegionName;
// Dialog Data
//{{AFX_DATA(CDlgRegionSelect)
enum { IDD = IDD_DIALOG_REGIONSELECT };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDlgRegionSelect)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CDlgRegionSelect)
afx_msg void OnPaint();
virtual BOOL OnInitDialog();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnLbnSelchangeListServer();
afx_msg void OnLbnDblclkListServer();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DLGREGIONSELECT_H__3E59E301_F8F2_47F6_8709_DC63F1C37A1E__INCLUDED_)

View File

@@ -0,0 +1,60 @@
// DlgServerClosed.cpp : implementation file
//
#include "stdafx.h"
#include "ryllogin.h"
#include "DlgServerClosed.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgServerClosed dialog
CDlgServerClosed::CDlgServerClosed(CWnd* pParent /*=NULL*/)
: CDialog(CDlgServerClosed::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgServerClosed)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CDlgServerClosed::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgServerClosed)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgServerClosed, CDialog)
//{{AFX_MSG_MAP(CDlgServerClosed)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgServerClosed message handlers
BOOL CDlgServerClosed::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
#ifdef _NATION_KR_
((CWnd *)GetDlgItem(IDC_NOTICE))->SetWindowText("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.");
#elif _NATION_US_
((CWnd *)GetDlgItem(IDC_NOTICE))->SetWindowText("Login Server is currently unavailable. \nPlease visit www.ryl.net for more information.");
#else
((CWnd *)GetDlgItem(IDC_NOTICE))->SetWindowText("Login Server is Close.");
#endif
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

View File

@@ -0,0 +1,48 @@
#if !defined(AFX_DLGSERVERCLOSED_H__3CDE3CD8_EAC1_4392_9271_2333B92D0C5B__INCLUDED_)
#define AFX_DLGSERVERCLOSED_H__3CDE3CD8_EAC1_4392_9271_2333B92D0C5B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DlgServerClosed.h : header file
//
#include "StatLink.h"
/////////////////////////////////////////////////////////////////////////////
// CDlgServerClosed dialog
class CDlgServerClosed : public CDialog
{
// Construction
public:
CDlgServerClosed(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CDlgServerClosed)
enum { IDD = IDD_DIALOGSERVERCLOSED };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDlgServerClosed)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CDlgServerClosed)
virtual BOOL OnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DLGSERVERCLOSED_H__3CDE3CD8_EAC1_4392_9271_2333B92D0C5B__INCLUDED_)

View File

@@ -0,0 +1,141 @@
// DlgServerSelect.cpp : implementation file
//
#include "stdafx.h"
#include "RYLLogin.h"
#include "DlgServerSelect.h"
#include "RYLLoginDlg.h"
// CDlgServerSelect dialog
IMPLEMENT_DYNAMIC(CDlgServerSelect, CDialog)
CDlgServerSelect::CDlgServerSelect(CWnd* pParent /*=NULL*/)
: CDialog(CDlgServerSelect::IDD, pParent)
{
}
CDlgServerSelect::~CDlgServerSelect()
{
}
void CDlgServerSelect::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST_SERVER, m_ServerList);
}
BEGIN_MESSAGE_MAP(CDlgServerSelect, CDialog)
ON_WM_PAINT()
ON_WM_CTLCOLOR()
ON_LBN_SELCHANGE(IDC_LIST_SERVER, OnLbnSelchangeListServer)
ON_WM_LBUTTONDOWN()
ON_LBN_DBLCLK(IDC_LIST_SERVER, OnLbnDblclkListServer)
END_MESSAGE_MAP()
void CDlgServerSelect::RenderBack( CDC &rDC, CBitmap &rBitmap, int Px, int Py , int SizeX, int SizeY )
{
CBitmap *pOldBitmap;
CDC memDC;
memDC.CreateCompatibleDC(&rDC);
pOldBitmap=memDC.SelectObject(&rBitmap);
CSize sBitmap=rBitmap.GetBitmapDimension();
BITMAP bmInfo;
rBitmap.GetBitmap(&bmInfo);
if( SizeX == -1 && SizeY == -1 )
rDC.BitBlt(Px,Py,bmInfo.bmWidth,bmInfo.bmHeight,&memDC,0,0,SRCCOPY);
else
rDC.BitBlt(Px,Py,SizeX,SizeY,&memDC,0,0,SRCCOPY);
memDC.SelectObject(pOldBitmap);
}
// CDlgServerSelect message handlers
void CDlgServerSelect::OnPaint()
{
CPaintDC dc(this); // device context for painting
RenderBack( dc, m_btmBack, 0, 0 );
// TODO: Add your message handler code here
// Do not call CDialog::OnPaint() for painting messages
}
HBRUSH CDlgServerSelect::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
switch(nCtlColor)
{
case CTLCOLOR_LISTBOX:
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB( 200,200,200 ));
return (HBRUSH)GetStockObject(NULL_BRUSH);
break;
}
// TODO: Change any attributes of the DC here
// TODO: Return a different brush if the default is not desired
return hbr;
}
void CDlgServerSelect::OnLbnSelchangeListServer()
{
// m_ServerList.Invalidate( FALSE );
Invalidate( FALSE );
// TODO: Add your control notification handler code here
}
void CDlgServerSelect::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if( point.x >= 173 && point.x <= 284 &&
point.y >= 133 && point.y <= 170 )
{
// OnLbnDblclkListServer();
}
PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y) );
CDialog::OnLButtonDown(nFlags, point);
}
void CDlgServerSelect::OnOK()
{
// TODO: Add your specialized code here and/or call the base class
//CDialog::OnOK();
}
void CDlgServerSelect::OnCancel()
{
// TODO: Add your specialized code here and/or call the base class
//CDialog::OnCancel();
}
void CDlgServerSelect::OnLbnDblclkListServer()
{
// TODO: Add your control notification handler code here
CRYLLoginDlg *pDlg = (CRYLLoginDlg*) AfxGetApp()->m_pMainWnd;
if( m_ServerList.GetCurSel() == -1 )
{
AfxMessageBox( RYLLoginGetMessage( 0 ) );
return;
}
ShowWindow( SW_HIDE );
pDlg->ExecuteClient( m_ServerList.GetCurSel() );
}

View File

@@ -0,0 +1,38 @@
#pragma once
#include "tranlistbox.h"
// CDlgServerSelect dialog
class CDlgServerSelect : public CDialog
{
DECLARE_DYNAMIC(CDlgServerSelect)
public:
CBitmap m_btmBack;
void RenderBack( CDC &rDC, CBitmap &rBitmap, int Px, int Py , int SizeX = -1, int SizeY = -1 );
CDlgServerSelect(CWnd* pParent = NULL); // standard constructor
virtual ~CDlgServerSelect();
// Dialog Data
enum { IDD = IDD_SEVERSELECT_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnPaint();
CTranListBox m_ServerList;
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnLbnSelchangeListServer();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
protected:
virtual void OnOK();
virtual void OnCancel();
public:
afx_msg void OnLbnDblclkListServer();
};

View File

@@ -0,0 +1,135 @@
// GradientStatic.cpp : implementation file
//
#include "stdafx.h"
#include "GradientStatic.h"
#include "MemDC.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CGradientStatic
CGradientStatic::CGradientStatic()
{
m_iLeftSpacing = 10;
clLeft = GetSysColor(COLOR_ACTIVECAPTION);
clRight = GetSysColor(COLOR_BTNFACE);
clText = GetSysColor(COLOR_CAPTIONTEXT);
m_bCenter = FALSE;
hinst_msimg32 = LoadLibrary( "msimg32.dll" );
m_bCanDoGradientFill = FALSE;
pFont = NULL;
if(hinst_msimg32)
{
m_bCanDoGradientFill = TRUE;
dllfunc_GradientFill = ((LPFNDLLFUNC1) GetProcAddress( hinst_msimg32, "GradientFill" ));
}
}
CGradientStatic::~CGradientStatic()
{
FreeLibrary( hinst_msimg32 );
}
BEGIN_MESSAGE_MAP(CGradientStatic, CStatic)
//{{AFX_MSG_MAP(CGradientStatic)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGradientStatic message handlers
void CGradientStatic::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rect;
GetClientRect(&rect);
CMemDC mDC( &dc, rect );
if(m_bCanDoGradientFill)
{
TRIVERTEX rcVertex[2];
rect.right--; // exclude this point, like FillRect does
rect.bottom--;
rcVertex[0].x=rect.left;
rcVertex[0].y=rect.top;
rcVertex[0].Red=GetRValue(clLeft)<<8; // color values from 0x0000 to 0xff00 !!!!
rcVertex[0].Green=GetGValue(clLeft)<<8;
rcVertex[0].Blue=GetBValue(clLeft)<<8;
rcVertex[0].Alpha=0x0000;
rcVertex[1].x=rect.right;
rcVertex[1].y=rect.bottom;
rcVertex[1].Red=GetRValue(clRight)<<8;
rcVertex[1].Green=GetGValue(clRight)<<8;
rcVertex[1].Blue=GetBValue(clRight)<<8;
rcVertex[1].Alpha=0;
GRADIENT_RECT rect;
rect.UpperLeft=0;
rect.LowerRight=1;
// fill the area
//dllfunc_GradientFill( mDC,rcVertex,2,&rect,1,GRADIENT_FILL_RECT_H);
//if Gradient Fil works - let's use font color defined by user
::SetTextColor(mDC,clText);
}
else
{
//there is no gradient, so let's use standart color
::SetTextColor(mDC,GetSysColor(COLOR_BTNTEXT));
}
HFONT hfontOld;
if(pFont)
hfontOld = (HFONT)SelectObject(mDC.m_hDC, (HFONT)pFont->m_hObject);
::SetBkMode(mDC, TRANSPARENT);
GetClientRect(&rect);
if(m_bCenter)
::DrawText(mDC, m_sTEXT, -1, &rect, DT_SINGLELINE|DT_VCENTER|DT_CENTER);
else
{
rect.left+=m_iLeftSpacing;
::DrawText(mDC, m_sTEXT, -1, &rect, DT_SINGLELINE|DT_VCENTER|DT_LEFT);
}
if(pFont)
::SelectObject(mDC.m_hDC, hfontOld);
}
void CGradientStatic::SetWindowText(LPCSTR lpszString)
{
m_sTEXT = lpszString;
Invalidate(TRUE);
}
CString CGradientStatic::GetWindowText()
{
return m_sTEXT;
}
void CGradientStatic::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CStatic::OnLButtonDown(nFlags, point);
}

View File

@@ -0,0 +1,72 @@
#if !defined(AFX_GRADIENTSTATIC_H__0709E3A1_C8B6_11D6_B74E_004033A0FB96__INCLUDED_)
#define AFX_GRADIENTSTATIC_H__0709E3A1_C8B6_11D6_B74E_004033A0FB96__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// GradientStatic.h : header file
//
#include "afxwin.h"
/////////////////////////////////////////////////////////////////////////////
// CGradientStatic window
typedef UINT (CALLBACK* LPFNDLLFUNC1)(HDC,CONST PTRIVERTEX,DWORD,CONST PVOID,DWORD,DWORD);
class CGradientStatic : public CStatic
{
// Construction
public:
CGradientStatic();
virtual ~CGradientStatic();
void SetColor(COLORREF cl) {clLeft=cl;};
void SetGradientColor(COLORREF cl) {clRight=cl;};
void SetTextColor(COLORREF cl) {clText=cl;};
CString GetWindowText();
void SetWindowText(LPCSTR lpszString);
void SetLeftSpacing(int iNoOfPixels) { m_iLeftSpacing = iNoOfPixels; };
void SetCenterText(BOOL bCenter = TRUE) { m_bCenter = bCenter; };
void SetFont(CFont* pF, BOOL bRedraw = TRUE) { pFont = pF; };
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CGradientStatic)
//}}AFX_VIRTUAL
// Implementation
public:
// Generated message map functions
protected:
CString m_sTEXT;
int m_iLeftSpacing;
CFont* pFont;
long clLeft;
long clRight;
long clText;
BOOL m_bCenter;
HINSTANCE hinst_msimg32;
BOOL m_bCanDoGradientFill;
LPFNDLLFUNC1 dllfunc_GradientFill;
//{{AFX_MSG(CGradientStatic)
afx_msg void OnPaint();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_GRADIENTSTATIC_H__0709E3A1_C8B6_11D6_B74E_004033A0FB96__INCLUDED_)

177
Tools/Launcher/HTTPFile.cpp Normal file
View File

@@ -0,0 +1,177 @@
#include "httpfile.h"
#include "afxwin.h"
CHTTPFile::CHTTPFile(void)
{
m_pProgress = NULL;
//m_pStatic = NULL;
m_pfProgressPercentage = NULL;
}
CHTTPFile::~CHTTPFile(void)
{
if( NULL != m_hIntSession )
{
InternetCloseHandle( m_hIntSession );
}
if( NULL != m_hHTTPSession )
{
InternetCloseHandle( m_hHTTPSession );
}
}
void CHTTPFile::Connect( CString strAddres, CString strDirectory, int nPort, CString strUsername, CString strPassword )
{
m_hIntSession = InternetOpen( NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL );
if( m_hIntSession == NULL )
{
#ifdef _NATION_KR_
MessageBox( NULL, "<EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.", 0, 0 );
#else
MessageBox( NULL, "Can't use Network.", 0, 0 );
#endif
}
CString strURL;
strURL.Format( "%s%s:%d", strAddres, strDirectory, nPort );
m_hHTTPSession = InternetOpenUrl( m_hIntSession, strURL, NULL, 0, INTERNET_FLAG_HYPERLINK, 0 );
if( m_hHTTPSession == NULL )
{
#ifdef _NATION_KR_
MessageBox( NULL, "<EFBFBD><EFBFBD>ġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.", 0, 0 );
#else
MessageBox( NULL, "Can't connect Patch Server.", 0, 0 );
#endif
}
}
bool CHTTPFile::TransferFile( CString strServerFilename, CString strClientFilename , CString strFilename )
{
HINTERNET hSession = InternetOpenUrl( m_hIntSession, strServerFilename, NULL, 0, INTERNET_FLAG_HYPERLINK, 0 );
if( hSession == NULL )
{
CString strError;
#ifdef _NATION_KR_
strError.Format( " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>. : %s", strServerFilename );
#else
strError.Format( " Not exist File. : %s", strServerFilename );
#endif
MessageBox( NULL, strError, 0, 0 );
return false;
}
char httpbuff[1024];
DWORD dwReadedBytes;
CString strProgress;
FILE *fp = fopen( strClientFilename, "wb" );
if( NULL == fp )
{
return false;
}
DWORD dwTotalByte = 0, dwTotalSize = 0;
char szQueryBuf[16];
DWORD dwQueryBufLen = sizeof(szQueryBuf);
BOOL bQuery = ::HttpQueryInfo(hSession, HTTP_QUERY_CONTENT_LENGTH, szQueryBuf, &dwQueryBufLen, NULL);
if (bQuery)
{
// The query succeeded, specify memory needed for file
dwTotalSize = (DWORD)atol(szQueryBuf);
}
else
{
dwTotalSize = 0;
}
if( fp )
{
int nUpdate = 0;
while( InternetReadFile( hSession, httpbuff, 1024, &dwReadedBytes ) && dwReadedBytes != 0 )
{
if( dwReadedBytes == 0 )
{
strProgress.Format( " %d / %d Download File = %s", dwTotalByte, dwTotalSize, strFilename );
m_pInfoWnd->SetWindowText( strProgress );
m_pInfoWnd->Invalidate( FALSE );
*m_pfProgressPercentage = 100.0f;
CRect rect;
rect.left = 22;
rect.right = 536;
rect.top = 405;
rect.bottom = 440;
m_pProgress->InvalidateRect( rect, FALSE );
break;
}
dwTotalByte += dwReadedBytes;
fwrite( httpbuff, dwReadedBytes, 1, fp );
//if( m_dwTrans )
// *m_dwTrans += dwReadedBytes;
if( m_pProgress && ( nUpdate % 30 )== 0)
{
//m_pProgress->Invalidate();
//m_pProgress->Invalidate( FALSE );
*m_pfProgressPercentage = (dwTotalByte*100.0f)/dwTotalSize;
CRect rect;
rect.left = 22;
rect.right = 536;
rect.top = 405;
rect.bottom = 440;
m_pProgress->InvalidateRect( rect, FALSE );
//strProgress.Format( " %d / %d Download File = %s", *m_dwTrans, dwTotalSize, strFilename );
strProgress.Format( " %d / %d Download File = %s", dwTotalByte, dwTotalSize, strFilename );
m_pInfoWnd->SetWindowText( strProgress );
m_pInfoWnd->Invalidate( FALSE );
}
nUpdate++;
// if( m_pStatic )
// {
// strProgress.Format( "Patch Info %d", dwTotalByte );
// m_pStatic->SetWindowText( strProgress );
// m_pStatic->Invalidate( FALSE );
// }
}
fclose( fp );
}
// else
// {
// AfxMessageBox( strClientFilename );
// }
InternetCloseHandle( hSession );
return true;
}
void CHTTPFile::Init(void)
{
m_hIntSession = InternetOpen( NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL );
if( m_hIntSession == NULL )
{
MessageBox( NULL, "Failed to establish network connection.", 0, 0 );
}
}

34
Tools/Launcher/HTTPFile.h Normal file
View File

@@ -0,0 +1,34 @@
#pragma once
#include "GradientStatic.h"
#include <Afxinet.h>
class CHTTPFile
{
HINTERNET m_hHTTPSession;
HINTERNET m_hIntSession;
DWORD m_dwTotalByte;
DWORD m_dwTransByte;
DWORD m_dwTransByteTotal;
CWnd *m_pProgress;
CGradientStatic *m_pInfoWnd;
//DWORD *m_dwTrans;
float* m_pfProgressPercentage;
public:
//CGradientStatic *m_pStatic;
void SetProgressWnd( CWnd *pWnd , CGradientStatic *pInfoWnd ,float* pfProgressPercentage )
{
m_pProgress = pWnd;
m_pInfoWnd = pInfoWnd;
m_pfProgressPercentage = pfProgressPercentage;
}
CHTTPFile(void);
~CHTTPFile(void);
void Connect( CString strAddres, CString strDirectory, int nPort, CString strUsername, CString strPassword );
//void TransferFile( CString strServerFilename, CString strClientFilename , CString strFilename ,DWORD dwTotalSize );
bool TransferFile( CString strServerFilename, CString strClientFilename , CString strFilename );
void Init(void);
};

114
Tools/Launcher/HtmlCtrl.cpp Normal file
View File

@@ -0,0 +1,114 @@
////////////////////////////////////////////////////////////////
// Microsoft Systems Journal -- December 1999
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
// Compiles with Visual C++ 6.0, runs on Windows 98 and probably NT too.
//
#include "StdAfx.h"
#include "HtmlCtrl.h"
#include "RYLLOGIN_DEFINITIONS.H"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
IMPLEMENT_DYNAMIC(CHtmlCtrl, CHtmlView)
BEGIN_MESSAGE_MAP(CHtmlCtrl, CHtmlView)
ON_WM_DESTROY()
ON_WM_MOUSEACTIVATE()
END_MESSAGE_MAP()
//////////////////
// Create control in same position as an existing static control with
// the same ID (could be any kind of control, really)
//
BOOL CHtmlCtrl::CreateFromStatic(UINT nID, CWnd* pParent)
{
CStatic wndStatic;
if (!wndStatic.SubclassDlgItem(nID, pParent))
return FALSE;
// Get static control rect, convert to parent's client coords.
CRect rc;
wndStatic.GetWindowRect(&rc);
pParent->ScreenToClient(&rc);
wndStatic.DestroyWindow();
// create HTML control (CHtmlView)
return Create(NULL, // class name
NULL, // title
(WS_CHILD | WS_VISIBLE ), // style
rc, // rectangle
pParent, // parent
nID, // control ID
NULL); // frame/doc context not used
}
////////////////
// Override to avoid CView stuff that assumes a frame.
//
void CHtmlCtrl::OnDestroy()
{
// This is probably unecessary since ~CHtmlView does it, but
// safer to mimic CHtmlView::OnDestroy.
/*
if (m_pBrowserApp) {
m_pBrowserApp->Release();
m_pBrowserApp = NULL;
}
*/
CWnd::OnDestroy(); // bypass CView doc/frame stuff
}
////////////////
// Override to avoid CView stuff that assumes a frame.
//
int CHtmlCtrl::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT msg)
{
// bypass CView doc/frame stuff
return CWnd::OnMouseActivate(pDesktopWnd, nHitTest, msg);
}
//////////////////
// Override navigation handler to pass to "app:" links to virtual handler.
// Cancels the navigation in the browser, since app: is a pseudo-protocol.
//
void CHtmlCtrl::OnBeforeNavigate2( LPCTSTR lpszURL,
DWORD nFlags,
LPCTSTR lpszTargetFrameName,
CByteArray& baPostedData,
LPCTSTR lpszHeaders,
BOOL* pbCancel )
{
const char APP_PROTOCOL[] = "app:";
int len = _tcslen(APP_PROTOCOL);
if (_tcsnicmp(lpszURL, APP_PROTOCOL, len)==0) {
OnAppCmd(lpszURL + len);
*pbCancel = TRUE;
}
}
//////////////////
// Called when the browser attempts to navigate to "app:foo"
// with "foo" as lpszWhere. Override to handle app commands.
//
void CHtmlCtrl::OnAppCmd(LPCTSTR lpszWhere)
{
// default: do nothing
}
void CHtmlCtrl::OnNavigateError(LPCTSTR lpszURL, LPCTSTR lpszFrame, DWORD dwError, BOOL *pbCancel)
{
#ifdef _NATION_KR_
if(!m_bRef)
{
Navigate(STR_FAIL_NOTICE_URL);
m_bRef = true;
}
#endif
}

57
Tools/Launcher/HtmlCtrl.h Normal file
View File

@@ -0,0 +1,57 @@
////////////////////////////////////////////////////////////////
// Microsoft Systems Journal -- December 1999
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
// Compiles with Visual C++ 6.0, runs on Windows 98 and probably NT too.
//
#include <afxhtml.h> // MFC support for Windows 95 Common Controls
class CHtmlCtrl : public CHtmlView {
public:
CHtmlCtrl()
{
m_bRef = false;
}
~CHtmlCtrl() { }
BOOL CreateFromStatic(UINT nID, CWnd* pParent);
// Normally, CHtmlView destroys itself in PostNcDestroy,
// but we don't want to do that for a control since a control
// is usually implemented as a stack object in a dialog.
//
virtual void PostNcDestroy() { }
// overrides to bypass MFC doc/view frame dependencies
afx_msg void OnDestroy();
afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT msg);
// override to trap "app:" pseudo protocol
virtual void OnBeforeNavigate2( LPCTSTR lpszURL,
DWORD nFlags,
LPCTSTR lpszTargetFrameName,
CByteArray& baPostedData,
LPCTSTR lpszHeaders,
BOOL* pbCancel );
virtual void OnNavigateError(
LPCTSTR lpszURL,
LPCTSTR lpszFrame,
DWORD dwError,
BOOL *pbCancel
);
// override to handle links to "app:mumble...". lpszWhere will be "mumble"
virtual void OnAppCmd(LPCTSTR lpszWhere);
DECLARE_MESSAGE_MAP();
DECLARE_DYNAMIC(CHtmlCtrl)
private:
bool m_bRef;
};

31
Tools/Launcher/HyprLink.h Normal file
View File

@@ -0,0 +1,31 @@
////////////////////////////////////////////////////////////////
// PixieLib(TM) Copyright 1997-1999 Paul DiLascia
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
//
// CHyperlink implements a simple text hyperlink
//
#ifndef _HYPRILNK_H
#define _HYPRILNK_H
//////////////////
// Simple text hyperlink derived from CString
//
class CHyperlink : public CString {
public:
CHyperlink(LPCTSTR lpLink = NULL) : CString(lpLink) { }
~CHyperlink() { }
const CHyperlink& operator=(LPCTSTR lpsz) {
CString::operator=(lpsz);
return *this;
}
operator LPCTSTR() {
return CString::operator LPCTSTR();
}
virtual HINSTANCE Navigate() {
return IsEmpty() ? NULL :
ShellExecute(0, _T("open"), *this, 0, 0, SW_SHOWNORMAL);
}
};
#endif

View File

@@ -0,0 +1,95 @@
// InitValue.cpp: implementation of the CInitValue class.
//
//////////////////////////////////////////////////////////////////////
#include <windows.h>
#include <stdio.h>
#include "InitValue.h"
#include "BaseDataDefine.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CInitValue::CInitValue()
{
m_nAdapter=m_nDevice=m_nMode=0;
m_CharShadow=m_MapShadow=m_BuildShadow=0;
m_TerrainDetail=m_CharDetail=m_ViewRange=0;
m_WaterReflection=m_Lensflare=m_TreeDetail=0;
}
CInitValue::~CInitValue()
{
}
bool CInitValue::Save(HKEY &hReg)
{
if(!hReg) return false;
long lResult;
// long lResult = RegDeleteValue(hReg, "InitValue");
// if(lResult != ERROR_SUCCESS) return false;
long lRegValue[16];
lRegValue[0] = m_lScreenX;
lRegValue[1] = m_lScreenY;
lRegValue[2] = m_lScreenColorDepth;
lRegValue[3] = m_nAdapter;
lRegValue[4] = m_nDevice;
lRegValue[5] = m_nMode;
lRegValue[6] = m_CharShadow;
lRegValue[7] = m_MapShadow;
lRegValue[8] = m_BuildShadow;
lRegValue[9] = m_TerrainDetail;
lRegValue[10] = m_CharDetail;
lRegValue[11] = m_ViewRange;
lRegValue[12] = m_WaterReflection;
lRegValue[13] = m_Lensflare;
lRegValue[14] = m_TreeDetail;
lRegValue[15] = m_MaxTextureSize;
lResult = RegSetValueEx(hReg, "InitValue", 0, REG_BINARY, (LPBYTE)&lRegValue, sizeof(lRegValue));
if(lResult == ERROR_SUCCESS) return true;
return false;
/* FILE *fp=fopen(INITVALUEFILE,"wb");
fwrite(this,sizeof(*this),1,fp);
fclose(fp);*/
}
bool CInitValue::Load(HKEY &hReg)
{
if(!hReg) return false;
long lRegValue[16];
unsigned long dwReadLens = sizeof(lRegValue);
long lResult = RegQueryValueEx(hReg, "InitValue", 0, NULL, (LPBYTE)&lRegValue, &dwReadLens);
if(lResult != ERROR_SUCCESS) return false;
m_lScreenX = lRegValue[0];
m_lScreenY = lRegValue[1];
m_lScreenColorDepth = lRegValue[2];
m_nAdapter = lRegValue[3];
m_nDevice = lRegValue[4];
m_nMode = lRegValue[5];
m_CharShadow = lRegValue[6];
m_MapShadow = lRegValue[7];
m_BuildShadow = lRegValue[8];
m_TerrainDetail = lRegValue[9];
m_CharDetail = lRegValue[10];
m_ViewRange = lRegValue[11];
m_WaterReflection = lRegValue[12];
m_Lensflare = lRegValue[13];
m_TreeDetail = lRegValue[14];
m_MaxTextureSize = lRegValue[15];
return true;
/* FILE *fp=fopen(INITVALUEFILE,"rb");
fread(this,sizeof(*this),1,fp);
fclose(fp);*/
}
void CInitValue::Init()
{
}

View File

@@ -0,0 +1,29 @@
// InitValue.h: interface for the CInitValue class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_INITVALUE_H__902DD191_CD4A_4EB3_BEFE_33EBF57D1257__INCLUDED_)
#define AFX_INITVALUE_H__902DD191_CD4A_4EB3_BEFE_33EBF57D1257__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CInitValue
{
public:
void Init();
bool Load(HKEY &hReg);
bool Save(HKEY &hReg);
long m_lScreenX,m_lScreenY,m_lScreenColorDepth;
long m_nAdapter,m_nDevice,m_nMode;
long m_CharShadow,m_MapShadow,m_BuildShadow;
long m_TerrainDetail,m_CharDetail,m_ViewRange;
long m_WaterReflection,m_Lensflare,m_TreeDetail;
long m_MaxTextureSize;
CInitValue();
virtual ~CInitValue();
};
#endif // !defined(AFX_INITVALUE_H__902DD191_CD4A_4EB3_BEFE_33EBF57D1257__INCLUDED_)

184
Tools/Launcher/List.h Normal file
View File

@@ -0,0 +1,184 @@
#pragma once
#include <assert.h>
#include <stdio.h>
namespace RTL
{
template< class Type > class List
{
Type* m_pElement;
int m_nElement;
int m_nArraySize;
public:
void Allocate(int nAlloc);
void SetSize(int nSize);
void Pack();
void Add(Type T);
void AddUnique(Type T);
int Contains(Type T);
void Remove(Type T);
void DelIndex(int nIndex);
void Insert(Type T, int n);
int Find(Type T);
void* GetFirstPointer()
{
return &m_pElement[0];
}
Type& operator[] (int i)
{
assert( i>=0 && i< m_nElement);
return m_pElement[i];
}
int GetCount()
{
return m_nElement;
};
void SetCount( int nElement )
{
m_nElement = nElement;
};
List();
virtual ~List();
};
template< class Type > List< Type >::List()
{
m_nArraySize = 0;
m_nElement = 0;
m_pElement = NULL;
}
template< class Type > List< Type >::~List()
{
m_nElement = 0;
delete [] m_pElement;
}
template< class Type > void List< Type >::Allocate(int nAlloc)
{
assert( nAlloc > 0 );
assert( nAlloc >= m_nElement );
Type *pOldElement = m_pElement;
m_nArraySize = nAlloc;
m_pElement = new Type[ m_nArraySize ];
assert( m_pElement );
for(int i=0 ; i < m_nElement ; i++)
{
m_pElement[i]=pOldElement[i];
}
if( pOldElement )
delete [] pOldElement;
}
template< class Type > void List< Type >::SetSize(int nSize)
{
if( nSize==0 )
{
if( m_pElement )
delete [] m_pElement;
}
else
{
Allocate(nSize);
}
m_nElement = nSize;
}
template< class Type > void List< Type >::Pack()
{
Allocate(m_nElement);
}
template< class Type > void List< Type >::Add(Type T)
{
assert( m_nElement <= m_nArraySize );
if( m_nElement == m_nArraySize )
{
Allocate((m_nArraySize) ? m_nArraySize*2 : 16);
}
m_pElement[m_nElement++] = T;
}
template< class Type > int List< Type >::Contains(Type T)
{
int nSameElement = 0;
for(int i=0;i<m_nElement;i++)
{
if( m_pElement[i] == T )
nSameElement++;
}
return nSameElement;
}
template< class Type > void List< Type >::AddUnique(Type T)
{
if( !Contains(T) )
Add(T);
}
template< class Type > void List< Type >::DelIndex(int nIndex)
{
assert( nIndex < m_nElement );
m_nElement--;
while( nIndex < m_nElement )
{
m_pElement[nIndex] = m_pElement[nIndex+1];
nIndex++;
}
}
template< class Type > void List< Type >::Remove(Type T)
{
for( int i=0 ; i < m_nElement ; i++ )
{
if( m_pElement[i] == T )
break;
}
DelIndex(i);
for( i=0 ; i < m_nElement ; i++ )
{
assert( m_pElement[i] != T );
}
}
template< class Type > void List< Type >::Insert(Type T, int n)
{
if( m_nElement == 0)
Add(T);
else
{
Add(m_pElement[ m_nElement-1 ]);
for( int i=0 ; i > n ; i-- )
{
m_pElement[i+1] = m_pElement[i];
}
m_pElement[n] = t;
}
}
template< class Type > int List< Type >::Find(Type T)
{
for( int i=0; i < m_nElement; i++ )
{
if( m_pElement[i] == T )
{
return i;
}
}
return -1;
}
}

View File

@@ -0,0 +1,174 @@
// MSGDialog.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "MSGDialog.h"
#include "InitValue.h"
#include "../LoginRes/Resource.h"
#include "memdc.h"
#include <mmsystem.h>
#pragma comment(lib, "winmm")
// CMSGDialog <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CMSGDialog, CDialog)
CMSGDialog::CMSGDialog(CWnd* pParent /*=NULL*/)
: CDialog(CMSGDialog::IDD, pParent)
{
}
CMSGDialog::~CMSGDialog()
{
}
void CMSGDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDOK, m_Ok);
DDX_Control(pDX, IDCANCEL, m_Cancel);
}
BEGIN_MESSAGE_MAP(CMSGDialog, CDialog)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()
// CMSGDialog <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CMSGDialog::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
InitClientFoloder();
InitWebBrowser();
SetWindowPos( NULL, 0,0, 600, 500, SWP_NOMOVE | SWP_NOZORDER );
SetWindowText( "R.O.W Online" );
m_Ok.SetWindowPos(NULL, 182, 442, m_Ok.GetSizeX(), m_Ok.GetSizeY() , SWP_NOZORDER);
m_Cancel.SetWindowPos(NULL, 319, 442, m_Cancel.GetSizeX(), m_Cancel.GetSizeY(), SWP_NOZORDER) ;
return TRUE; // return TRUE unless you set the focus to a control
}
void CMSGDialog::InitClientFoloder(void)
{
HKEY hMPClientReg = 0;
char strPath[MAX_PATH]="";
if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, STR_CLIENT_REGISTRY_SUBKEY,
0, KEY_READ, &hMPClientReg) == ERROR_SUCCESS)
{
DWORD dwReadType = 0;
DWORD dwReadLens = MAX_PATH;
if (RegQueryValueEx(hMPClientReg, STR_CLIENT_REGISTRY_VALUE_NAME, 0,
&dwReadType, reinterpret_cast<unsigned char*>(strPath), &dwReadLens) == ERROR_SUCCESS)
{
strPath[MAX_PATH - 1] = 0;
m_strRYLFolder.SetString(strPath);
}
RegCloseKey(hMPClientReg);
}
else
{
MessageBox(RYLLoginGetMessage(LOGIN_MSG_CLIENT_NOT_INSTALLED));
}
}
void CMSGDialog::InitWebBrowser(void)
{
m_WebPage.Create(NULL, NULL, (WS_CHILD | WS_VISIBLE ),
CRect(32, 111, 567, 418), this, IDR_WEBVIEW, NULL);
m_WebPage.Navigate(m_strRYLFolder + "/Notice/default1.html");
}
void CMSGDialog::InitInterface(void)
{
#ifdef _NATION_GM_
m_btmBase.LoadBitmap(IDB_BITMAP_MSG);
m_Ok.SetBitmap(IDB_BITMAP_MSGOK0, IDB_BITMAP_MSGOK1, IDB_BITMAP_MSGOK2);
m_Cancel.SetBitmap(IDB_BITMAP_MSGNO0, IDB_BITMAP_MSGNO1, IDB_BITMAP_MSGNO2);
#endif
}
void CMSGDialog::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (IsIconic())
{
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
// kidleon@kronet.net
//dc.DrawIcon(x, y, m_hIcon);
}
else
{
CRect rect;
GetClientRect(&rect);
CMemDC pDC( &dc, rect);
RenderBack( pDC, m_btmBase, 0, 0 );
CDialog::OnPaint();
}
}
void CMSGDialog::RenderBack( CDC &rDC, CBitmap &rBitmap, int Px, int Py , int SizeX, int SizeY )
{
CDC memDC;
memDC.CreateCompatibleDC(&rDC);
CBitmap *pOldBitmap = memDC.SelectObject(&rBitmap);
CSize sBitmap = rBitmap.GetBitmapDimension();
BITMAP bmInfo;
rBitmap.GetBitmap(&bmInfo);
if( SizeX == -1 && SizeY == -1 )
{
rDC.BitBlt(Px,Py,bmInfo.bmWidth,bmInfo.bmHeight,&memDC,0,0,SRCCOPY);
}
else
{
rDC.BitBlt(Px,Py,SizeX,SizeY,&memDC,0,0,SRCCOPY);
}
memDC.SelectObject(pOldBitmap);
}
void CMSGDialog::OnLButtonDown(UINT nFlags, CPoint point)
{
PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y) );
CDialog::OnLButtonDown(nFlags, point);
}
void CMSGDialog::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnMouseMove(nFlags, point);
}

View File

@@ -0,0 +1,48 @@
#pragma once
#include "HtmlCtrl.h"
#include "afxwin.h"
#include "ZBitmapButton.h"
#include "CISBitmap.h"
#include "RYLLOGIN_DEFINITIONS.H"
#include "Resource.h"
// CMSGDialog <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
class CMSGDialog : public CDialog
{
DECLARE_DYNAMIC(CMSGDialog)
public:
CMSGDialog(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CMSGDialog();
// Generated message map functions
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
void RenderBack( CDC &rDC, CBitmap &rBitmap, int Px, int Py , int SizeX = -1 , int SizeY = -1 );
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_DIALOG_MSG };
void InitClientFoloder(void);
void InitWebBrowser(void);
void InitInterface(void);
protected:
CString m_strRYLFolder;
CHtmlCtrl m_WebPage;
CCISBitmap m_btmBase;
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
public:
CZBitmapButton m_Ok;
CZBitmapButton m_Cancel;
};

300
Tools/Launcher/RYLLogin.cpp Normal file
View File

@@ -0,0 +1,300 @@
// RYLLogin.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "RYLLogin.h"
#include "RYLLoginDlg.h"
#include "DlgRegionSelect.h"
#include "SimpleHTTPFile.h"
#if defined(_NATION_KR_) && !defined(_DEBUG)
#include "MyFirewall.h"
#pragma comment( lib, "MyFireWallMT.lib" )
#endif
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CRYLLoginApp
BEGIN_MESSAGE_MAP(CRYLLoginApp, CWinApp)
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
// CRYLLoginApp construction
CRYLLoginApp::CRYLLoginApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
m_hDefaultResource = NULL;
m_hDLLResource = NULL;
}
// The one and only CRYLLoginApp object
CRYLLoginApp theApp;
void SetDefaultResource()
{
theApp.SetDefaultResource();
}
void SetDllResource()
{
theApp.SetDllResource();
}
BOOL CreateReg(HKEY hReg)
{
TCHAR strPath[MAX_PATH], strTemp[MAX_PATH];
GetModuleFileName(NULL, strPath, sizeof(strPath));
TCHAR* pLastToken = NULL;
pLastToken = strrchr( strPath, '\\' );
if( NULL == pLastToken )
{
pLastToken = strrchr( strPath, '/' );
if( NULL == pLastToken )
{
return FALSE;
}
}
int nPathLen = pLastToken - strPath;
strncpy( strTemp, strPath, nPathLen );
strTemp[nPathLen] = '\0';
long lResult;
lResult = RegSetValueEx(hReg, STR_CLIENT_REGISTRY_VALUE_NAME, 0, REG_SZ, (LPBYTE)strTemp, (unsigned long)strlen(strTemp));
if(ERROR_SUCCESS != lResult)
{
wsprintf( strTemp, "Error %d", lResult );
AfxMessageBox( strTemp );
return FALSE;
}
return TRUE;
}
// CRYLLoginApp initialization
//#include "../GlobalScript/Network/clientsocket/LoginSocket.h"
BOOL CRYLLoginApp::InitInstance()
{
// InitCommonControls() is required on Windows XP if an application
// manifest specifies use of ComCtl32.dll version 6 or later to enable
// visual styles. Otherwise, any window creation will fail.
// <20>߱<EFBFBD> iKeeper <20><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ<EFBFBD>ڵ<EFBFBD>
// HWND hWndTmp = CreateWindow("button", "<22><>", WS_OVERLAPPEDWINDOW,
// CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, NULL, NULL);
// ShowWindow( hWndTmp, SW_SHOW );
// UpdateWindow( hWndTmp );
//
//
// LoginSocket* pLoginSocket = new LoginSocket( hWndTmp );
// pLoginSocket->ConnectToLoginServer( "61.152.255.22" );
InitCommonControls();
CWinApp::InitInstance();
AfxEnableControlContainer();
#if defined(_NATION_KR_) && !defined(_DEBUG)
myfirewall::On();
#endif
INT_PTR nResponse;
CRYLLoginDlg* pDlg;
int nLoginServerDomainIndex = -1;
m_hDefaultResource = AfxGetResourceHandle();
m_hDLLResource = LoadLibrary( "LoginRes.dll" );
#if defined( _NATION_CN_ )
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>
char szTmp[300];
HKEY hMPClientReg;
long lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, STR_CLIENT_REGISTRY_SUBKEY, 0, KEY_READ, &hMPClientReg);
if (ERROR_SUCCESS != lResult)
{
if(ERROR_FILE_NOT_FOUND == lResult)
{
unsigned long dwDisp = 0;
lResult = RegCreateKeyEx(HKEY_LOCAL_MACHINE, STR_CLIENT_REGISTRY_SUBKEY, 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hMPClientReg, &dwDisp);
if(ERROR_SUCCESS != lResult)
{
wsprintf( szTmp, "Error %d", lResult );
AfxMessageBox( szTmp );
return FALSE;
}
if(FALSE == CreateReg(hMPClientReg))
{
RegCloseKey(hMPClientReg);
return FALSE;
}
}
else
{
wsprintf( szTmp, "Error %d", lResult );
AfxMessageBox( szTmp );
return FALSE;
}
}
RegCloseKey(hMPClientReg);
#endif
#if defined( _NATION_CN_ )
// <20>߱<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD> <20>ڵ<EFBFBD>
char szLauncherPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH, szLauncherPath);
szLauncherPath[MAX_PATH - 1] = 0;
CString strRegionListFile(szLauncherPath);
strRegionListFile.Append("\\locallist.dat");
CSimpleHTTPFile httpFile;
if (!httpFile.Init())
{
return false;
}
bool bSucceeded = false;
while (!bSucceeded)
{
DeleteFile(strRegionListFile);
httpFile.TransferFile(STR_REGION_LIST_URL, strRegionListFile);
HANDLE hFile = CreateFile(strRegionListFile,
GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
if (INVALID_HANDLE_VALUE == hFile)
{
if (IDNO == AfxMessageBox("Failed to get Region List. Try Again ?", MB_YESNO))
{
return false;
}
}
else
{
CloseHandle(hFile);
bSucceeded = true;
}
}
httpFile.Close();
CDlgRegionSelect* pDlgRegionSelect = new CDlgRegionSelect;
ParseRegionList(pDlgRegionSelect, strRegionListFile);
DeleteFile(strRegionListFile);
// region selection dialog
nResponse = pDlgRegionSelect->DoModal();
nLoginServerDomainIndex = pDlgRegionSelect->m_nRegionIndex;
delete pDlgRegionSelect;
if( nLoginServerDomainIndex >= m_vecDomainName.size() )
{
AfxMessageBox( "Error in Region List", MB_OK );
nResponse = IDCANCEL;
}
if (IDCANCEL == nResponse)
{
SetDefaultResource();
FreeLibrary( m_hDLLResource );
return false;
}
#endif // defined( _NATION_CN_ )
pDlg = new CRYLLoginDlg;
m_pMainWnd = pDlg;
pDlg->SetDefaultLoginServerAddress(
(nLoginServerDomainIndex < 0 || m_vecDomainName.size() < static_cast<size_t>(nLoginServerDomainIndex))
? STR_LOGIN_SERVER_ADDR
: m_vecDomainName[nLoginServerDomainIndex]);
nResponse = pDlg->DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
delete pDlg;
#if defined(_NATION_KR_) && !defined(_DEBUG)
myfirewall::Off();
#endif
SetDefaultResource();
FreeLibrary( m_hDLLResource );
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
void CRYLLoginApp::ParseRegionList(CDlgRegionSelect* pDlgRegionSelect, const char* szFileName)
{
FILE* fp = fopen(szFileName, "rt");
if (0 != fp)
{
const int MAX_DATALEN = 300;
char szTmp[MAX_DATALEN];
char szRegionName[MAX_DATALEN], szDomainName[MAX_DATALEN];
while(0 != fgets(szTmp, MAX_DATALEN, fp))
{
szTmp[MAX_DATALEN - 1] = 0;
sscanf(szTmp, "%s\t%s", szRegionName, szDomainName);
m_vecDomainName.push_back(CString(szDomainName));
pDlgRegionSelect->m_vec_strRegionName.push_back(CString(szRegionName));
}
fclose(fp);
}
}

58
Tools/Launcher/RYLLogin.h Normal file
View File

@@ -0,0 +1,58 @@
// RYLLogin.h : main header file for the PROJECT_NAME application
//
#pragma once
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
#include <vector>
#include "DlgRegionSelect.h"
//////////////////////////////////////////////////////////////////////////
void SetDefaultResource();
void SetDllResource();
// CRYLLoginApp:
// See RYLLogin.cpp for the implementation of this class
//
class CRYLLoginApp : public CWinApp
{
public:
CRYLLoginApp();
void ParseRegionList( CDlgRegionSelect* pDlgRegionSelect, const char* szFileName );
void SetDefaultResource()
{
AfxSetResourceHandle( m_hDefaultResource );
}
void SetDllResource()
{
AfxSetResourceHandle( m_hDLLResource );
}
// Overrides
public:
virtual BOOL InitInstance();
// Implementation
DECLARE_MESSAGE_MAP()
protected:
std::vector<CString> m_vecDomainName;
HINSTANCE m_hDefaultResource;
HINSTANCE m_hDLLResource;
};
extern CRYLLoginApp theApp;

280
Tools/Launcher/RYLLogin.rc Normal file
View File

@@ -0,0 +1,280 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
#ifdef _WIN32
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
#pragma code_page(949)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
"LANGUAGE 9, 1\r\n"
"#pragma code_page(1252)\r\n"
"#include ""res\\RYLLogin.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#include ""afxres.rc"" // Standard components\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_SEVERSELECT_DIALOG DIALOGEX 0, 0, 186, 90
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_SYSMENU
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
END
IDD_DIALOG_SPLASH DIALOGEX 0, 0, 188, 90
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
END
IDD_DIALOG_REGIONSELECT DIALOGEX 0, 0, 186, 90
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LISTBOX IDC_LIST2,103,14,54,47,LBS_SORT | LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_TABSTOP
END
IDD_DIALOG_MSG DIALOGEX 0, 0, 186, 90
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CONTROL "Ȯ<><C8AE>",IDOK,"Button",BS_OWNERDRAW | WS_TABSTOP,33,69,50,
14
CONTROL "<22><><EFBFBD><EFBFBD>",IDCANCEL,"Button",BS_OWNERDRAW | WS_TABSTOP,98,69,
50,14
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_SEVERSELECT_DIALOG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 83
END
IDD_DIALOG_SPLASH, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 181
TOPMARGIN, 7
BOTTOMMARGIN, 83
END
IDD_DIALOG_REGIONSELECT, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 83
END
IDD_DIALOG_MSG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 83
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_MAINFRAME ICON "res\\mainfram.ico"
#endif // <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// <20><><EFBFBD><EFBFBD>(<28>̱<EFBFBD>) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_RYLLOGIN_DIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
EXSTYLE WS_EX_APPWINDOW
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
CONTROL "New Account",IDC_BUTTON_NEWACC,"Button",BS_OWNERDRAW |
WS_TABSTOP,240,174,72,18
CONTROL "Password",IDC_BUTTON_PSW,"Button",BS_OWNERDRAW |
WS_TABSTOP,240,158,72,18
CONTROL "Setup",IDC_BUTTON_SETUP,"Button",BS_OWNERDRAW |
WS_TABSTOP,2,121,72,18
CONTROL "Music",IDC_BUTTON_MUSIC,"Button",BS_OWNERDRAW |
WS_TABSTOP,2,157,72,18
CONTROL "File Check",IDC_BUTTON_FILECHECK,"Button",BS_OWNERDRAW |
WS_TABSTOP,2,139,72,18
CONTROL "End",IDC_BUTTON_END,"Button",BS_OWNERDRAW | WS_TABSTOP,
2,174,72,18
LTEXT "Static",IDC_STATIC_LOGINTEXT,109,115,184,19
LTEXT "Static",IDC_STATIC_VERSIONVIEW,21,4,63,13,NOT
WS_VISIBLE
CONTROL "Start",IDC_BUTTON_START,"Button",BS_OWNERDRAW |
WS_TABSTOP,74,174,72,18
LISTBOX IDC_LIST_SERVER2,206,4,106,66,LBS_NOINTEGRALHEIGHT | NOT
WS_BORDER | WS_VSCROLL | WS_TABSTOP
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_RYLLOGIN_DIALOG, DIALOG
BEGIN
LEFTMARGIN, 2
RIGHTMARGIN, 312
TOPMARGIN, 4
BOTTOMMARGIN, 192
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904e4"
BEGIN
VALUE "CompanyName", "Youxiland Co. Ltd."
VALUE "FileDescription", "Client Login Program"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "Login.dat"
VALUE "LegalCopyright", "Copyright (C) 2004 Youxiland Co. Ltd. All rights reserved."
VALUE "OriginalFilename", "Login.dat"
VALUE "ProductName", "Client Login Program"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
/////////////////////////////////////////////////////////////////////////////
//
// RT_MANIFEST
//
IDR_MANIFEST RT_MANIFEST "res\\RYLLogin.manifest"
#endif // <20><><EFBFBD><EFBFBD>(<28>̱<EFBFBD>) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE 9, 1
#pragma code_page(1252)
#include "res\RYLLogin.rc2" // non-Microsoft Visual C++ edited resources
#include "afxres.rc" // Standard components
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,225 @@
// RYLLoginDlg.h : header file
//
#pragma once
#include "MSGDialog.h"
#include "afxwin.h"
#include "ZBitmapButton.h"
#include "CISBitmap.h"
#include "GradientStatic.h"
#include "DlgServerSelect.h"
#include <Network/clientsocket/LoginSocket.h>
#include <Network/Packet/PacketStruct/ServerInfo.h>
#include "UpdateManager.h"
#include "memdc.h"
#include "SplashDlg.h"
#include "RYLLOGIN_DEFINITIONS.H"
#include "tranlistbox.h"
#include <list>
// forward decl.
class ISoundObject;
enum ConnectionState
{
CS_IDLE,
CS_START,
CS_FILEINFOGATHERING,
CS_PATCHDOWN,
CS_DECOMPRESS,
CS_SERVERSELECT,
};
class ILoginDlgCommand
{
public:
virtual ~ILoginDlgCommand() { }
virtual bool IsProcessNow(DWORD dwCurrentTime) { return true; }
virtual bool ProcessCommand() = 0;
};
// CRYLLoginDlg dialog
class CRYLLoginDlg : public CDialog
{
// Construction
public:
CRYLLoginDlg(CWnd* pParent = NULL);
enum { IDD = IDD_RYLLOGIN_DIALOG };
protected:
// DDX/DDV support
virtual void DoDataExchange(CDataExchange* pDX);
// Generated message map functions
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
afx_msg void OnBnClickedButtonNewacc();
afx_msg void OnBnClickedButtonPsw();
afx_msg void OnBnClickedButtonEnd();
afx_msg void OnMove(int x, int y);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnBnClickedButtonMusic();
afx_msg void OnBnClickedButtonFilecheck();
afx_msg void OnBnClickedButtonSetup();
afx_msg LRESULT OnRylLauncherShutdown(WPARAM,LPARAM);
afx_msg void OnDestroy();
afx_msg void OnBnClickedButtonStart();
afx_msg void OnLbnSelchangeListServer();
afx_msg void OnLbnDblclkListServer();
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
public:
bool IsServerClosed() { return m_bServerClosed; }
void RenderBack( CDC &rDC, CBitmap &rBitmap, int Px, int Py, int SizeX = -1 , int SizeY = -1 );
void RenderAni( CDC &rDC, CBitmap &rBitmap, int Px, int Py , int SizeX, int SizeY, int nAniNum );
void PlayBGM(void);
void InitClientFoloder(void);
void InitInterface(void);
void InitWebBrowser(void);
bool UpdateFile(bool bFileCheck = false); // '<27><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>˻<EFBFBD>'<27>ÿ<EFBFBD><C3BF><EFBFBD> <20>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>Ͱ<EFBFBD> true
void Execute(CString strExec, BOOL bWait);
void ExecuteClient(int nServer);
DWORD GetLocalClientVersion();
void SetClientVer(DWORD dwVer);
DWORD WaitForWebPageCreated(DWORD dwMilliseconds = INFINITE) const
{ return WaitForSingleObject(m_hWebPageCreated, dwMilliseconds); }
void SetLoginDisplayText(const char* szText, bool bInvalidate = true)
{
m_stcLoginDisplay.SetWindowText(szText);
if (bInvalidate) { m_stcLoginDisplay.Invalidate(); }
}
void SetDefaultLoginServerAddress(const char* szLoginAddress)
{ m_strDefaultLoginServerAddr.SetString(szLoginAddress); }
bool ConnectToLoginServer();
bool RequestServerList();
bool ProcessServerList(DWORD dwClientVersionFromServer,
const char* szPatchAddressFromLoginServer, const SERVER_LIST& serverList);
LoginSocket* GetLoginSocket() { return m_pLoginSocket; }
void PutCommand(ILoginDlgCommand* lpLoginDlgCommand) { m_LoginDlgCommandList.push_back(lpLoginDlgCommand); }
// <20><>ġ<EFBFBD><C4A1> <20>Ϸᰡ <20>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD> Ȯ<><C8AE>.
bool GetPatchComplete() { return m_bPatchComplete; }
void SetPatchComplete(bool bPatchComplete) { m_bPatchComplete = bPatchComplete; }
private:
typedef std::list<ILoginDlgCommand*> LoginDlgCommandList;
LoginDlgCommandList m_LoginDlgCommandList;
// Graphic variables
CZBitmapButton m_btnNewAcc;
CZBitmapButton m_btnPsw;
CZBitmapButton m_btnSetup;
CZBitmapButton m_btnFileCheck;
CZBitmapButton m_btnMusic;
CZBitmapButton m_btnEnd;
CZBitmapButton m_btnServerStart;
CGradientStatic m_stcLoginDisplay;
CGradientStatic m_stcVersionView;
CTranListBox m_ServerList;
CHtmlCtrl m_WebPage;
CCISBitmap m_btmBase;
CBitmap m_btmFILE;
CBitmap m_btmFTP;
CBitmap m_btmPatching;
CBitmap m_btmComplete;
CBitmap m_btmLoging;
CBitmap m_btmAlarmAni;
CDC m_memDC;
CDC m_BkDC;
CBitmap m_BkBitmap;
CSplashDlg m_dlgSplash;
CRect m_rt;
HICON m_hIcon;
#ifdef _TW_
CMSGDialog* m_TMsgDlg;
#endif
// String variable
CString m_strRYLFolder;
CString m_strLoginServerAddrFromRegistry;
CString m_strPatchUrlFromRegistry;
CString m_strDefaultLoginServerAddr;
CString m_strPatchUrlFromLoginServer;
CUpdateManager m_UpdateManager;
CFont *m_pBoldFont;
ISoundObject *m_pStreamSound;
LoginSocket *m_pLoginSocket;
CBitmap *m_pOldBitmap;
const char *m_szVersionSignature;
SERVER_LIST m_ServerListData;
DEVMODE m_DeviceMode;
HANDLE m_hWebPageCreated;
volatile ConnectionState m_ConnectionState;
float m_fBlueProgressPercentage;
float m_fRedProgressPercentage;
DWORD m_dwLocalClientVersion;
DWORD m_dwServerClientVersion;
int m_nLoginProcess;
int m_nFade;
int m_nUpdateAni;
int m_nUpdateLogoAni;
int m_nShowRateServerSelectDlg;
int m_nServerClass;
bool m_bFileCheck; // file check <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD> <20>ڽ<EFBFBD> <20><><EFBFBD><EFBFBD>
bool m_bServerClosed;
bool m_bPatchComplete;
bool m_bCheckSetup;
bool m_bCheckSucLoginData;
bool m_bBGMPlay;
bool m_bUpdating;
bool m_bShowServerSelectDlg;
};

View File

@@ -0,0 +1,585 @@
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="Launcher"
ProjectGUID="{70519950-FC18-40F0-9AC8-68B552D9CFA2}"
RootNamespace="Launcher"
SccProjectName=""
SccLocalPath=""
Keyword="MFCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Release|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="1"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="4"
AdditionalIncludeDirectories="./;../;../../Client/GlobalScript;../PatchCommon;../ZipArchive/Include;../../Client/RYLClient/MyFirewall"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_REGULAR_"
RuntimeLibrary="0"
PrecompiledHeaderFile=".\Release/RYLLogin_P2_foreign.pch"
AssemblerOutput="2"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="dxguid.lib dsound.lib Ws2_32.lib ogg_static.lib vorbis_static.lib vorbisenc_static.lib vorbisfile_static.lib wininet.lib soundlib.lib ZipArchive_MFCSTATIC.lib"
OutputFile="$(ConfigurationName)/Login.new"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="../SoundLib/Lib;../ZipArchive/Lib;../../Engine/SoundLib/vorbis_sdk/lib;../../Client/RYLClient/MyFirewall"
ProgramDatabaseFile=".\Release/Login.pdb"
GenerateMapFile="TRUE"
MapFileName=".\Release/Login.map"
SubSystem="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="TRUE"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
TypeLibraryName=".\Release/RYLLogin_P2_foreign.tlb"
HeaderFileName=""/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1042"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="1"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="./;../;../../Client/GlobalScript;../PatchCommon;../ZipArchive/Include;../../Client/RYLClient/MyFirewall"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_REGULAR_"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\Debug/RYLLogin_P2_foreign.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="dxguid.lib dsound.lib dxerr8.lib Ws2_32.lib ogg_static_d.lib vorbis_static_d.lib vorbisenc_static_d.lib vorbisfile_static_d.lib wininet.lib soundlib_d.lib ZipArchive_MFCSTATIC_d.lib "
OutputFile="$(ConfigurationName)/Login.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="../SoundLib/Lib;../ZipArchive/Lib;../../Engine/SoundLib/vorbis_sdk/lib;../../Client/RYLClient/MyFirewall"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\Debug/Login.pdb"
SubSystem="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="TRUE"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
TypeLibraryName=".\Debug/RYLLogin_P2_foreign.tlb"
HeaderFileName=""/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1042"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
<File
RelativePath="CISBitmap.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="DataDefine.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="DlgRegionSelect.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="GradientStatic.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="HtmlCtrl.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="HTTPFile.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="InitValue.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath=".\MSGDialog.cpp">
</File>
<File
RelativePath="RenderOption.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="RYLLogin.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="RYLLogin.rc">
</File>
<File
RelativePath="RYLLoginDlg.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="SimpleHTTPFile.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="SplashDlg.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="StatLink.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="StdAfx.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
UsePrecompiledHeader="1"
PrecompiledHeaderThrough="stdafx.h"/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"
UsePrecompiledHeader="1"
PrecompiledHeaderThrough="stdafx.h"/>
</FileConfiguration>
</File>
<File
RelativePath="TranListBox.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="UpdateManager.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
<File
RelativePath="ZBitmapButton.cpp">
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
BasicRuntimeChecks="3"/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl">
<File
RelativePath="BaseDataDefine.h">
</File>
<File
RelativePath="CISBitmap.h">
</File>
<File
RelativePath="DlgRegionSelect.h">
</File>
<File
RelativePath="GradientStatic.h">
</File>
<File
RelativePath="HtmlCtrl.h">
</File>
<File
RelativePath="HTTPFile.h">
</File>
<File
RelativePath="HyprLink.h">
</File>
<File
RelativePath="InitValue.h">
</File>
<File
RelativePath="List.h">
</File>
<File
RelativePath="memdc.h">
</File>
<File
RelativePath=".\MSGDialog.h">
</File>
<File
RelativePath="RenderOption.h">
</File>
<File
RelativePath="Resource.h">
</File>
<File
RelativePath="RYLLogin.h">
</File>
<File
RelativePath="RYLLOGIN_DEFINITIONS.H">
</File>
<File
RelativePath="RYLLoginDlg.h">
</File>
<File
RelativePath="SimpleHTTPFile.h">
</File>
<File
RelativePath="SplashDlg.h">
</File>
<File
RelativePath="StatLink.h">
</File>
<File
RelativePath="StdAfx.h">
</File>
<File
RelativePath="TranListBox.h">
</File>
<File
RelativePath="UpdateManager.h">
</File>
<File
RelativePath="ZBitmapButton.h">
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
<File
RelativePath="res\mainfram.ico">
</File>
<File
RelativePath="mainfram.ico">
</File>
<File
RelativePath="res\RYLLogin.ico">
</File>
<File
RelativePath="res\RYLLogin.rc2">
</File>
</Filter>
<File
RelativePath="res\RYLLogin.manifest">
</File>
</Files>
<Globals>
<Global
Name="RESOURCE_FILE"
Value="RYLLogin.rc"/>
</Globals>
</VisualStudioProject>

View File

@@ -0,0 +1,342 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Template|Win32">
<Configuration>Template</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>Launcher</ProjectName>
<ProjectGuid>{70519950-FC18-40F0-9AC8-68B552D9CFA2}</ProjectGuid>
<RootNamespace>Launcher</RootNamespace>
<SccProjectName />
<SccLocalPath />
<Keyword>MFCProj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Static</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Template|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Template|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Template|Win32'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>./;../;../../Client/GlobalScript;../PatchCommon;../ZipArchive/Include;../../Client/RYLClient/MyFirewall;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_REGULAR_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeaderOutputFile>.\Release/RYLLogin_P2_foreign.pch</PrecompiledHeaderOutputFile>
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>.\Release/</AssemblerListingLocation>
<ObjectFileName>.\Release/</ObjectFileName>
<ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>dxguid.lib;dsound.lib;Ws2_32.lib;ogg_static.lib;vorbis_static.lib;vorbisenc_static.lib;vorbisfile_static.lib;wininet.lib;soundlib.lib;ZipArchive_MFCSTATIC.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(Configuration)/Login.new</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>../SoundLib/Lib;../ZipArchive/Lib;../../Engine/SoundLib/vorbis_sdk/lib;../../Client/RYLClient/MyFirewall;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ProgramDatabaseFile>.\Release/Login.pdb</ProgramDatabaseFile>
<GenerateMapFile>true</GenerateMapFile>
<MapFileName>.\Release/Login.map</MapFileName>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<TypeLibraryName>.\Release/RYLLogin_P2_foreign.tlb</TypeLibraryName>
<HeaderFileName>
</HeaderFileName>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0412</Culture>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>./;../;../../Client/GlobalScript;../PatchCommon;../ZipArchive/Include;../../Client/RYLClient/MyFirewall;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_REGULAR_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeaderOutputFile>.\Debug/RYLLogin_P2_foreign.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
<ObjectFileName>.\Debug/</ObjectFileName>
<ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>dxguid.lib;dsound.lib;dxerr8.lib;Ws2_32.lib;ogg_static_d.lib;vorbis_static_d.lib;vorbisenc_static_d.lib;vorbisfile_static_d.lib;wininet.lib;soundlib_d.lib;ZipArchive_MFCSTATIC_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(Configuration)/Login.exe</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>../SoundLib/Lib;../ZipArchive/Lib;../../Engine/SoundLib/vorbis_sdk/lib;../../Client/RYLClient/MyFirewall;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\Debug/Login.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<TypeLibraryName>.\Debug/RYLLogin_P2_foreign.tlb</TypeLibraryName>
<HeaderFileName>
</HeaderFileName>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0412</Culture>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="CISBitmap.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="DataDefine.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="DlgRegionSelect.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="GradientStatic.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="HtmlCtrl.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="HTTPFile.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="InitValue.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="MSGDialog.cpp" />
<ClCompile Include="RenderOption.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="RYLLogin.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="RYLLoginDlg.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="SimpleHTTPFile.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="SplashDlg.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="StatLink.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="StdAfx.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">stdafx.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">stdafx.h</PrecompiledHeaderFile>
</ClCompile>
<ClCompile Include="TranListBox.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="UpdateManager.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="ZBitmapButton.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="RYLLogin.rc" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="BaseDataDefine.h" />
<ClInclude Include="CISBitmap.h" />
<ClInclude Include="DlgRegionSelect.h" />
<ClInclude Include="GradientStatic.h" />
<ClInclude Include="HtmlCtrl.h" />
<ClInclude Include="HTTPFile.h" />
<ClInclude Include="HyprLink.h" />
<ClInclude Include="InitValue.h" />
<ClInclude Include="List.h" />
<ClInclude Include="memdc.h" />
<ClInclude Include="MSGDialog.h" />
<ClInclude Include="RenderOption.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="RYLLogin.h" />
<ClInclude Include="RYLLOGIN_DEFINITIONS.H" />
<ClInclude Include="RYLLoginDlg.h" />
<ClInclude Include="SimpleHTTPFile.h" />
<ClInclude Include="SplashDlg.h" />
<ClInclude Include="StatLink.h" />
<ClInclude Include="StdAfx.h" />
<ClInclude Include="TranListBox.h" />
<ClInclude Include="UpdateManager.h" />
<ClInclude Include="ZBitmapButton.h" />
</ItemGroup>
<ItemGroup>
<None Include="res\mainfram.ico" />
<None Include="mainfram.ico" />
<None Include="res\RYLLogin.ico" />
<None Include="res\RYLLogin.rc2" />
</ItemGroup>
<ItemGroup>
<Manifest Include="res\RYLLogin.manifest" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Client\GlobalScript\GlobalScript.vcxproj">
<Project>{fc216d91-d7ae-44c9-be1f-86544b1ad594}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\PatchCommon\PatchCommon.vcxproj">
<Project>{69c31401-5a6b-4288-9dd5-72566af594cd}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties RESOURCE_FILE="RYLLogin.rc" />
</VisualStudio>
</ProjectExtensions>
</Project>

View File

@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{8d9b8813-c7ec-44a9-ba09-52aeb1417a5e}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{da603088-a2d8-4942-90d9-5fe88c346e08}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{1c1763a1-c54c-4c46-91d7-b7f95a1d9daa}</UniqueIdentifier>
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="CISBitmap.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DataDefine.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="DlgRegionSelect.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="GradientStatic.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="HtmlCtrl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="HTTPFile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="InitValue.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="MSGDialog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="RenderOption.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="RYLLogin.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="RYLLoginDlg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SimpleHTTPFile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SplashDlg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="StatLink.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="StdAfx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="TranListBox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="UpdateManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="ZBitmapButton.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="RYLLogin.rc">
<Filter>Source Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="BaseDataDefine.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="CISBitmap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="DlgRegionSelect.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="GradientStatic.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="HtmlCtrl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="HTTPFile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="HyprLink.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="InitValue.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="List.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="memdc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MSGDialog.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="RenderOption.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="RYLLogin.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="RYLLOGIN_DEFINITIONS.H">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="RYLLoginDlg.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="SimpleHTTPFile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="SplashDlg.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="StatLink.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="StdAfx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="TranListBox.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="UpdateManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ZBitmapButton.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="res\mainfram.ico">
<Filter>Resource Files</Filter>
</None>
<None Include="mainfram.ico">
<Filter>Resource Files</Filter>
</None>
<None Include="res\RYLLogin.ico">
<Filter>Resource Files</Filter>
</None>
<None Include="res\RYLLogin.rc2">
<Filter>Resource Files</Filter>
</None>
</ItemGroup>
<ItemGroup>
<Manifest Include="res\RYLLogin.manifest" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,279 @@
// RenderOption.cpp: implementation of the CRenderOption class.
//
//////////////////////////////////////////////////////////////////////
#include <windows.h>
#include "RenderOption.h"
#include "BaseDataDefine.h"
#include <stdio.h>
#include <string>
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
int CRenderOption::m_GrassRendering = 1;
int CRenderOption::m_GrassAnimationUseVertexShader = 0;
int CRenderOption::m_GrassRenderRange = 9;
int CRenderOption::m_RangeGrassRender = 0;
int CRenderOption::m_FullSceneGlare = 0;
int CRenderOption::m_FullSceneAnti = 0;
int CRenderOption::m_FullSceneSpecularGlare = 0;
int CRenderOption::m_WaterBumpEnvRendering = 0;
int CRenderOption::m_TerrainMultiDetalTexture = 1;
int CRenderOption::m_TerrainRange = 7;
int CRenderOption::m_BuildingLightmap = 1;
int CRenderOption::m_TreeAnimation = 1;
int CRenderOption::m_CharacterPerPixelLighting = 0;
int CRenderOption::m_CharacterPerPixelSpecularLighting = 0;
int CRenderOption::m_CharacterSelfShadow = 0;
int CRenderOption::m_DepthOfField = 0;
int CRenderOption::m_CharacterProjectShadowTerrain = 1;
int CRenderOption::m_CharacterProjectShadowBuilding = 1;
int CRenderOption::m_ObjectLOD = 4;
int CRenderOption::m_TextureMethod = 1;
char CRenderOption::m_strBaseGraphicsDataPath[256];
int CRenderOption::m_ObjectProjectShadow = 0;
int CRenderOption::m_TreeProjectShadow = 0;
int CRenderOption::m_ScreenFilter = 0;
int CRenderOption::m_BSPDiffusePerPixel = 0;
int CRenderOption::m_BSPSpecularPerPixel = 0;
int CRenderOption::m_AllObjectBump = 0;
int CRenderOption::m_bWeather = 0;
int CRenderOption::m_bFullSceneEffect = 0;
//bool CRenderOption::LoadZoneInfo(CRenderOption::ZoneInfo *); // <20> info File Load
CRenderOption::CRenderOption()
{
}
CRenderOption::~CRenderOption()
{
}
bool CRenderOption::Save(HKEY &hReg)
{
if(!hReg) return false;
long lResult;
// long lResult = RegDeleteValue(hReg, "RenderOption");
// if(lResult != ERROR_SUCCESS) return false;
unsigned long dwRegValue[23];
dwRegValue[0] = m_GrassRendering;
dwRegValue[1] = m_GrassAnimationUseVertexShader;
dwRegValue[2] = m_GrassRenderRange;
dwRegValue[3] = m_RangeGrassRender;
dwRegValue[4] = m_FullSceneGlare;
dwRegValue[5] = m_FullSceneAnti;
dwRegValue[6] = m_FullSceneSpecularGlare;
dwRegValue[7] = m_WaterBumpEnvRendering;
dwRegValue[8] = m_TerrainMultiDetalTexture;
dwRegValue[9] = m_TerrainRange;
dwRegValue[10] = m_BuildingLightmap;
dwRegValue[11] = m_TreeAnimation;
dwRegValue[12] = m_CharacterPerPixelLighting;
dwRegValue[13] = m_CharacterPerPixelSpecularLighting;
dwRegValue[14] = m_CharacterSelfShadow;
dwRegValue[15] = m_DepthOfField;
dwRegValue[16] = m_CharacterProjectShadowTerrain;
dwRegValue[17] = m_CharacterProjectShadowBuilding;
dwRegValue[18] = m_ObjectLOD;
dwRegValue[19] = m_TextureMethod;
dwRegValue[20] = m_ScreenFilter;
dwRegValue[21] = m_bWeather;
dwRegValue[22] = m_bFullSceneEffect;
lResult = RegSetValueEx(hReg, "RenderOption", 0, REG_BINARY, (LPBYTE)&dwRegValue, sizeof(dwRegValue));
if(lResult == ERROR_SUCCESS) return true;
return false;
}
/* FILE *fp=fopen(strFilename,"wb");
if(fp)
{
fwrite(&m_GrassRendering,sizeof(int), 1, fp);
fwrite(&m_GrassAnimationUseVertexShader,sizeof(int), 1, fp);
fwrite(&m_GrassRenderRange,sizeof(int), 1, fp);
fwrite(&m_RangeGrassRender,sizeof(int), 1, fp);
fwrite(&m_FullSceneGlare,sizeof(int), 1, fp);
fwrite(&m_FullSceneAnti,sizeof(int), 1, fp);
fwrite(&m_FullSceneSpecularGlare,sizeof(int), 1, fp);
fwrite(&m_WaterBumpEnvRendering,sizeof(int), 1, fp);
fwrite(&m_TerrainMultiDetalTexture,sizeof(int), 1, fp);
fwrite(&m_TerrainRange,sizeof(int), 1, fp);
fwrite(&m_BuildingLightmap,sizeof(int), 1, fp);
fwrite(&m_TreeAnimation,sizeof(int), 1, fp);
fwrite(&m_CharacterPerPixelLighting,sizeof(int), 1, fp);
fwrite(&m_CharacterPerPixelSpecularLighting,sizeof(int), 1, fp);
fwrite(&m_CharacterSelfShadow,sizeof(int), 1, fp);
fwrite(&m_DepthOfField,sizeof(int), 1, fp);
fwrite(&m_CharacterProjectShadowTerrain,sizeof(int), 1, fp);
fwrite(&m_CharacterProjectShadowBuilding,sizeof(int), 1, fp);
fwrite(&m_ObjectLOD,sizeof(int), 1, fp);
fwrite(&m_TextureMethod,sizeof(int), 1, fp);
fwrite(&m_ScreenFilter,sizeof(int), 1, fp);
fclose(fp);
}
}*/
bool CRenderOption::Load(HKEY &hReg)
{
if(!hReg) return false;
unsigned long dwRegValue[23], dwReadLens = sizeof(dwRegValue);
long lResult = RegQueryValueEx(hReg, "RenderOption", 0, NULL, (LPBYTE)&dwRegValue, &dwReadLens);
if(lResult != ERROR_SUCCESS) return false;
m_GrassRendering = dwRegValue[0];
m_GrassAnimationUseVertexShader = dwRegValue[1];
m_GrassRenderRange = dwRegValue[2];
m_RangeGrassRender = dwRegValue[3];
m_FullSceneGlare = dwRegValue[4];
m_FullSceneAnti = dwRegValue[5];
m_FullSceneSpecularGlare = dwRegValue[6];
m_WaterBumpEnvRendering = dwRegValue[7];
m_TerrainMultiDetalTexture = dwRegValue[8];
m_TerrainRange = dwRegValue[9];
m_BuildingLightmap = dwRegValue[10];
m_TreeAnimation = dwRegValue[11];
m_CharacterPerPixelLighting = dwRegValue[12];
m_CharacterPerPixelSpecularLighting = dwRegValue[13];
m_CharacterSelfShadow = dwRegValue[14];
m_DepthOfField = dwRegValue[15];
m_CharacterProjectShadowTerrain = dwRegValue[16];
m_CharacterProjectShadowBuilding = dwRegValue[17];
m_ObjectLOD = dwRegValue[18];
m_TextureMethod = dwRegValue[19];
m_ScreenFilter = dwRegValue[20];
m_bWeather = dwRegValue[21];
m_bFullSceneEffect = dwRegValue[22];
return true;
/*
if(!hReg) return false;
unsigned long dwReadLens = sizeof(unsigned long);
long lResult;
bool bReturn = true;
lResult = RegQueryValueEx(hReg, "GR", 0, NULL, (LPBYTE)&m_GrassRendering, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "GA", 0, NULL, (LPBYTE)&m_GrassAnimationUseVertexShader, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "GRR", 0, NULL, (LPBYTE)&m_GrassRenderRange, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "RGR", 0, NULL, (LPBYTE)&m_RangeGrassRender, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "FSG", 0, NULL, (LPBYTE)&m_FullSceneGlare, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "FSA", 0, NULL, (LPBYTE)&m_FullSceneAnti, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "FSSG", 0, NULL, (LPBYTE)&m_FullSceneSpecularGlare, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "WBER", 0, NULL, (LPBYTE)&m_WaterBumpEnvRendering, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "TMDT", 0, NULL, (LPBYTE)&m_TerrainMultiDetalTexture, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "TR", 0, NULL, (LPBYTE)&m_TerrainRange, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "BL", 0, NULL, (LPBYTE)&m_BuildingLightmap, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "TA", 0, NULL, (LPBYTE)&m_TreeAnimation, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "CPPL", 0, NULL, (LPBYTE)&m_CharacterPerPixelLighting, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "CPPSL", 0, NULL, (LPBYTE)&m_CharacterPerPixelSpecularLighting, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "CSS", 0, NULL, (LPBYTE)&m_CharacterSelfShadow, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "DOF", 0, NULL, (LPBYTE)&m_DepthOfField, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "CPST", 0, NULL, (LPBYTE)&m_CharacterProjectShadowTerrain, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "CPSB", 0, NULL, (LPBYTE)&m_CharacterProjectShadowBuilding, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "OLOD", 0, NULL, (LPBYTE)&m_ObjectLOD, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "TM", 0, NULL, (LPBYTE)&m_TextureMethod, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "SF", 0, NULL, (LPBYTE)&m_ScreenFilter, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
lResult = RegQueryValueEx(hReg, "W", 0, NULL, (LPBYTE)&m_bWeather, &dwReadLens);
if(lResult != ERROR_SUCCESS) bReturn = false;
*/
// return bReturn;
/* FILE *fp=fopen(strFilename,"rb");
if(fp)
{
fread(&m_GrassRendering,sizeof(int), 1, fp);
fread(&m_GrassAnimationUseVertexShader,sizeof(int), 1, fp);
fread(&m_GrassRenderRange,sizeof(int), 1, fp);
fread(&m_RangeGrassRender,sizeof(int), 1, fp);
fread(&m_FullSceneGlare,sizeof(int), 1, fp);
fread(&m_FullSceneAnti,sizeof(int), 1, fp);
fread(&m_FullSceneSpecularGlare,sizeof(int), 1, fp);
fread(&m_WaterBumpEnvRendering,sizeof(int), 1, fp);
fread(&m_TerrainMultiDetalTexture,sizeof(int), 1, fp);
fread(&m_TerrainRange,sizeof(int), 1, fp);
fread(&m_BuildingLightmap,sizeof(int), 1, fp);
fread(&m_TreeAnimation,sizeof(int), 1, fp);
fread(&m_CharacterPerPixelLighting,sizeof(int), 1, fp);
fread(&m_CharacterPerPixelSpecularLighting,sizeof(int), 1, fp);
fread(&m_CharacterSelfShadow,sizeof(int), 1, fp);
fread(&m_DepthOfField,sizeof(int), 1, fp);
fread(&m_CharacterProjectShadowTerrain,sizeof(int), 1, fp);
fread(&m_CharacterProjectShadowBuilding,sizeof(int), 1, fp);
fread(&m_ObjectLOD,sizeof(int), 1, fp);
fread(&m_TextureMethod,sizeof(int), 1, fp);
fread(&m_ScreenFilter,sizeof(int), 1, fp);
//m_WaterBumpEnvRendering = 1;
fclose(fp);
return true;
}
return false;*/
}
bool CRenderOption::LoadZoneInfo(ZoneInfo *pZoneInfo) // <20> info File Load
{
if(pZoneInfo == NULL)
return false;
if(!strcmp(CRenderOption::m_strBaseGraphicsDataPath,""))
{
pZoneInfo->m_bZoneInfo = false;
return false;
}
FILE *fp = NULL;
char strInfo[256] = {0};
sprintf(strInfo,"%s%s.info",ROOTPATH,m_strBaseGraphicsDataPath);
fp = fopen(strInfo,"rb");
if(fp == NULL)
{
pZoneInfo->m_bZoneInfo = false;
return false;
}
// Data Load
pZoneInfo->m_bZoneInfo = true;
fread((int *)pZoneInfo->m_iZoneInfo,sizeof(int),30,fp); // Int Value Load
fread((float *)pZoneInfo->m_fZoneInfo,sizeof(float),30,fp); // float Value Load
fclose(fp);
return true;
}

View File

@@ -0,0 +1,71 @@
// RenderOption.h: interface for the CRenderOption class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_RENDEROPTION_H__D9EA4304_097B_4CF3_96B3_C60B325DD9A0__INCLUDED_)
#define AFX_RENDEROPTION_H__D9EA4304_097B_4CF3_96B3_C60B325DD9A0__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CRenderOption
{
public:
static bool Load(HKEY &hReg);
static bool Save(HKEY &hReg);
static int m_GrassRendering;
static int m_GrassAnimationUseVertexShader;
static int m_GrassRenderRange;
static int m_RangeGrassRender;
static int m_FullSceneGlare;
static int m_FullSceneAnti;
static int m_FullSceneSpecularGlare;
static int m_WaterBumpEnvRendering;
static int m_TerrainMultiDetalTexture;
static int m_TerrainRange;
static int m_BuildingLightmap;
static int m_TreeAnimation;
static int m_CharacterPerPixelLighting;
static int m_CharacterPerPixelSpecularLighting;
static int m_CharacterSelfShadow;
static int m_CharacterProjectShadowTerrain;
static int m_CharacterProjectShadowBuilding;
static int m_DepthOfField;
static int m_TextureMethod;
static int m_ObjectLOD;
static int m_ObjectProjectShadow;
static int m_TreeProjectShadow;
static int m_ScreenFilter;
static int m_bWeather;
static int m_bFullSceneEffect;
static int m_BSPDiffusePerPixel;
static int m_BSPSpecularPerPixel;
static int m_AllObjectBump;
static char m_strBaseGraphicsDataPath[256];
CRenderOption();
virtual ~CRenderOption();
class ZoneInfo // <20> Info Data Load
{
public:
bool m_bZoneInfo;
int m_iZoneInfo[30];
float m_fZoneInfo[30];
ZoneInfo()
{
m_bZoneInfo = false;
}
};
static bool LoadZoneInfo(ZoneInfo *); // <20> info File Load
};
#endif // !defined(AFX_RENDEROPTION_H__D9EA4304_097B_4CF3_96B3_C60B325DD9A0__INCLUDED_)

View File

@@ -0,0 +1,63 @@
#pragma once
enum RYLLOGIN_MESSAGE
{
LOGIN_MSG_SELECT_SERVER = 0,
LOGIN_MSG_LAUNCHER_ALREADY_RUNNING,
LOGIN_MSG_LAUNCHER_RESTART,
LOGIN_MSG_FAIL_TO_CONNECT_TO_LOGIN_SERVER,
LOGIN_MSG_FAIL_TO_GET_PATCHINFO,
LOGIN_MSG_CLIENT_NOT_INSTALLED,
LOGIN_MSG_CANNOT_FILECHECK_PATCH_IN_PROGRESS,
LOGIN_MSG_CONFIRM_FILECHECK,
LOGIN_MSG_CONNECTING_TO_LOGIN_SERVER,
LOGIN_MSG_CONNECTED_TO_LOGIN_SERVER_SUCCESSFULLY,
LOGIN_MSG_FAIL_TO_GET_SERVER_LIST,
LOGIN_MSG_LOADING_PATCHINFO_CACHE,
LOGIN_MSG_FAIL_TO_APPLY_PATCH,
LOGIN_MSG_FAIL_TO_GET_NOTICEINFO,
LOGIN_MSG_FAIL_TO_FILE_CHECK,
LOGIN_MSG_FILE_CHECK_FINISHED,
LOGIN_MSG_MAX_COUNT
};
#define STR_FAIL_NOTICE_URL "http://www.returnofwarrior.com/closed.html" // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>н<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
#define STR_NEW_ACCOUNT_URL "http://www.returnofwarrior.com/member/index.aspx" // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ư <20>ּ<EFBFBD>
#define STR_CHANGE_PASSWORD_URL "http://www.returnofwarrior.com/member/modify.aspx" // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>й<EFBFBD>ȣ <20><><EFBFBD><EFBFBD> <20><>ư <20>ּ<EFBFBD>
#define STR_PLAY_BGM_ERROR "Error!!" // BGM <20><><EFBFBD>½<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
#define STR_CLIENT_REGISTRY_SUBKEY "Software\\ROW\\MP-Client"
#if defined _REGULAR_
//////////////////////////////////////////////////////////////////////////
//
// <20><><EFBFBD><EFBFBD>
#define STR_VERSION_SIGNATURE "REAL_P2_KR" // <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<>ο<EFBFBD> HEX_EDIT<49><54> Ȯ<><C8AE>
#define STR_CLIENT_REGISTRY_VALUE_NAME "Folder"
#define STR_LOGIN_SERVER_ADDR "login.returnofwarrior.com" // <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ּ<EFBFBD>
#elif defined _TEST_
//////////////////////////////////////////////////////////////////////////
//
// <20>׼<EFBFBD>
#define STR_VERSION_SIGNATURE "TEST_P2_KR"
#define STR_CLIENT_REGISTRY_VALUE_NAME "TestFolder"
#define STR_LOGIN_SERVER_ADDR "loginTest.returnofwarrior.com"
#elif defined _BG_
//////////////////////////////////////////////////////////////////////////
//
// <20><>Ʋ<EFBFBD>׶<EFBFBD><D7B6><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
#define STR_VERSION_SIGNATURE "BG_P2_KR"
#define STR_CLIENT_REGISTRY_VALUE_NAME "BGFolder"
#define STR_LOGIN_SERVER_ADDR "battlelogin.returnofwarrior.com"
#elif defined _INHOUSE_
//////////////////////////////////////////////////////////////////////////
//
// <20><EFBFBD><E7B3BB>
#define STR_VERSION_SIGNATURE "INHOUSE_P2_KR"
#define STR_CLIENT_REGISTRY_VALUE_NAME "TestFolder"
//#define STR_LOGIN_SERVER_ADDR "testlogin.rylonline.com" <20><EFBFBD><E7B3BB> <20>α<EFBFBD><CEB1>μ<EFBFBD><CEBC><EFBFBD> <20>ּҴ<D6BC> <20>ϵ<EFBFBD><CFB5>ڵ<EFBFBD>
#endif
extern const CString &RYLLoginGetMessage(int nMessage);
extern void RYLLoginInitMessage(const char* szrFolder);

View File

@@ -0,0 +1,88 @@
// SimpleHTTPFile.cpp: implementation of the CSimpleHTTPFile class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ryllogin.h"
#include "SimpleHTTPFile.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CSimpleHTTPFile::CSimpleHTTPFile()
{
m_hIntSession = NULL;
}
CSimpleHTTPFile::~CSimpleHTTPFile()
{
if( NULL != m_hIntSession )
{
InternetCloseHandle( m_hIntSession );
}
}
void CSimpleHTTPFile::Close()
{
if( NULL != m_hIntSession )
{
InternetCloseHandle( m_hIntSession );
}
}
bool CSimpleHTTPFile::Init()
{
m_hIntSession = InternetOpen( NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL );
if( m_hIntSession == NULL )
{
MessageBox( NULL, "Failed to establish network connection.", 0, 0 );
return false;
}
return true;
}
bool CSimpleHTTPFile::TransferFile( const TCHAR* strServerFilename, const TCHAR* strClientFilename )
{
HINTERNET hSession = InternetOpenUrl( m_hIntSession, strServerFilename, NULL, 0, INTERNET_FLAG_HYPERLINK, 0 );
if( hSession == NULL )
{
CString strError;
strError.Format( " Failed to locate file on server : %s", strServerFilename );
MessageBox( NULL, strError, 0, 0 );
return false;
}
FILE *fp = fopen( strClientFilename, "wb" );
if( NULL == fp )
{
return false;
}
DWORD dwBytesRead = 0;
char httpBuff[1024];
while( InternetReadFile( hSession, httpBuff, 1024, &dwBytesRead ) && dwBytesRead != 0 )
{
fwrite( httpBuff, dwBytesRead, 1, fp );
}
fclose( fp );
InternetCloseHandle( hSession );
return true;
}

View File

@@ -0,0 +1,29 @@
// SimpleHTTPFile.h: interface for the CSimpleHTTPFile class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SIMPLEHTTPFILE_H__87015582_E25A_4CE3_AEF6_5E631157374A__INCLUDED_)
#define AFX_SIMPLEHTTPFILE_H__87015582_E25A_4CE3_AEF6_5E631157374A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <Afxinet.h>
class CSimpleHTTPFile
{
public:
CSimpleHTTPFile();
virtual ~CSimpleHTTPFile();
bool Init();
bool TransferFile( const TCHAR* strServerFilename, const TCHAR* strClientFilename );
void Close();
protected:
HINTERNET m_hIntSession;
};
#endif // !defined(AFX_SIMPLEHTTPFILE_H__87015582_E25A_4CE3_AEF6_5E631157374A__INCLUDED_)

View File

@@ -0,0 +1,97 @@
// SplashDlg.cpp : implementation file
//
#include "stdafx.h"
#include "RYLLogin.h"
#include "SplashDlg.h"
// CSplashDlg dialog
IMPLEMENT_DYNAMIC(CSplashDlg, CDialog)
CSplashDlg::CSplashDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSplashDlg::IDD, pParent)
{
m_nFade = 0;
}
CSplashDlg::~CSplashDlg()
{
}
void CSplashDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CSplashDlg, CDialog)
ON_WM_PAINT()
ON_WM_ERASEBKGND()
ON_WM_TIMER()
END_MESSAGE_MAP()
// CSplashDlg message handlers
void CSplashDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
//CClientDC dc(NULL);
RenderBack( dc, m_btmSplash, 0, 0 );
}
BOOL CSplashDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return CDialog::OnEraseBkgnd(pDC);
}
void CSplashDlg::RenderBack( CDC &rDC, CBitmap &rBitmap, int Px, int Py , int SizeX, int SizeY )
{
CBitmap *pOldBitmap;
CDC memDC;
memDC.CreateCompatibleDC(&rDC);
pOldBitmap=memDC.SelectObject(&rBitmap);
CSize sBitmap=rBitmap.GetBitmapDimension();
BITMAP bmInfo;
rBitmap.GetBitmap(&bmInfo);
if( SizeX == -1 && SizeY == -1 )
rDC.BitBlt(Px,Py,bmInfo.bmWidth,bmInfo.bmHeight,&memDC,0,0,SRCCOPY);
else
rDC.BitBlt(Px,Py,SizeX,SizeY,&memDC,0,0,SRCCOPY);
memDC.SelectObject(pOldBitmap);
}
BOOL CSplashDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
SetWindowPos( &wndTopMost, 0, 0, 463, 143, SWP_NOMOVE );
SetTimer( WM_FADETIMER, 10, NULL );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSplashDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
m_nFade+=1;
if( m_nFade >= 180 )
{
KillTimer( nIDEvent );
OnOK();
}
CDialog::OnTimer(nIDEvent);
}

View File

@@ -0,0 +1,30 @@
#pragma once
// CSplashDlg dialog
class CSplashDlg : public CDialog
{
DECLARE_DYNAMIC(CSplashDlg)
public:
CSplashDlg(CWnd* pParent = NULL); // standard constructor
virtual ~CSplashDlg();
// Dialog Data
enum { IDD = IDD_DIALOG_SPLASH };
CBitmap m_btmSplash;
int m_nFade;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnPaint();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
void RenderBack( CDC &rDC, CBitmap &rBitmap, int Px, int Py, int SizeX = -1 , int SizeY = -1 );
virtual BOOL OnInitDialog();
afx_msg void OnTimer(UINT nIDEvent);
};

157
Tools/Launcher/StatLink.cpp Normal file
View File

@@ -0,0 +1,157 @@
////////////////////////////////////////////////////////////////
// PixieLib(TM) Copyright 1997-1999 Paul DiLascia
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
//
// CStaticLink implements a static control that's a hyperlink
// to any file on your desktop or web. You can use it in dialog boxes
// to create hyperlinks to web sites. When clicked, opens the file/URL
//
#include "StdAfx.h"
#include "StatLink.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
COLORREF CStaticLink::g_colorUnvisited = RGB(0,0,255); // blue
COLORREF CStaticLink::g_colorVisited = RGB(128,0,128); // purple
HCURSOR CStaticLink::g_hCursorLink = NULL;
IMPLEMENT_DYNAMIC(CStaticLink, CStatic)
BEGIN_MESSAGE_MAP(CStaticLink, CStatic)
ON_WM_NCHITTEST()
ON_WM_CTLCOLOR_REFLECT()
ON_WM_LBUTTONDOWN()
ON_WM_SETCURSOR()
END_MESSAGE_MAP()
///////////////////
// Constructor sets default colors = blue/purple.
// bDeleteOnDestroy is used internally by PixieLib in CPixieDlg.
//
CStaticLink::CStaticLink(LPCTSTR lpText, BOOL bDeleteOnDestroy)
{
m_link = lpText; // link text (NULL ==> window text)
m_color = g_colorUnvisited; // not visited yet
m_bDeleteOnDestroy = bDeleteOnDestroy; // delete object with window?
}
//////////////////
// Normally, a static control does not get mouse events unless it has
// SS_NOTIFY. This achieves the same effect as SS_NOTIFY, but it's fewer
// lines of code and more reliable than turning on SS_NOTIFY in OnCtlColor
// because Windows doesn't send WM_CTLCOLOR to bitmap static controls.
//
UINT CStaticLink::OnNcHitTest(CPoint point)
{
return HTCLIENT;
}
//////////////////
// Handle reflected WM_CTLCOLOR to set custom control color.
// For a text control, use visited/unvisited colors and underline font.
// For non-text controls, do nothing. Also ensures SS_NOTIFY is on.
//
HBRUSH CStaticLink::CtlColor(CDC* pDC, UINT nCtlColor)
{
ASSERT(nCtlColor == CTLCOLOR_STATIC);
DWORD dwStyle = GetStyle();
HBRUSH hbr = NULL;
if ((dwStyle & 0xFF) <= SS_RIGHT) {
// this is a text control: set up font and colors
if (!(HFONT)m_font) {
// first time init: create font
LOGFONT lf;
GetFont()->GetObject(sizeof(lf), &lf);
lf.lfUnderline = TRUE;
m_font.CreateFontIndirect(&lf);
}
// use underline font and visited/unvisited colors
pDC->SelectObject(&m_font);
pDC->SetTextColor(m_color);
pDC->SetBkMode(TRANSPARENT);
// return hollow brush to preserve parent background color
hbr = (HBRUSH)::GetStockObject(HOLLOW_BRUSH);
}
return hbr;
}
/////////////////
// Handle mouse click: navigate link
//
void CStaticLink::OnLButtonDown(UINT nFlags, CPoint point)
{
if (m_link.IsEmpty()) {
// no link: try to load from resource string or window text
m_link.LoadString(GetDlgCtrlID()) || (GetWindowText(m_link),1);
if (m_link.IsEmpty())
return;
}
// Call ShellExecute to run the file.
// For an URL, this means opening it in the browser.
//
HINSTANCE h = m_link.Navigate();
if ((UINT)h > 32) { // success!
m_color = g_colorVisited; // change color
Invalidate(); // repaint
} else {
MessageBeep(0); // unable to execute file!
TRACE(_T("*** WARNING: CStaticLink: unable to navigate link %s\n"),
(LPCTSTR)m_link);
}
}
//////////////////
// Set "hand" cursor to cue user that this is a link. If app has not set
// g_hCursorLink, then try to get the cursor from winhlp32.exe,
// resource 106, which is a pointing finger. This is a bit of a kludge,
// but it works.
//
BOOL CStaticLink::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
if (g_hCursorLink == NULL) {
static bTriedOnce = FALSE;
if (!bTriedOnce) {
CString windir;
GetWindowsDirectory(windir.GetBuffer(MAX_PATH), MAX_PATH);
windir.ReleaseBuffer();
windir += _T("\\winhlp32.exe");
HMODULE hModule = LoadLibrary(windir);
if (hModule) {
g_hCursorLink =
CopyCursor(::LoadCursor(hModule, MAKEINTRESOURCE(106)));
}
FreeLibrary(hModule);
bTriedOnce = TRUE;
}
}
if (g_hCursorLink) {
::SetCursor(g_hCursorLink);
return TRUE;
}
return FALSE;
}
//////////////////
// Normally, a control class is not destoyed when the window is;
// however, CPixieDlg creates static controls with "new" instead of
// as class members, so it's convenient to allow the option of destroying
// object with window. In applications where you want the object to be
// destoyed along with the window, you can call constructor with
// bDeleteOnDestroy=TRUE.
//
void CStaticLink::PostNcDestroy()
{
if (m_bDeleteOnDestroy)
delete this;
}

51
Tools/Launcher/StatLink.h Normal file
View File

@@ -0,0 +1,51 @@
////////////////////////////////////////////////////////////////
// PixieLib(TM) Copyright 1997-1999 Paul DiLascia
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
//
#ifndef _STATLINK_H
#define _STATLINK_H
#include "HyprLink.h"
//////////////////
// CStaticLink implements a static control that's a hyperlink
// to any file on your desktop or web. You can use it in dialog boxes
// to create hyperlinks to web sites. When clicked, opens the file/URL
//
class CStaticLink : public CStatic {
public:
DECLARE_DYNAMIC(CStaticLink)
CStaticLink(LPCTSTR lpText = NULL, BOOL bDeleteOnDestroy=FALSE);
~CStaticLink() { }
// Hyperlink contains URL/filename. If NULL, I will use the window text.
// (GetWindowText) to get the target.
CHyperlink m_link;
COLORREF m_color;
// Default colors you can change
// These are global, so they're the same for all links.
static COLORREF g_colorUnvisited;
static COLORREF g_colorVisited;
// Cursor used when mouse is on a link--you can set, or
// it will default to the standard hand with pointing finger.
// This is global, so it's the same for all links.
static HCURSOR g_hCursorLink;
protected:
CFont m_font; // underline font for text control
BOOL m_bDeleteOnDestroy; // delete object when window destroyed?
virtual void PostNcDestroy();
// message handlers
DECLARE_MESSAGE_MAP()
afx_msg UINT OnNcHitTest(CPoint point);
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
};
#endif _STATLINK_H

View File

@@ -0,0 +1,5 @@
// stdafx.cpp : source file that includes just the standard includes
// RYLLogin.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"

52
Tools/Launcher/StdAfx.h Normal file
View File

@@ -0,0 +1,52 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently
#pragma once
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif
// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0400 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif
#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0400 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif
/*
#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif
*/
#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0400 // Change this to the appropriate value to target IE 5.0 or later.
#endif
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
// turns off MFC's hiding of some common and often safely ignored warning messages
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdisp.h> // MFC Automation classes
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
#define WS_EX_LAYERED 0x00080000
#define LWA_ALPHA 0x00000002
#define WM_FADETIMER 100101
#define WM_ANITIMER 100102
#define WM_FADESERVERSELECT 100103
#define WM_LOGOANITIMER 100104
#define WM_EVENT_HANDLER_TIMER 100105

View File

@@ -0,0 +1,53 @@
// TranListBox.cpp : implementation file
//
#include "stdafx.h"
#include "RYLLogin.h"
#include "TranListBox.h"
// CTranListBox
IMPLEMENT_DYNAMIC(CTranListBox, CListBox)
CTranListBox::CTranListBox()
{
}
CTranListBox::~CTranListBox()
{
}
BEGIN_MESSAGE_MAP(CTranListBox, CListBox)
// ON_WM_CTLCOLOR_REFLECT()
ON_WM_ERASEBKGND()
ON_WM_DRAWITEM()
END_MESSAGE_MAP()
// CTranListBox message handlers
//HBRUSH CTranListBox::CtlColor(CDC* /*pDC*/, UINT /*nCtlColor*/)
//{
// // TODO: Change any attributes of the DC here
//
// // TODO: Return a non-NULL brush if the parent's handler should not be called
// return NULL;
//}
BOOL CTranListBox::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
//return CListBox::OnEraseBkgnd(pDC);
return TRUE;
}
void CTranListBox::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call default
CListBox::OnDrawItem(nIDCtl, lpDrawItemStruct);
}

View File

@@ -0,0 +1,22 @@
#pragma once
// CTranListBox
class CTranListBox : public CListBox
{
DECLARE_DYNAMIC(CTranListBox)
public:
CTranListBox();
virtual ~CTranListBox();
protected:
DECLARE_MESSAGE_MAP()
public:
// afx_msg HBRUSH CtlColor(CDC* /*pDC*/, UINT /*nCtlColor*/);
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,118 @@
#pragma once
#include "HTTPFile.h"
//#include "List.h"
//using namespace RTL;
//#include "../ZipLib/RZipRapper.h"
#include "GradientStatic.h"
#include <PatchCommon/PatchInfoList.h>
#pragma warning( disable : 4786 )
#include <vector>
#include <map>
//UINT AFXAPI HashKey(CString& string);
class CUpdateManager
{
public:
void Init();
bool ProcessNoticeFiles();
bool LoadServerPatchInfo();
// bool LoadLocalPatchInfoCache();
bool CollectDownloadFileList( bool bFileCheckMode );
bool DownloadUpdateFile();
bool ExtractPatchFiles();
void AddToPkg2FileNameBucket( char* szPkgName, char* szFileName );
bool CleanUp();
void Terminate()
{
m_bTerminate = true;
}
void SetServerClosed( bool b )
{
m_bServerClosed = b;
}
static BOOL m_bUpdateLogin;
CHTTPFile m_HTTPFile;
CString m_strServerPath;
void SetVersion( int nVersion ) { m_nVersion = nVersion; }
int GetVersion() { return m_nVersion; }
void SetRootPath( CString strRootPath ) { m_strRootPath = strRootPath; }
void SetProgressInfo( float* pfFileProgressPercentage, float* pfProgressPercentage, CGradientStatic *pInfoWnd, CWnd *pDisplayWnd)
{
m_pInfoWnd = pInfoWnd;
m_pDisplayWnd = pDisplayWnd;
m_pfProgressPercentage = pfProgressPercentage;
m_pfFileProgressPercentage = pfFileProgressPercentage;
m_HTTPFile.SetProgressWnd( m_pDisplayWnd , m_pInfoWnd, pfFileProgressPercentage );
}
CUpdateManager();
~CUpdateManager();
// void Update( CString strPath );
private:
int m_nVersion;
bool m_bServerClosed;
CGradientStatic *m_pDisplayState;
CWnd *m_pZipCountDisplayState;
CString m_strRootPath;
float* m_pfProgressPercentage;
float* m_pfFileProgressPercentage;
int m_nFileCount;
CPatchInfoList m_ServerFileInfoList;
struct IndexPair
{
int IdxServer;
int idxLocal;
};
//CMap<CString, CString&, CArray<IndexPair, IndexPair&>*, CArray<IndexPair, IndexPair&>* > m_mapPackageName2IndexPairArray;
std::map< PTR_STRING, std::vector< char* > *, PTR_STRING_LESS > m_mapPackageName2FileNameVectorPtr;
static CGradientStatic *m_pInfoWnd;
static CWnd *m_pDisplayWnd;
bool m_bTerminate;
// bool SaveLocalCache();
// bool CreateFileInfoCache();
long GetFileCountInSubDir( const char* szSubDirName );
//void LoadClientFileInfoCacheList();
//void SaveClientFileInfoCacheList();
};

View File

@@ -0,0 +1,155 @@
// ZBitmapButton.cpp : implementation file
//
#include "stdafx.h"
#include "ZBitmapButton.h"
#include "MemDC.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CZBitmapButton
CZBitmapButton::CZBitmapButton()
{
m_State=0;
m_bMouseCaptured=FALSE;
}
CZBitmapButton::~CZBitmapButton()
{
}
BEGIN_MESSAGE_MAP(CZBitmapButton, CButton)
//{{AFX_MSG_MAP(CZBitmapButton)
ON_WM_MOUSEMOVE()
ON_WM_DRAWITEM()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
//}}AFX_MSG_MAP
ON_WM_ERASEBKGND()
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CZBitmapButton message handlers
void CZBitmapButton::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if (!m_bMouseCaptured || GetCapture()!=this)
{
SetCapture();
m_bMouseCaptured=TRUE;
OnMouseEnter(nFlags,point);
} else
{
CRect rc;
this->GetClientRect(&rc);
if (!rc.PtInRect(point))
{
OnMouseLeave(nFlags,point);
m_bMouseCaptured=FALSE;
ReleaseCapture();
}
}
Invalidate( FALSE );
//CButton::OnMouseMove(nFlags, point);
}
void CZBitmapButton::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call default
CButton::OnDrawItem(nIDCtl, lpDrawItemStruct);
}
void CZBitmapButton::SetBitmap(UINT iNormal, UINT iOnMouse, UINT iClick)
{
m_bmNormal.LoadBitmap(iNormal);
m_bmOnMouse.LoadBitmap(iOnMouse);
m_bmClick.LoadBitmap(iClick);
}
void CZBitmapButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your code to draw the specified item
CDC* pDC;
pDC=CDC::FromHandle(lpDrawItemStruct->hDC);
CMemDC mDC( pDC, lpDrawItemStruct->rcItem );
switch(m_State)
{
case 0:
RenderBitmap(mDC,m_bmNormal);
break;
case 1:
RenderBitmap(mDC,m_bmOnMouse);
break;
case 2:
RenderBitmap(mDC,m_bmClick);
break;
}
}
void CZBitmapButton::RenderBitmap(CDC &rDC, CBitmap &rBitmap)
{
CBitmap *pOldBitmap;
CDC memDC;
memDC.CreateCompatibleDC(&rDC);
pOldBitmap=memDC.SelectObject(&rBitmap);
CSize sBitmap=rBitmap.GetBitmapDimension();
BITMAP bmInfo;
rBitmap.GetBitmap(&bmInfo);
rDC.BitBlt(0,0,bmInfo.bmWidth,bmInfo.bmHeight,&memDC,0,0,SRCCOPY);
memDC.SelectObject(pOldBitmap);
}
BOOL CZBitmapButton::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
}
void CZBitmapButton::OnMouseEnter(UINT nFlags, CPoint point)
{
m_State=1;
Invalidate(FALSE);
}
void CZBitmapButton::OnMouseLeave(UINT nFlags, CPoint point)
{
m_State=0;
Invalidate(FALSE);
}
void CZBitmapButton::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_State=2;
Invalidate(FALSE);
CButton::OnLButtonDown(nFlags, point);
}
void CZBitmapButton::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_State=1;
Invalidate(FALSE);
CButton::OnLButtonUp(nFlags, point);
}
BOOL CZBitmapButton::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return TRUE;
//return CButton::OnEraseBkgnd(pDC);
}

View File

@@ -0,0 +1,77 @@
#if !defined(AFX_ZBITMAPBUTTON_H__EF18D18E_E0FB_4153_8D4B_AA857E8F2803__INCLUDED_)
#define AFX_ZBITMAPBUTTON_H__EF18D18E_E0FB_4153_8D4B_AA857E8F2803__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ZBitmapButton.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CZBitmapButton window
class CZBitmapButton : public CButton
{
// Construction
public:
CZBitmapButton();
CBitmap m_bmNormal;
CBitmap m_bmOnMouse;
CBitmap m_bmClick;
int m_State;
BOOL m_bMouseCaptured;
// Attributes
public:
int GetSizeX()
{
BITMAP bmInfo;
m_bmNormal.GetBitmap(&bmInfo);
return bmInfo.bmWidth;
};
int GetSizeY()
{
BITMAP bmInfo;
m_bmNormal.GetBitmap(&bmInfo);
return bmInfo.bmHeight;
};
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CZBitmapButton)
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
//}}AFX_VIRTUAL
// Implementation
public:
void OnMouseLeave(UINT nFlags, CPoint point);
void OnMouseEnter(UINT nFlags, CPoint point);
void RenderBitmap(CDC &rDC,CBitmap &rBitmap);
void SetBitmap(UINT iNormal,UINT iOnMouse,UINT iClick);
virtual ~CZBitmapButton();
// Generated message map functions
protected:
//{{AFX_MSG(CZBitmapButton)
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
public:
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_ZBITMAPBUTTON_H__EF18D18E_E0FB_4153_8D4B_AA857E8F2803__INCLUDED_)

BIN
Tools/Launcher/mainfram.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

44
Tools/Launcher/memdc.h Normal file
View File

@@ -0,0 +1,44 @@
#ifndef _MEMDC_H_
#define _MEMDC_H_
//////////////////////////////////////////////////
// CMemDC - memory DC
//
// Author: Keith Rule
// Email: keithr@europa.com
// Copyright 1996-1997, Keith Rule
//
// You may freely use or modify this code provided this
// Copyright is included in all derived versions.
//
// This class implements a memory Device Context
class CMemDC : public CDC {
private:
CBitmap* m_bitmap;
CBitmap* m_oldBitmap;
CDC* m_pDC;
CRect m_rcBounds;
public:
CMemDC(CDC* pDC, const CRect& rcBounds) : CDC()
{
CreateCompatibleDC(pDC);
m_bitmap = new CBitmap;
m_bitmap->CreateCompatibleBitmap(pDC, rcBounds.Width(), rcBounds.Height());
m_oldBitmap = SelectObject(m_bitmap);
m_pDC = pDC;
m_rcBounds = rcBounds;
}
~CMemDC()
{
m_pDC->BitBlt(m_rcBounds.left, m_rcBounds.top, m_rcBounds.Width(), m_rcBounds.Height(),
this, m_rcBounds.left, m_rcBounds.top, SRCCOPY);
SelectObject(m_oldBitmap);
if (m_bitmap != NULL) delete m_bitmap;
}
CMemDC* operator->() {
return this;
}
};
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Windows.RYLLogin"
type="win32"
/>
<description>Your app description here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

View File

@@ -0,0 +1,13 @@
//
// RYLLogin.RC2 - resources Microsoft Visual C++ does not edit directly
//
#ifdef APSTUDIO_INVOKED
#error this file is not editable by Microsoft Visual C++
#endif //APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// Add manually edited resources here...
/////////////////////////////////////////////////////////////////////////////

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

41
Tools/Launcher/resource.h Normal file
View File

@@ -0,0 +1,41 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by RYLLogin.rc
//
#define IDR_MANIFEST 1
#define IDD_RYLLOGIN_DIALOG 102
#define IDR_MAINFRAME 128
#define IDD_DIALOG_SPLASH 129
#define IDD_SEVERSELECT_DIALOG 130
#define IDI_MAINFRAME 135
#define IDD_DIALOG_REGIONSELECT 136
#define IDD_DIALOG1 139
#define IDD_DIALOG_MSG 139
#define IDC_BUTTON_NEWACC 1000
#define IDC_BUTTON_PSW 1001
#define IDC_BUTTON_SETUP 1002
#define IDC_BUTTON_MUSIC 1003
#define IDC_BUTTON_FILECHECK 1004
#define IDC_BUTTON_END 1005
#define IDC_STATIC_LOGINTEXT 1006
#define IDC_LIST1 1007
#define IDC_LIST_SERVER 1007
#define IDC_BUTTON_START2 1007
#define IDC_BUTTON_START 1007
#define IDC_HOMEPAGEURL 1008
#define IDC_STATIC_VERSIONVIEW 1010
#define IDC_LIST2 1011
#define IDC_NOTICE 1012
#define IDC_LIST_SERVER2 1013
#define IDR_WEBVIEW 10001
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 140
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1014
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif