www.pudn.com > back.rar > base.cpp
#include "base.h"
HWND g_hwndList, g_hwndEdit, g_hwndEditNPC,g_hwndEditAdmin, g_hwndEditLimit,g_hwndWait, g_hwndLogin, g_hwndConnect, g_hwndItemUnique, g_hwndChennel; // ¼¹öÅëÇÕ¼öÁ¤ : ä³ÎÃß°¡
// ItemVector g_ItemVector;
CItem g_ItemArray[MAX_FIELD_ITEM];
int g_Itemcount;
SYSTEMTIME LogTime;
// 1117-LIM
RandomItem g_RandomItem[MAX_RANDOM_ITEM];
Teleport_Info g_Teleport[MAX_TELEPORT_INDEX];
//Treasure_Index g_Treasure[ MAX_TREASURE_DUNGEON ]; // 1117-LIM
char szError[256][64];
// 2004-3-11 ºÒÀÇ°Ë Äù½ºÆ® º¸»ó°ü·Ã...¿ÀǽñîÁö ÀÛ¾÷¶§¸¸ ÁÖ¼® ¿¬´Ù
CDungeon g_UniqueSkillArray[MAX_UNIQUE]; // 1117-LIM
DWORD g_dwCurTickTime = 0;
DWORD g_dwUserCount = 0;
DWORD g_dwAvgTime = 0;
//----------------------------------------------------------------------------------------
//
// µÎÁ¡À» ³Ñ°ÜÁÖ¸é ±× »çÀÌÀÇ °Å¸®°ªÀ» ±¸ÇÑ´Ù
//
//----------------------------------------------------------------------------------------
int Distance( int sx, int sy, int ex, int ey )
{
int distance, delta_x, delta_y;
int incx, incy, xerr =0, yerr =0; // t
delta_x = ex - sx; // xÀÇ º¯È °ª
delta_y = ey - sy; // yÀÇ º¯È °ª
incx = ( delta_x > 0 ) ? 1 : ( ( delta_x == 0 ) ? 0 : -1 ) ;
incy = ( delta_y > 0 ) ? 1 : ( ( delta_y == 0 ) ? 0 : -1 );
delta_x = abs( delta_x );
delta_y = abs( delta_y );
distance = ( delta_x > delta_y ) ? delta_x : delta_y ;
/* ÃÖÀûÈ , ÀÌ°Ç ¹¹ÇÏ´ÂÁþ?
for( t = 0; t < distance; t++ )
{
xerr += delta_x;
yerr += delta_y;
if( xerr > distance )
{
xerr -= distance;
sx += incx;
}
if( yerr > distance )
{
yerr -= distance;
sy += incy;
}
}
*/
return distance;
}
int Distance2( DWORD pos1, DWORD pos2, int nMapsize )
{
int sx,ex,sy,ey;
sx = pos1 % nMapsize;
sy = pos1 / nMapsize;
ex = pos2 % nMapsize;
ey = pos2 / nMapsize;
int distance, delta_x, delta_y;
int incx, incy, xerr =0, yerr =0; // t
delta_x = ex - sx; // xÀÇ º¯È °ª
delta_y = ey - sy; // yÀÇ º¯È °ª
incx = ( delta_x > 0 ) ? 1 : ( ( delta_x == 0 ) ? 0 : -1 ) ;
incy = ( delta_y > 0 ) ? 1 : ( ( delta_y == 0 ) ? 0 : -1 );
delta_x = abs( delta_x );
delta_y = abs( delta_y );
distance = ( delta_x > delta_y ) ? delta_x : delta_y ;
/* ÃÖÀûÈ , ÀÌ°Ç ¹¹ÇÏ´ÂÁþ?
for( t = 0; t < distance; t++ )
{
xerr += delta_x;
yerr += delta_y;
if( xerr > distance )
{
xerr -= distance;
sx += incx;
}
if( yerr > distance )
{
yerr -= distance;
sy += incy;
}
}
*/
return distance;
}