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

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

?? intermission.cpp

?? After decades of war one company, who had gained powerful supplying both sides with weaponary, steps
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*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 "intermission.h"/*Drives the cursor. Is used by some other screens too*/void doCursor(){	getPlayerInput();	Math::limitInt(&engine.cursor_x, 10, 790);	Math::limitInt(&engine.cursor_y, 10, 590);	graphics.blit(graphics.shape[0], engine.cursor_x, engine.cursor_y);}/*Sets the player's current status information lines. These are the linesthat are scrolled up the screen when the player clicks on Current StatusThese are set only once.*/void setStatusLines(){	char string[50];	sprintf(string, "System : %s", systemNames[currentGame.system]);	graphics.textSurface(0, string, 0, 0, FONT_WHITE);	signed char total = 0;	signed char completed = 0;		for (int i = 0 ; i < 10 ; i++)	{		if (systemPlanet[i].missionNumber > -1)		{			switch(systemPlanet[i].missionCompleted)   		{				case 0:					total++;					break;				case 1:					total++;					completed++;					break;			}		}	}	for (int i = 0 ; i < 30 ; i++)		graphics.textSurface(i, "", 0, 0, FONT_WHITE);	sprintf(string, "Missions Completed : %d/%d", completed, total);	graphics.textSurface(1, string, 0, 0, FONT_WHITE);	sprintf(string, "Shots Fired : %d", currentGame.shots);	graphics.textSurface(2, string, 0, 0, FONT_WHITE);	sprintf(string, "Hits Scored : %d", currentGame.hits);	graphics.textSurface(3, string, 0, 0, FONT_WHITE);	sprintf(string, "Accuracy : %d%%", currentGame.accuracy);	graphics.textSurface(4, string, 0, 0, FONT_WHITE);	sprintf(string, "Enemies Killed by Others : %d", currentGame.totalOtherKills);	graphics.textSurface(5, string, 0, 0, FONT_WHITE);	sprintf(string, "Total Cash Earned : %d", currentGame.cashEarned);	graphics.textSurface(6, string, 0, 0, FONT_WHITE);	graphics.textSurface(7, "*** Chris ***", 0, 0, FONT_WHITE);	sprintf(string, "Enemies Killed : %d", currentGame.totalKills);	graphics.textSurface(8, string, 0, 0, FONT_WHITE);	sprintf(string, "Shield Restores Picked Up : %d", currentGame.shieldPickups);	graphics.textSurface(9, string, 0, 0, FONT_WHITE);	sprintf(string, "Plasma Cells Picked Up : %d", currentGame.cellPickups);	graphics.textSurface(10, string, 0, 0, FONT_WHITE);	sprintf(string, "Rockets Picked Up : %d", currentGame.rocketPickups);	graphics.textSurface(11, string, 0, 0, FONT_WHITE);	sprintf(string, "Powerups Picked Up : %d", currentGame.rocketPickups);	graphics.textSurface(12, string, 0, 0, FONT_WHITE);	sprintf(string, "Mines Destroyed : %d", currentGame.minesKilled);	graphics.textSurface(13, string, 0, 0, FONT_WHITE);	sprintf(string, "Slaves Rescued : %d", currentGame.slavesRescued);	graphics.textSurface(14, string, 0, 0, FONT_WHITE);	sprintf(string, "Cargo Picked Up : %d", currentGame.cargoPickups);	graphics.textSurface(15, string, 0, 0, FONT_WHITE);	if (currentGame.hasWingMate1)	{		graphics.textSurface(16, "*** Phoebe ***", 0, 0, FONT_WHITE);		sprintf(string, "Enemies Killed : %d", currentGame.wingMate1Kills);		graphics.textSurface(17, string, 0, 0, FONT_WHITE);		sprintf(string, "Ejections : %d", currentGame.wingMate1Ejects);		graphics.textSurface(18, string, 0, 0, FONT_WHITE);	}	if (currentGame.hasWingMate2)	{		graphics.textSurface(19, "*** Ursula ***", 0, 0, FONT_WHITE);		sprintf(string, "Enemies Killed : %d", currentGame.wingMate2Kills);		graphics.textSurface(20, string, 0, 0, FONT_WHITE);		sprintf(string, "Ejections : %d", currentGame.wingMate2Ejects);		graphics.textSurface(21, string, 0, 0, FONT_WHITE);	}	signed char percentage = 0;	if ((currentGame.secondaryMissions > 0) && (currentGame.secondaryMissionsCompleted > 0))		percentage = (currentGame.secondaryMissionsCompleted / currentGame.secondaryMissions) * 100;	sprintf(string, "Seconday Missions Completed : %d / %d (%d%%)", currentGame.secondaryMissionsCompleted, currentGame.secondaryMissions, percentage);	graphics.textSurface(24, string, 0, 0, FONT_WHITE);	int timeTaken = currentGame.timeTaken;	signed char clock = 0;	while (timeTaken > 3599)	{		clock++;		timeTaken -= 3600;	}	sprintf(string, "Total Time : %.2d", clock);	clock = 0;	while (timeTaken > 59)	{		clock++;		timeTaken -= 60;	}	sprintf(string, "%s:%.2d:%.2d", string, clock, timeTaken);	graphics.textSurface(26, string, -1, 0, FONT_WHITE);	graphics.textSurface(27, "Current Status", -1, 0, FONT_WHITE);	graphics.textShape[0].y = 400;	graphics.textShape[0].x = 150;	for (int i = 1 ; i < 25 ; i++)	{		graphics.textShape[i].y = graphics.textShape[i - 1].y + 20;		if ((i == 7) || (i == 16) || (i == 19))			graphics.textShape[i].y += 25;		graphics.textShape[i].x = 150;	}	graphics.textShape[26].y = 404;	graphics.textShape[27].y = 83;}/*Sets the names and stats of the planets within the current system.This will later be placed into a data file.*/void setSystemPlanets(){	FILE *fp;	char string[100];	strcpy(string, "");	switch (currentGame.system)	{		case 0:			strcpy(string, "data/planets_spirit.dat");			break;		case 1:			strcpy(string, "data/planets_eyananth.dat");			break;		case 2:			strcpy(string, "data/planets_mordor.dat");			break;		case 3:			strcpy(string, "data/planets_sol.dat");			break;	}	#if USEPACK	int dataLocation = locateDataInPak(string, 1);	fp = fopen(PACKLOCATION, "rb");	fseek(fp, dataLocation, SEEK_SET);	#else	fp = fopen(string, "rb");	#endif	int distance;	char name[50];	int image;	for (int i = 0 ; i < 10 ; i++)	{		fscanf(fp, "%d %s %d", &distance, name, &image);		systemPlanet[i].y = distance;		strcpy(systemPlanet[i].name, name);		systemPlanet[i].image = graphics.shape[image];	} 	int messageMission;	int messageSlot;	char face[50];	char from[100];	char subject[100];	for (int i = 0 ; i < 10 ; i++)	{		fscanf(fp, "%d %d %s%*c", &messageMission, &messageSlot, face);		fscanf(fp, "%[^\n]%*c", from);		fscanf(fp, "%[^\n]%*c", subject);		systemPlanet[i].messageMission = messageMission;		systemPlanet[i].messageSlot = messageSlot;		systemPlanet[i].faceImage = getFace(face);		strcpy(systemPlanet[i].from, from);		strcpy(systemPlanet[i].subject, subject);	}	fclose(fp);}/*Spins the planets around the sun, spaced according to their Y valueas defined in setSystemPlanets(). Moving the cursor over the planetwill show their name and their current status*/signed char showSystem(float x, float y){	SDL_Rect r;	signed char planet = 0;	int planetSpace = systemPlanet[planet].y;	signed char rtn = 0;	// Blit the sun	graphics.blit(graphics.shape[30], 370, 220);	for (int i = 50 ; i < 300 ; i+= planetSpace)	{		x *= 0.75;		y *= 0.75;		graphics.circle(400, 250, i, graphics.screen, graphics.darkGrey);		r.x = int(400 + (sin(x) * i));		r.y = int(250 + (cos(y) * i));		r.w = 10;		r.h = 10;		r.x -= (systemPlanet[planet].image->w / 2);		r.y -= (systemPlanet[planet].image->h / 2);		graphics.blit(systemPlanet[planet].image, r.x, r.y);		if (Collision::collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, r.x, r.y, systemPlanet[planet].image->w, systemPlanet[planet].image->h))		{			graphics.drawString(systemPlanet[planet].name, -1, 545, FONT_WHITE);			if ((engine.keyState[SDLK_LCTRL]) || (engine.keyState[SDLK_RCTRL]))			{				if (currentGame.system == 0)				{					currentGame.stationedPlanet = planet;					currentGame.destinationPlanet = planet;					currentGame.area = systemPlanet[currentGame.stationedPlanet].missionNumber;					strcpy(currentGame.stationedName, systemPlanet[currentGame.stationedPlanet].name);				}				else				{					currentGame.destinationPlanet = planet;					strcpy(currentGame.destinationName, systemPlanet[currentGame.destinationPlanet].name);				}				rtn = 1;				engine.keyState[SDLK_LCTRL] = engine.keyState[SDLK_RCTRL] = 0;			}		}		planet++;		if (systemPlanet[planet].y == -1)			break;		planetSpace = systemPlanet[planet].y;	}	return rtn;}/*Scrolls the player's current information up the screen. Whenthe specified status line reaches a certain Y value, the entirelist is reset and the information lines begin again from the bottom(in other words, they loop around).*/void showStatus(SDL_Surface *infoSurface){	graphics.blit(infoSurface, 100, 80);	for (int i = 0 ; i < 22 ; i++)	{		graphics.textShape[i].y -= 0.25;		if ((graphics.textShape[i].y > 80) && (graphics.textShape[i].y < 400))			graphics.blitText(i);	}	if (graphics.textShape[21].y < 65)	{		graphics.textShape[0].y = 400;		for (int i = 1 ; i < 25 ; i++)		{			graphics.textShape[i].y = graphics.textShape[i - 1].y + 20;			if ((i == 7) || (i == 16) || (i == 19))				graphics.textShape[i].y += 25;		}	}	graphics.blevelRect(100, 80, 600, 20, 0x00, 0x00, 0x99);	graphics.blevelRect(100, 400, 600, 20, 0x00, 0x00, 0x99);	graphics.blitText(26);	graphics.blitText(27);}void createOptions(SDL_Surface *optionsSurface){	SDL_FillRect(optionsSurface, NULL, graphics.black);	graphics.blevelRect(optionsSurface, 0, 0, optionsSurface->w - 2, optionsSurface->h - 2, 0x00, 0x00, 0x44);	graphics.drawString("++ OPTIONS ++", 105, 8, FONT_WHITE, optionsSurface);	graphics.blevelRect(optionsSurface, 190, 45, 50, 22, 0x00, 0x00, 0x00);	graphics.blevelRect(optionsSurface, 250, 45, 50, 22, 0x00, 0x00, 0x00);	graphics.blevelRect(optionsSurface, 20, 45, 150, 22, 0x00, 0x00, 0x00);	if (currentGame.useSound)		graphics.blevelRect(optionsSurface, 190, 45, 50, 22, 0xff, 0x00, 0x00);	else		graphics.blevelRect(optionsSurface, 250, 45, 50, 22, 0xff, 0x00, 0x00);	graphics.drawString("ON", 207, 50, FONT_WHITE, optionsSurface);	graphics.drawString("OFF", 263, 50, FONT_WHITE, optionsSurface);	graphics.drawString("SOUND", 30, 50, FONT_WHITE, optionsSurface);	graphics.blevelRect(optionsSurface, 190, 95, 50, 22, 0x00, 0x00, 0x00);	graphics.blevelRect(optionsSurface, 250, 95, 50, 22, 0x00, 0x00, 0x00);	graphics.blevelRect(optionsSurface, 20, 95, 150, 22, 0x00, 0x00, 0x00);	if (currentGame.useMusic)		graphics.blevelRect(optionsSurface, 190, 95, 50, 22, 0xff, 0x00, 0x00);	else		graphics.blevelRect(optionsSurface, 250, 95, 50, 22, 0xff, 0x00, 0x00);	graphics.drawString("ON", 207, 100, FONT_WHITE, optionsSurface);	graphics.drawString("OFF", 263, 100, FONT_WHITE, optionsSurface);	graphics.drawString("MUSIC", 30, 100, FONT_WHITE, optionsSurface); 	graphics.blevelRect(optionsSurface, 190, 145, 50, 22, 0x00, 0x00, 0x00);	graphics.blevelRect(optionsSurface, 250, 145, 50, 22, 0x00, 0x00, 0x00);	graphics.blevelRect(optionsSurface, 20, 145, 150, 22, 0x00, 0x00, 0x00);	if (currentGame.fullScreen)		graphics.blevelRect(optionsSurface, 190, 145, 50, 22, 0xff, 0x00, 0x00);	else		graphics.blevelRect(optionsSurface, 250, 145, 50, 22, 0xff, 0x00, 0x00);	graphics.drawString("ON", 207, 150, FONT_WHITE, optionsSurface);	graphics.drawString("OFF", 263, 150, FONT_WHITE, optionsSurface);	graphics.drawString("FULLSCREEN", 30, 150, FONT_WHITE, optionsSurface);	graphics.blevelRect(optionsSurface, 20, 195, 150, 22, 0x00, 0x00, 0x00);	graphics.blevelRect(optionsSurface, 190, 195, 110, 22, 0x00, 0x00, 0x00);	if (currentGame.autoSaveSlot == -1)	{		graphics.drawString("NONE", 225, 200, FONT_WHITE, optionsSurface);	}	else	{		char string[] = "Slot %d";		sprintf(string, "Slot %d", currentGame.autoSaveSlot + 1);		graphics.blevelRect(optionsSurface, 190, 195, 110, 22, 0xff, 0x00, 0x00);		graphics.drawString(string, 225, 200, FONT_WHITE, optionsSurface);	}	graphics.drawString("AUTOSAVE SLOT", 30, 200, FONT_WHITE, optionsSurface);}void showOptions(SDL_Surface *optionsSurface){	if ((engine.keyState[SDLK_LCTRL]) || (engine.keyState[SDLK_RCTRL]))	{		if (Collision::collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 417, 172, 45, 22))			currentGame.useSound = 1;		if (Collision::collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 478, 172, 45, 22))			currentGame.useSound = 0;		if (Collision::collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 417, 222, 45, 22))		{			currentGame.useMusic = 1;			if (engine.useAudio)			{				if (Mix_PausedMusic() == 1)					Mix_ResumeMusic();				else					Mix_PlayMusic(engine.music, -1);			}		}		if (Collision::collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 478, 222, 45, 22))		{			currentGame.useMusic = 0;			if (engine.useAudio)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产大片| 蜜臀国产一区二区三区在线播放| 久久99精品国产麻豆不卡| 欧美三区在线视频| 一区二区三区在线观看动漫| av男人天堂一区| 中文字幕在线观看不卡| 99这里只有精品| 亚洲丝袜精品丝袜在线| 一本久道久久综合中文字幕 | 99热在这里有精品免费| 欧美国产激情二区三区 | 亚洲欧美日韩久久| 日本精品一区二区三区四区的功能| 亚洲女厕所小便bbb| 日本精品一区二区三区四区的功能| 一区二区三区中文在线观看| 欧美性高清videossexo| 视频一区视频二区中文字幕| 精品久久久久久久一区二区蜜臀| 国产精品18久久久久| 国产精品白丝在线| 欧美日韩视频在线第一区 | 亚洲一区电影777| 91精品国产日韩91久久久久久| 麻豆高清免费国产一区| 欧美激情在线免费观看| 在线免费一区三区| 免费观看久久久4p| 国产亚洲精品福利| 色婷婷综合久久久久中文 | 成人精品国产福利| 亚洲另类中文字| 69久久夜色精品国产69蝌蚪网| 国产在线国偷精品产拍免费yy | 亚洲欧洲另类国产综合| 欧美日韩黄色影视| 国产精品99久久久久久宅男| 亚洲男人的天堂网| 日韩欧美国产高清| 99re8在线精品视频免费播放| 日韩电影在线一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整 | 亚洲午夜视频在线| 精品电影一区二区| 91精品办公室少妇高潮对白| 美女视频一区二区| 亚洲精品欧美综合四区| 精品国产一区二区三区不卡| 在线观看精品一区| 国产成人亚洲精品青草天美| 午夜精品一区二区三区三上悠亚 | 美腿丝袜在线亚洲一区| 国产精品成人午夜| 精品乱码亚洲一区二区不卡| 色噜噜狠狠一区二区三区果冻| 国产又黄又大久久| 亚洲成av人片一区二区梦乃| 中文字幕不卡在线播放| 日韩视频一区二区三区| 欧日韩精品视频| 成人av网址在线| 国内国产精品久久| 日本vs亚洲vs韩国一区三区二区 | www.欧美日韩| 国产精品一区二区三区网站| 日本成人超碰在线观看| 一区二区三区日韩欧美精品| 国产精品久久久久影院亚瑟| 精品国产凹凸成av人网站| 欧美福利视频导航| 欧美午夜在线一二页| 99久久精品国产导航| 丁香婷婷综合色啪| 国产永久精品大片wwwapp| 免费成人av资源网| 丝袜a∨在线一区二区三区不卡| 亚洲欧美福利一区二区| 国产精品伦理在线| 久久久国产精品午夜一区ai换脸| 日韩午夜在线影院| 91麻豆精品国产91久久久 | 欧美在线999| 在线视频综合导航| 91精品福利在线| 欧美性生活大片视频| 91极品美女在线| 欧美在线观看禁18| 欧美日韩在线免费视频| 欧美日韩大陆一区二区| 欧美日韩一二三| 6080yy午夜一二三区久久| 欧美嫩在线观看| 欧美一区二区女人| 欧美xxxx在线观看| 久久久久久一二三区| 久久久久久9999| 欧美国产精品中文字幕| 国产精品不卡视频| 樱花影视一区二区| 亚洲h在线观看| 日本不卡视频在线| 精品夜夜嗨av一区二区三区| 国产精品自在在线| 成人午夜看片网址| 色综合天天性综合| 欧美日韩一区二区在线视频| 欧美一区三区二区| 日韩美女视频在线| 欧美国产一区二区| 亚洲欧美另类小说| 性做久久久久久久久| 蜜臀av一区二区| 成人亚洲精品久久久久软件| 91麻豆福利精品推荐| 欧美精品三级日韩久久| 久久综合成人精品亚洲另类欧美 | 欧美激情中文字幕| 亚洲最大成人网4388xx| 日产精品久久久久久久性色| 国产美女av一区二区三区| av一二三不卡影片| 91麻豆精品国产91| 国产欧美日韩综合| 亚洲成精国产精品女| 国产一区在线看| 91高清在线观看| 精品粉嫩aⅴ一区二区三区四区| 亚洲天堂av一区| 精品一区二区三区的国产在线播放| 粉嫩aⅴ一区二区三区四区| 欧美亚洲一区二区三区四区| 精品成人一区二区三区四区| 亚洲欧美视频在线观看视频| 久久精品国产99国产精品| proumb性欧美在线观看| 欧美一区二区三区免费大片| 中文字幕亚洲欧美在线不卡| 老司机一区二区| 91久久线看在观草草青青| 2021国产精品久久精品| 亚洲曰韩产成在线| 国产成人精品免费一区二区| 在线播放亚洲一区| 自拍偷拍欧美精品| 久久精品久久精品| 欧美这里有精品| 中文字幕在线一区| 精品一区二区三区欧美| 精品视频色一区| 亚洲色图.com| 懂色中文一区二区在线播放| 日韩免费电影一区| 亚洲成人av一区| 色88888久久久久久影院野外| 国产精品视频麻豆| 国产在线播精品第三| 91麻豆精品91久久久久同性| 亚洲在线视频网站| 色哟哟一区二区三区| 国产精品美女久久久久aⅴ国产馆| 久久er精品视频| 制服.丝袜.亚洲.另类.中文| 亚洲一区在线视频| 色伊人久久综合中文字幕| 亚洲国产精品精华液2区45| 久久国产精品区| 日韩一区二区电影网| 五月天婷婷综合| 欧美日本不卡视频| 亚洲一级在线观看| 色香蕉久久蜜桃| 有坂深雪av一区二区精品| av一区二区不卡| 成人免费在线播放视频| 成人激情小说网站| 中文字幕在线不卡一区二区三区| 成人听书哪个软件好| 欧美国产精品专区| 北条麻妃国产九九精品视频| 国产精品国产三级国产| 白白色亚洲国产精品| 中文字幕一区二区在线观看| 91视视频在线直接观看在线看网页在线看| 欧美激情在线免费观看| av一本久道久久综合久久鬼色| ...中文天堂在线一区| 99精品久久只有精品| 亚洲精品v日韩精品| 欧美日韩你懂的| 日本 国产 欧美色综合| 欧美videos大乳护士334| 黄页网站大全一区二区| 欧美国产在线观看| 日本va欧美va精品| 精品国产精品网麻豆系列| 成人福利视频在线看| 成人欧美一区二区三区视频网页| 91极品美女在线| 蜜臂av日日欢夜夜爽一区|