早就听说《赤壁》游戏是在国产游戏中的先驱,后来听说销售情况不是很好,干脆就把源码卖了,也就是业内人士常说的《G档案》。我费尽千辛万苦,在网上下载到了源码和标准版的游戏执行档。
分析了CBMain.CPP,大致情况如下:
BOOL MMXCPUID()主要是监测CPU是否支持MMX功能。
BOOL MAIN_TestInstance()检测如果已经有本游戏的实例在运行,则不再重新启用新的实例。
BOOL MAIN_TestCD()检测如果是豪华版的话,需要插入CD。
BOOL doInit()游戏初始化。
BOOL MAIN_InitOthers()游戏初始化。
int PASCAL WinMain()为游戏主程序入口。
其中主窗口初始化函数DD_InitWindow()在Ddapi.cpp中定义。
GAME_GetSrcPath()为取得游戏安装路径,在Cbgame.cpp中定义,这里取得WayAhead.dat的内容,WayAhead.dat文件内容经过加密。
主程序中有这么一句代码,应该是检测支持MMX,就显示MMX的图标。
if( IntelSplashInit() == TRUE )
{
IntelSplash();
}
不懂的地方还有很多,希望有同道一同学习,一同分析,一同进步。