⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 runner.h

📁 大家好!这是一个网络游戏源码
💻 H
字号:
#include <stdio.h>
#include <string.h>
#include <io.h>
#include <windows.h>

#ifndef TAG_RUNNER
#define TAG_RUNNER

/*
========================================================================

					[		常用的定义		]

========================================================================
*/

typedef char SINT8;
typedef unsigned char UINT8;
typedef short int SINT16;
typedef unsigned short int UINT16;
typedef int SINT32;
typedef unsigned int UINT32;
//typedef __int64 INT64;
//typedef unsigned char BYTE;
//typedef char CHAR;
//typedef float REAL32;
//typedef double REAL64;
//typedef int BOOL;
#define RESULT int
#define _RESULT RESULT

/*
========================================================================
*/




















/*
========================================================================

					 [		调试输出	]

========================================================================
*/

#define INFO_LOG_FLAG      0x0001
#define INFO_CONSOLE_FLAG  0x0010
#define INFO_LIST_FLAG     0x0100
#define INFO_MESSAGEBOX    0x1000

extern UINT32 OUT_INFO_FLAG;


#define Out(format , data)												          \
if(OUT_INFO_FLAG & INFO_LOG_FLAG)                                                     \
{       FILE *fp = fopen("log.txt" , "a+t"); fprintf(fp , format , data); fclose(fp); \
}                                                                                     \
if(OUT_INFO_FLAG & INFO_CONSOLE_FLAG)                                                 \
{                                             printf( format , data );                \
}	\
if(OUT_INFO_FLAG & INFO_MESSAGEBOX) \
{	char info[128];	sprintf(info , format , data); MessageBox(NULL , info , "Msg" , 0); \
}

/*
========================================================================
*/








/*
========================================================================
					[	与脚本语言LUA的接口 ]
========================================================================
*/


extern "C"
{
 #include "lua.h"
 #include "lualib.h"
}

extern lua_State *L_S;

#define DoString(run_str) if(run_str)    { int oldtop = lua_gettop(L_S);lua_dostring(L_S,run_str);lua_settop(L_S, oldtop);  }      
#define DoFile(file_name) if(file_name)  { int oldtop = lua_gettop(L_S);lua_dofile(L_S , file_name);lua_settop(L_S, oldtop); }
#define DoProc(Proc_ID)    \
if(1)                      \
{  SINT8 run_str[32];      \
   sprintf(run_str , "f = proc[\"%s\"]" , Proc_ID); \
   DoString(run_str);      \
   DoString("f()");        \
} 
/*
========================================================================
*/





















/*
========================================================================

					[		内存管理(lua)		]
	
========================================================================
*/


extern UINT32 g_dwMemAlloc;
extern UINT32 g_dwMemPeak;

void AddMemory(void *mem , UINT32 size);
void DecMemory(void *mem);

#define FreeMemory(m) if(m) { delete m; DecMemory(m); m = NULL;}

#define GetMemory(p , m , n) { p = new m[n]; AddMemory(p , sizeof(m) * n); }  
#define GetMemoryI(p , m)    { p = new m;    AddMemory(p , sizeof(m)); }
/*
========================================================================
*/































/*
========================================================================

					[	文件&目录实用function	]

========================================================================
*/

#define MAX_PATHX 255
#define MAX_FILE_IN_DIR 255

UINT32 GetFileSize(SINT8 *filename);
SINT8  GetDirFileName(SINT8 **file_list , SINT8 *dir_name , SINT8 load_mode);
SINT8  GetExeBuildTime(SINT8 *time_str);
VOID   DataToTextFile(LPBYTE pbData , int iWidth , int iHeight , TCHAR *strFileName);



/*
========================================================================
*/














/*
========================================================================
					
			[	RLE function (just for color key and 16bit)	]

========================================================================
*/

#define RLE_FLAG_NULL 1  //全空
#define RLE_FLAG_FULL 2  //全满


struct RLE_HEADER 
{
	DWORD	dwSize;		// 数据的总长度(以字节为单位)
	WORD	wWidth;		// 宽度
	WORD	wHeight;	// 高度
	WORD	wLeft;		// 最左边的有效像素 
	WORD	wRight;		// 最右边的有效像素 
	WORD	wTop;		// 最上面的有效图素
	WORD	wBottom;	// 最下面的有效图素
	DWORD	dwColorKey; // 透明色
	BYTE    bFlag;		// = RLE_FLAG..
};

//总长度为21个字节

#define GetRleHeader(pData , pHeader) { memcpy(pHeader , pData , sizeof(RLE_HEADER)); } 

VOID	GetSurfaceDataFromRleData(LPWORD pwSurfaceData , LPWORD pwRleData , DWORD dwPitch);
LPWORD	GetRleDataFromSurfaceData(LPWORD pwSurfaceData , int w , int h , DWORD dwPitch , DWORD dwColorKey);


/*
========================================================================
*/































/*
========================================================================

				[		Coordinate functions		]

========================================================================
*/


VOID	Coord_2DWorldToGrid(int x , int y , int *piGridX , int *piGridY , float fGridWidth , float fGridHeight , int iGridNum);
VOID	Coord_GridTo2DWorld(int x , int y , int *piWorldX , int *piWorldY , float fGridWidth , float fGridHeight , int iGridNum);

VOID	Blit_GetValidRect(RECT *prcDest , RECT *prcSrc , 
						  int iDrawX , int iDrawY , 
						  RECT rcDest , RECT rcSrc);
/*
========================================================================
*/
























/*
========================================================================

					 [		键盘处理     ]

========================================================================
*/
#define RKEY_A		65
#define RKEY_B		66
#define RKEY_C		67
#define RKEY_D		68
#define RKEY_E		69
#define RKEY_F		70
#define RKEY_G		71
#define RKEY_H		72
#define RKEY_I		73
#define RKEY_J		74
#define RKEY_K		75
#define RKEY_L		76
#define RKEY_M		77
#define RKEY_N		78
#define RKEY_O		79
#define RKEY_P		80
#define RKEY_Q		81
#define RKEY_R		82
#define RKEY_S		83
#define RKEY_T		84
#define RKEY_U		85
#define RKEY_V		86
#define RKEY_W		87
#define RKEY_X		88
#define RKEY_Y		89
#define RKEY_Z		90

#define RKEY_F1		VK_F1
#define RKEY_F2		VK_F2
#define RKEY_F3		VK_F3
#define RKEY_F4		VK_F4
#define RKEY_F5		VK_F5
#define RKEY_F6		VK_F6
#define RKEY_F7		VK_F7	
#define RKEY_F8		VK_F8
#define RKEY_F9		VK_F9
#define RKEY_F10	VK_F10
#define RKEY_F11	VK_F11
#define RKEY_F12	VK_F12


#define RKEY_SHIFT  11
#define RKEY_CTRL   12
#define RKEY_ALT    13


#define MAX_RKEY 128

extern int g_iKey[];

VOID GetRKeyState();





/*
========================================================================
*/



















/*
========================================================================

					[	Runner初始化和结束	]

========================================================================
*/

VOID InitRunner();
VOID EndRunner();
/*
========================================================================
*/





#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -