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

2023-12-25 15:30:58

整个程序的入口是在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);

文章来源:https://blog.csdn.net/r77683962/article/details/135199679
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。