亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? aliens.cpp

?? After decades of war one company, who had gained powerful supplying both sides with weaponary, steps
?? CPP
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
/*Copyright (C) 2003 Parallel RealitiesThis program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.*/#include "aliens.h"signed char placeAlien(object *theEnemy){	if (rand() % 2 == 0)		theEnemy->x = Math::rrand(800, 1600);	else		theEnemy->x = Math::rrand(-800, 0);	if (rand() % 2 == 0)		theEnemy->y = Math::rrand(600, 1200);	else		theEnemy->y = Math::rrand(-600, 0);	if (currentGame.area == 24)	{		theEnemy->x = 800;		theEnemy->y = Math::rrand(200, 400);	}	for (int i = 0 ; i < MAX_ALIENS ; i++)	{		if ((enemy[i].owner != theEnemy) && (enemy[i].shield > 0))		{			if (Collision::collision(theEnemy->x, theEnemy->y, theEnemy->image[0]->w, theEnemy->image[0]->h, enemy[i].x, enemy[i].y, enemy[i].image[0]->w, enemy[i].image[0]->h))				return 0;		}	}	return 1;}/*This simply pulls back an alien from the array that is"dead" (no shield) and returns the index number so we can havea new one.*/int getAlien(){	for (int i = 0 ; i < engine.maxAliens ; i++)	{		if (!enemy[i].active)		{			return i;		}	}	return -1;}void addDrone(object *host){	int index = getAlien();	if (index == -1)		return;	enemy[index] = defEnemy[CD_DRONE];	enemy[index].active = 1;	enemy[index].face = rand() % 2;	enemy[index].owner = &enemy[index]; // Most enemies will own themselves	enemy[index].target = &enemy[index];	enemy[index].thinktime = (50 + rand() % 50);	enemy[index].systemPower = enemy[index].maxShield;	enemy[index].deathCounter = 0 - (enemy[index].maxShield * 3);	enemy[index].hit = 0;	enemy[index].x = host->x + rand() % 50;	enemy[index].y = host->y + rand() % 50;}void addSmallAsteroid(object *host){	if (engine.missionCompleteTimer != 0)		return;	int index = -1;	int debris = 1 + rand() % 10;	for (int i = 0 ; i < debris ; i++)		addBullet(&weapon[W_ROCKETS], host, 0, 0);	for (int i = 10 ; i < 20 ; i++)		if (enemy[i].active == 0)			index = i;	if (index == -1)		return;	if ((rand() % 10) > 3)	{		enemy[index] = defEnemy[CD_ASTEROID2];		enemy[index].imageIndex[0] = enemy[index].imageIndex[1] = 39 + rand() % 2;		enemy[index].image[0] = graphics.shipShape[enemy[index].imageIndex[0]];		enemy[index].image[1] = graphics.shipShape[enemy[index].imageIndex[1]];	}	else	{		enemy[index] = defEnemy[CD_DRONE];	}	enemy[index].owner = &enemy[index]; // Most enemies will own themselves	enemy[index].target = &enemy[index];	enemy[index].thinktime = 1;	enemy[index].systemPower = enemy[index].maxShield;	enemy[index].deathCounter = 0 - (enemy[index].maxShield * 3);	enemy[index].hit = 0;	enemy[index].x = host->x;	enemy[index].y = host->y;	enemy[index].active = 1;}signed char addAlien(){	int index = getAlien();	if ((index == -1) || (currentGame.area == 23) || (currentGame.area == 26))		return 0;	signed char *alienArray;	signed char numberOfAliens = 1;	alienArray = new signed char[5];	switch(currentGame.area)	{		case 0:		case 3:		case 11:			numberOfAliens = 1;			alienArray[0] = CD_DUALFIGHTER;			break;		case 1:		case 2:		case 4:		case 5:			numberOfAliens = 2;			alienArray[0] = CD_DUALFIGHTER;			alienArray[1] = CD_PROTOFIGHTER;			break;		case 9:		case 13:		case 14:		case 16:			numberOfAliens = 4;			alienArray[0] = CD_DUALFIGHTER;			alienArray[1] = CD_PROTOFIGHTER;			alienArray[2] = CD_MISSILEBOAT;			alienArray[3] = CD_AIMFIGHTER;			break;		case 25:			numberOfAliens = 6;			alienArray[0] = CD_DUALFIGHTER;			alienArray[1] = CD_PROTOFIGHTER;			alienArray[2] = CD_MISSILEBOAT;			alienArray[3] = CD_AIMFIGHTER;			alienArray[4] = CD_ESCORT;			alienArray[5] = CD_MOBILE_RAY;			break;		case 22:			numberOfAliens = 2;			alienArray[0] = CD_AIMFIGHTER;			alienArray[1] = CD_DUALFIGHTER;			break;		case 7:		case 8:			numberOfAliens = 3;			alienArray[0] = CD_DUALFIGHTER;			alienArray[1] = CD_PROTOFIGHTER;			alienArray[2] = CD_AIMFIGHTER;			break;		case 18:			numberOfAliens = 2;			alienArray[0] = CD_DUALFIGHTER;			alienArray[1] = CD_MINER;			break;		case 10:		case 15:			numberOfAliens = 1;			alienArray[0] = CD_ASTEROID;			break;		case 24:			numberOfAliens = 2;			alienArray[0] = CD_ASTEROID;			alienArray[1] = CD_ASTEROID2;			break;		case MAX_MISSIONS - 1:			numberOfAliens = 3;			alienArray[0] = CD_DUALFIGHTER;			alienArray[1] = CD_MISSILEBOAT;			alienArray[2] = CD_AIMFIGHTER;			if (currentGame.system == 2)			{				numberOfAliens = 4;				alienArray[3] = CD_PROTOFIGHTER;			}			break;		default:			numberOfAliens = 1;			alienArray[0] = CD_DUALFIGHTER;			break;	}	signed char randEnemy = alienArray[rand() % numberOfAliens];	if ((currentGame.area != 10) && (currentGame.area != 15) && (currentGame.area != 24))	{		if ((currentGame.system == 1) && (currentGame.area == MAX_MISSIONS - 1))		{			if ((rand() % 5) == 0)				randEnemy = CD_SLAVETRANSPORT;		}		if ((rand() % 6) == 0)			randEnemy = CD_TRANSPORTSHIP;	}	delete(alienArray);	enemy[index] = defEnemy[randEnemy];	enemy[index].active = 1;	enemy[index].face = rand() % 2;	enemy[index].owner = &enemy[index]; // Most enemies will own themselves	enemy[index].target = &enemy[index];	enemy[index].thinktime = (50 + rand() % 50);	enemy[index].systemPower = enemy[index].maxShield;	enemy[index].deathCounter = 0 - (enemy[index].maxShield * 3);	enemy[index].hit = 0;	Math::limitInt(&enemy[index].deathCounter, -250, 0);	// Attempts to place an alien. If it fails, the alien is deactivated.	for (int i = 0 ; i < 100 ; i++)	{		if (placeAlien(&enemy[index]))			break;		enemy[index].active = 0;		return 0;	}	if (enemy[index].classDef == CD_CARGOSHIP)		addCargo(&enemy[index], P_CARGO);	if (enemy[index].classDef == CD_MOBILE_RAY)		enemy[index].shield = 25;	if (enemy[index].classDef == CD_ESCORT)		enemy[index].shield = 50;	enemy[index].dx = Math::rrand(-2, 2);	enemy[index].dy = Math::rrand(-2, 2);	enemy[index].ammo[0] = 0;	if (currentGame.area == 18)		enemy[index].flags += FL_HASMINIMUMSPEED;	return 1;}void getPreDefinedAliens(){	FILE *fp;	char string[255];	strcpy(string, "");	int index, alienType, placeAttempt;	int barrierSpeed = 1;	sprintf(string, "data/aliens%d.dat", currentGame.area);	#if USEPACK	int dataLocation = locateDataInPak(string, 0);	if (dataLocation == -1)		return;	fp = fopen(PACKLOCATION, "rb");	fseek(fp, dataLocation, SEEK_SET);	#else	fp = fopen(string, "rb");	if (fp == NULL)		return;	#endif	fscanf(fp, "%d ", &index);	while (index != -1)	{		placeAttempt = 0;		fscanf(fp, "%d ", &alienType);		enemy[index] = defEnemy[alienType];		enemy[index].owner = &enemy[index];		enemy[index].target = &enemy[index];		enemy[index].face = rand() % 2;		enemy[index].active = 1;		/*		we make 1000 attempts to place this enemy since it is required. If after 1000 attempts		we still have managed to place the alien, then it simple isn't going to happen and we		will just exit the same. The chances of this happening are very very low!		*/		while (true)		{			placeAttempt++;			if (placeAlien(&enemy[index]))				break;			if (placeAttempt > 1000)				showErrorAndExit(2, "");		}		if (currentGame.area == 2)			addCargo(&enemy[index], P_CARGO);		else if (currentGame.area == 7)			addCargo(&enemy[index], P_PHOEBE);		if (index == WC_KLINE)		{			enemy[WC_KLINE].target = &player;			if (currentGame.area == 25)				enemy[WC_KLINE].shield = 500;		}		if (enemy[index].classDef == CD_CLOAKFIGHTER)		{			enemy[index].active = 0;			enemy[index].maxShield = enemy[index].shield = 400;			enemy[index].flags -= FL_RUNSAWAY;			enemy[index].speed = 3;		}		if ((enemy[index].classDef == CD_MOBILE_RAY) && (index >= 11))		{			enemy[index].active = 0;		}		if (enemy[index].classDef == CD_FIREFLY)		{			enemy[index].active = 0;		}		if (enemy[index].classDef == CD_BARRIER)		{			enemy[index].owner = &enemy[WC_BOSS];			enemy[index].speed = barrierSpeed;			barrierSpeed++;		}		if ((currentGame.area == 17) && (enemy[index].classDef == CD_BOSS))		{			enemy[index].imageIndex[1] = 29;			enemy[index].flags += FL_IMMORTAL;		}		if (currentGame.area == 18)			enemy[index].flags += FL_HASMINIMUMSPEED;		if (currentGame.area == 23)		{			enemy[index].flags = FL_WEAPCO;			if (index == WC_BOSS)				enemy[index].chance[1] = 5;		}		fscanf(fp, "%d ", &index);	}	fclose(fp);	if (currentGame.area == 5)	{		enemy[WC_BOSS].target = &player;		enemy[WC_BOSS].x = -400;		enemy[WC_BOSS].y = 300;		enemy[13].owner = &enemy[WC_BOSS];		enemy[13].target = &player;		enemy[13].dx = -25;		enemy[13].dy = -21;		enemy[12].owner = &enemy[WC_BOSS];		enemy[12].target = &player;		enemy[12].dx = -20;		enemy[12].dy = 37;	}	else if ((currentGame.area == 11) || (currentGame.area == 14))	{		enemy[WC_BOSS].target = &player;		enemy[WC_BOSS].x = -400;		enemy[WC_BOSS].y = 300;		enemy[13].owner = &enemy[WC_BOSS];		enemy[13].target = &player;		enemy[13].dx = 15;		enemy[13].dy = -22;		enemy[12].owner = &enemy[WC_BOSS];		enemy[12].target = &player;		enemy[12].dx = 15;		enemy[12].dy = 22;		enemy[11].owner = &enemy[13];		enemy[11].target = &player;		enemy[11].dx = -35;		enemy[11].dy = -12;		enemy[10].owner = &enemy[12];		enemy[10].target = &player;		enemy[10].dx = -35;		enemy[10].dy = 20;		if (currentGame.area == 14)		{			enemy[WC_BOSS].AIType = AI_EVASIVE;			for (int i = 10 ; i < 15 ; i++)			{				enemy[i].imageIndex[0] += 15;				enemy[i].imageIndex[1] += 15;				enemy[i].image[0] = graphics.shipShape[enemy[i].imageIndex[0]];				enemy[i].image[1] = graphics.shipShape[enemy[i].imageIndex[1]];			}		}	}	else if (currentGame.area == 21)	{		enemy[WC_BOSS].target = &player;		enemy[WC_BOSS].x = 400;		enemy[WC_BOSS].y = 300;		enemy[13].owner = &enemy[WC_BOSS];		enemy[13].dy = 20;		enemy[12].owner = &enemy[WC_BOSS];		enemy[12].dy = -16;	}}void addFriendly(int type){	if (type != FR_SID)		enemy[type] = defEnemy[CD_FRIEND];	else		enemy[type] = defEnemy[CD_SID];	enemy[type].owner = &enemy[type];	enemy[type].target = &enemy[type];	enemy[type].active = 1;	if (rand() % 2 == 0)		enemy[type].x = Math::rrand(400, 550);	else		enemy[type].x = Math::rrand(250, 400);	if (rand() % 2 == 0)		enemy[type].y = Math::rrand(300, 450);	else		enemy[type].y = Math::rrand(150, 300);	if (type == FR_PHOEBE)		enemy[type].classDef = CD_PHOEBE;	if (type == FR_URSULA)		enemy[type].classDef = CD_URSULA;	// For the sake of it being the final battle :)	if (currentGame.area == 25)		enemy[type].flags += FL_IMMORTAL;}void setTarget(int index){	engine.targetIndex = index;	engine.targetShield = 85;	engine.targetShield /= enemy[index].shield;	engine.targetArrowTimer = -1;	if (currentGame.area == 10)		engine.targetArrowTimer = 0;}void initAliens(){	for (int i = 0 ; i < MAX_ALIENS ; i++)	{		enemy[i].active = 0;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品久久久久婷婷| 日本aⅴ免费视频一区二区三区 | 国产精品国产三级国产普通话蜜臀| 欧洲一区二区三区在线| 国产精品乡下勾搭老头1| 亚洲免费观看高清完整版在线| 精品国产一区二区三区久久影院| 91福利国产成人精品照片| 国产精品资源网| 日韩国产精品久久久| 亚洲精品网站在线观看| 久久精品国产一区二区三区免费看| 亚洲三级在线观看| 国产亚洲午夜高清国产拍精品| 欧美精品99久久久**| 色综合天天综合在线视频| 国产成人av影院| 久久99精品久久久久久动态图 | 成人av网站在线观看| 青青草原综合久久大伊人精品优势| 日韩久久一区二区| 欧美激情一区二区三区不卡 | 成人欧美一区二区三区视频网页 | 欧美精品少妇一区二区三区| 91麻豆蜜桃一区二区三区| 夫妻av一区二区| 国产精品自拍网站| 精品无人码麻豆乱码1区2区 | 亚洲福利视频三区| 一区二区视频在线看| 国产精品视频观看| 欧美激情一区三区| 国产色婷婷亚洲99精品小说| 久久综合九色欧美综合狠狠| 日韩手机在线导航| 日韩视频免费观看高清完整版| 欧美日韩高清在线| 欧美日韩国产一级| 在线成人免费观看| 日韩视频免费观看高清完整版在线观看 | 99久久99久久免费精品蜜臀| 国产成人免费视| 国产ts人妖一区二区| 国产精品91一区二区| 国产精品综合久久| 成人在线综合网站| av电影在线观看不卡| 99国产精品久久久久久久久久 | 日韩欧美一级二级三级| 日韩女优视频免费观看| 精品久久国产老人久久综合| 精品国产1区2区3区| 久久久久久久久岛国免费| 久久精品欧美日韩| 国产精品久久久久三级| 亚洲美腿欧美偷拍| 亚欧色一区w666天堂| 日韩高清欧美激情| 精品无人区卡一卡二卡三乱码免费卡| 国产一区二区看久久| 国产成a人亚洲| av不卡在线观看| 一区二区三区精品在线| 亚洲综合一二区| 奇米888四色在线精品| 久久99热狠狠色一区二区| 国产福利视频一区二区三区| 不卡一区二区三区四区| 91精品福利视频| 日韩欧美国产三级电影视频| 国产亚洲污的网站| 亚洲精品国久久99热| 欧美aaa在线| 激情六月婷婷久久| 色综合视频一区二区三区高清| 欧美欧美欧美欧美首页| 久久久不卡网国产精品一区| 亚洲嫩草精品久久| 蜜桃在线一区二区三区| 成人精品鲁一区一区二区| 欧美综合亚洲图片综合区| 日韩欧美一二三区| 亚洲色图制服诱惑| 久久国产精品第一页| 91麻豆自制传媒国产之光| 日韩一级片在线观看| √…a在线天堂一区| 美腿丝袜亚洲色图| 色综合久久九月婷婷色综合| 日韩欧美色综合网站| 亚洲欧美日韩小说| 韩国视频一区二区| 亚洲精品国久久99热| 久久97超碰色| 欧美在线视频全部完| 久久亚洲一区二区三区明星换脸| 亚洲精品v日韩精品| 国产精品18久久久久久久久| 欧美日韩国产成人在线91| 中文字幕一区二区三区在线播放 | 成人精品免费视频| 日韩亚洲欧美中文三级| 一区二区三区成人| 国产精品中文欧美| 欧美一级二级三级蜜桃| 一区二区免费在线| jlzzjlzz亚洲女人18| 久久综合久色欧美综合狠狠| 亚洲国产色一区| 99re成人在线| 国产日本一区二区| 精品一区二区日韩| 欧美精品v日韩精品v韩国精品v| 亚洲视频精选在线| 国产69精品一区二区亚洲孕妇| 日韩一区二区中文字幕| 亚洲国产精品综合小说图片区| 99精品欧美一区二区蜜桃免费| 久久精品人人爽人人爽| 美女视频一区二区| 欧美一区二区视频免费观看| 亚洲午夜精品一区二区三区他趣| 91视频在线观看| 国产精品久久久久天堂| 成人午夜免费av| 国产偷v国产偷v亚洲高清 | 欧美在线视频你懂得| 亚洲品质自拍视频| 成人91在线观看| 国产精品美女一区二区在线观看| 国产一区二区精品在线观看| 亚洲精品在线电影| 精品一区二区三区在线观看 | 欧美一区二区视频观看视频| 偷拍日韩校园综合在线| 欧美日本一道本| 视频一区二区三区中文字幕| 欧美日韩在线精品一区二区三区激情| 一区二区三区四区乱视频| 色久优优欧美色久优优| 亚洲精品国产第一综合99久久 | 在线观看日韩高清av| 亚洲人一二三区| 91久久精品一区二区三| 亚洲无人区一区| 91精品在线观看入口| 毛片不卡一区二区| 精品国产麻豆免费人成网站| 国内成人精品2018免费看| 国产亚洲精品中文字幕| 国产欧美一区二区精品忘忧草| 国产精品自拍一区| 国产精品进线69影院| 91久久精品日日躁夜夜躁欧美| 亚洲福利一区二区三区| 日韩欧美国产综合| 国产传媒欧美日韩成人| 亚洲欧美自拍偷拍| 欧美日韩一区二区三区四区五区 | 欧美精品99久久久**| 久久精品99国产精品日本| 久久精品一区八戒影视| 99综合影院在线| 亚洲国产精品精华液网站| 日韩欧美视频在线| 成人avav影音| 午夜av区久久| 精品国产百合女同互慰| www.久久精品| 日日摸夜夜添夜夜添精品视频 | 丝袜美腿高跟呻吟高潮一区| 欧美大片在线观看一区| 成人美女在线视频| 视频在线观看国产精品| 国产女同互慰高潮91漫画| 在线观看国产一区二区| 久久成人精品无人区| 亚洲欧美电影一区二区| 欧美一区二区美女| bt欧美亚洲午夜电影天堂| 天天做天天摸天天爽国产一区| 久久理论电影网| 欧美日免费三级在线| 国产一区999| 性做久久久久久久免费看| 国产无一区二区| 7777女厕盗摄久久久| 从欧美一区二区三区| 欧美a级一区二区| 亚洲欧美日韩国产综合| 久久综合色一综合色88| 欧美日韩性生活| av亚洲精华国产精华精华 | 一本大道久久a久久精二百 | 99精品欧美一区二区蜜桃免费| 欧美aaaaa成人免费观看视频| 亚洲精品欧美综合四区| 久久久久久久av麻豆果冻| 欧美欧美午夜aⅴ在线观看| 99久久国产综合精品麻豆|