[C++]红警源码1部分代码

整个程序的入口是在STARTUP.CPP(查看代码感觉vs2022太不方便了,可能是用的比较少吧。。。),需要注意的是默认编译出来是DLL,需要修改配置才能编译成exe文件,不过由于程序运行时默认需要传参数,运行是需要读取各种文件,但这个git仓库是不提供这些非源码文件的,比如下边这些(还未列全),但是代码写的比较规范,可以作为学习的一个源码, 源码地址:https://github.com/electronicarts/CnC_Remastered_Collection.git,在gitee有不少仓库已经同步过来了:

PROLOG.CPS
TITLE.CPS
PALETTE.CPS
PALETTE.CPS
VERSION.TXT    
MOUSE.SHP    
EXPAND.DAT    
tabs.shp
PIPS.SHP    
SHADOW.SHP

/***********************************************************************************************
 * BulletTypeClass::Init_Heap -- Initialize the heap objects for the bullet type.              *
 *                                                                                             *
 *    This performs any necessary initialization for the bullet types.                         *
 *                                                                                             *
 * INPUT:   none                                                                               *
 *                                                                                             *
 * OUTPUT:  none                                                                               *
 *                                                                                             *
 * WARNINGS:   none                                                                            *
 *                                                                                             *
 * HISTORY:                                                                                    *
 *   07/06/1996 JLB : Created.                                                                 *
 *=============================================================================================*/
void BulletTypeClass::Init_Heap(void)
{
    /*
    **    These bullet type class objects must be allocated in the exact order that they
    **    are specified in the BulletType enumeration. This is necessary because the heap
    **    allocation block index serves double duty as the type number index.
    */
    new BulletTypeClass("Invisible");    //    BULLET_INVISIBLE
    new BulletTypeClass("Cannon");        //    BULLET_CANNON
    new BulletTypeClass("Ack");            //    BULLET_ACK
    new BulletTypeClass("Torpedo");        //    BULLET_TORPEDO
    new BulletTypeClass("FROG");            //    BULLET_FROG
    new BulletTypeClass("HeatSeeker");    //    BULLET_HEAT_SEEKER
    new BulletTypeClass("LaserGuided");    //    BULLET_LASER_GUIDED
    new BulletTypeClass("Lobbed");        //    BULLET_LOBBED
    new BulletTypeClass("Bomblet");        //    BULLET_BOMBLET
    new BulletTypeClass("Ballistic");    //    BULLET_BALLISTIC
    new BulletTypeClass("Parachute");    //    BULLET_PARACHUTE
    new BulletTypeClass("Fireball");        //    BULLET_FIREBALL
    new BulletTypeClass("LeapDog");        //    BULLET_DOG
    new BulletTypeClass("Catapult");        //    BULLET_CATAPULT
    new BulletTypeClass("AAMissile");    //    BULLET_AAMISSILE
    new BulletTypeClass("GPSSatellite");//    BULLET_GPS_SATELLITE
    new BulletTypeClass("NukeUp");        //    BULLET_NUKE_UP
    new BulletTypeClass("NukeDown");        //    BULLET_NUKE_DOWN
}
 

游戏里边有些接口是用于播放动画视频的:

void Play_Movie(char const * name, ThemeType theme, bool clrscrn, bool immediate)

加载图片的:

int Load_Picture(char const *filename, BufferClass& scratchbuf, BufferClass& destbuf, unsigned char *palette, PicturePlaneType format);

你可能感兴趣的:(c++,服务器,java)