⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hotblood.c

📁 <B>韩国游戏《热血》</B>
💻 C
📖 第 1 页 / 共 5 页
字号:
			{ 1,  2,  3, 99},
			{ 1,  2,  4, 99},
			{ 1,  2,  3, 99},
			{ 1,  2,  3,  4},
			{ 1,  2,  3,  4},
			{ 1,  2,  3, 99},
			{ 1,  2,  4, 99},
			{ 1,  2,  3,  4},
			{ 1,  2,  3,  4},
			{ 1,  2,  3,  4},
			{ 3,  1,  2,  4},
			{99,  1,  2,  3}
		}
	};

	for( i = 0;i < 3;i++ ) {
		for( j = 0;j < 14;j++ ) {
			for( k = 0;k < 4;k++ ) {
				pme->typeInOrder[i][j][k] = typeInOrder[i][j][k];
				pme->xyInOrder[i][j][k] = xyInOrder[i][j][k];
			}
		}
	}
	
	pme->HB_Score = 0;
}

static void InitStage(IApplet * pi)
{
	HotBloodApp * pme = (HotBloodApp *)pi;
	
	pme->bossOn = FALSE;
	pme->onceBoss = FALSE;
	pme->onceBackGround = FALSE;
	pme->emptyLineUp = FALSE;
	pme->pigLiveOK = FALSE;

	pme->enemyLineUp = 0;
	pme->timeforEnergy = 0;
	pme->timeforEnemy = 0;
	pme->introInfoY = 90;

	pme->numType1 = 0;
	pme->numType2 = 0;
	pme->numType3 = 0;
	
	//A.I 函荐 檬扁拳.
	pme->fightNum[0] = 0;
	pme->fightNum[1] = 0;

	pme->delay_Boss = 0;
	pme->bossapp = FALSE;
}

//=======================================================
// 皋葛府 秦力
//=======================================================
static void HotBlood_FreeData(IApplet * pi)
{
	int i;
	HotBloodApp * pme = (HotBloodApp *)pi;

	//俊呈瘤官 倔奔 捞固瘤 秦力.
	if( pme->memRelease ) {

		ISHELL_CancelTimer(pme->a.m_pIShell, NULL, (void *)pme);

		for( i = 0;i < 7;i++ ) {
			if( pme->m_pIFace[i] != NULL ) {
				IIMAGE_Release(pme->m_pIFace[i]);
				pme->m_pIFace[i] = NULL;
			}
		}

		if( pme->m_pIText != NULL ) {
			ITEXTCTL_Release(pme->m_pIText);
			pme->m_pIText = NULL;
		}

		//肺爹官 按眉 秦力.
		pme->bar.denit(&pme->bar);

		//荤款靛 秦力.
		if( pme->m_pISoundPlayer ) {
			ISHELL_FreeResData(pme->a.m_pIShell, pme->m_pSoundDatatmp);
			ISOUNDPLAYER_Set(pme->m_pISoundPlayer, NULL, NULL);
			ISOUNDPLAYER_RegisterNotify(pme->m_pISoundPlayer, NULL, NULL);
			ISOUNDPLAYER_Stop(pme->m_pISoundPlayer);
			ISOUNDPLAYER_Release(pme->m_pISoundPlayer);

			pme->Playing = FALSE;  //荤款靛 楷林 辆丰
			pme->m_pISoundPlayer = NULL;
			pme->m_pSoundData = NULL;
			pme->m_pSoundDatatmp = NULL;
		}
	}

	//硅版 捞固瘤 秦力.
	if( pme->m_pIBackGround != NULL ) {
		IIMAGE_Release(pme->m_pIBackGround);
		pme->m_pIBackGround = NULL;
	}

	ReleaseNetAndSocket(pi);
	

	// 某腐磐 捞固瘤 秦力.
	for( i = 0;i < 107;i++ ) {
		if( pme->m_pIPly[i] != NULL ) {
			IIMAGE_Release(pme->m_pIPly[i]);
			pme->m_pIPly[i] = NULL;
		}
	}
	
	//汲沥 目辑 捞固瘤 秦力.
	if( pme->m_pICursor != NULL ) {
		IIMAGE_Release(pme->m_pICursor);
		pme->m_pICursor = NULL;
	}

	//措拳芒 捞固瘤 秦力.
	if( pme->m_pITalkWindow != NULL ) {
		IIMAGE_Release(pme->m_pITalkWindow);
		pme->m_pITalkWindow = NULL;
	}

	//弊覆磊 捞固瘤 秦力.
	if( pme->m_pIShadow != NULL ) {
		IIMAGE_Release(pme->m_pIShadow);
		pme->m_pIShadow = NULL;
	}

	//霸烙汲沥 捞固瘤 秦力.
	for( i = 0;i < 4;i++ ) {
		if( pme->m_pIOption[i] != NULL ) {
			IIMAGE_Release(pme->m_pIOption[i]);
			pme->m_pIOption[i] = NULL;
		}
	}
	//汲沥目辑 捞固瘤 秦力.
	if( pme->m_pICursor != NULL ) {
		IIMAGE_Release(pme->m_pICursor);
		pme->m_pICursor = NULL;
	}

	//皋春滚瓢 捞固瘤 秦力.
	for( i = 0;i < 5;i++ ) {
		if( pme->m_pIButton[i] != NULL ) {
			IIMAGE_Release(pme->m_pIButton[i]);
			pme->m_pIButton[i] = NULL;
		}
	}
	
	//肺绊 捞固瘤 秦力.
	if( pme->m_pILogo != NULL ) {
		IIMAGE_Release(pme->m_pILogo);
		pme->m_pILogo = NULL;
	}

	//扼捞季胶 捞固瘤 秦力.
	for( i = 0;i < 2;i++ ) {
		if( pme->m_pILicenseLogo[i] != NULL ) {
			IIMAGE_Release(pme->m_pILicenseLogo[i]);
			pme->m_pILicenseLogo[i] = NULL;
		}
	}

	//扑诀 捞固瘤 秦力.
	for( i = 0;i < 4;i++ ) {
		if( pme->m_pIPopup[i] != NULL ) {
			IIMAGE_Release(pme->m_pIPopup[i]);
			pme->m_pIPopup[i] = NULL;
		}
	}

	//虐 汲疙 捞固瘤 秦力.
	for( i = 0;i < 5;i++ ) {
		if( pme->m_pIKeyHelp[i] != NULL ) {
			IIMAGE_Release(pme->m_pIKeyHelp[i]);
			pme->m_pIKeyHelp[i] = NULL;
		}
	}

	//霸烙 巩狼 捞固瘤 秦力.
	for( i = 0;i < 5;i++ ) {
		if( pme->m_pIContact[i] != NULL ) {
			IIMAGE_Release(pme->m_pIContact[i]);
			pme->m_pIContact[i] = NULL;
		}
	}

	//皋春 捞固瘤 秦力.
	for( i = 0;i < 10;i++ ) {
		if( pme->m_pIMenu[i] != NULL ) {
			IIMAGE_Release(pme->m_pIMenu[i]);
			pme->m_pIMenu[i] = NULL;
		}
	}

	//绊绊捞固瘤 秦力.
	if( pme->m_pIGoGo != NULL ) {
		IIMAGE_Release(pme->m_pIGoGo);
		pme->m_pIGoGo = NULL;
	}

	//蹬瘤赣府捞固瘤 秦力.
	if( pme->m_pIPigEnergy != NULL ) {
		IIMAGE_Release(pme->m_pIPigEnergy);
		pme->m_pIPigEnergy = NULL;
	}

	//痢荐 捞固瘤 秦力.
	if( pme->m_pIScore != NULL ) {
		IIMAGE_Release(pme->m_pIScore);
		pme->m_pIScore = NULL;
	}

	//焊呈胶 胶抛捞瘤 捞固瘤 秦力.
	for( i = 0;i < 3;i++ ) {
		if( pme->m_pIBonusImg[i] != NULL ) {
			IIMAGE_Release(pme->m_pIBonusImg[i]);
			pme->m_pIBonusImg[i] = NULL;
		}
	}
}

//=======================================================
// 霸烙 儒抚阑 傈眉利栏肺 包府窍绰 鸥捞赣.
//=======================================================
static void HotBlood_Process(void * pi)
{
	int i;
	HotBloodApp * pme = (HotBloodApp *)pi;

	switch( pme->GameState )
	{
		case GS_INTRO:
			if( pme->polyCount < 2 ) {
				IDISPLAY_SetColor(pme->a.m_pIDisplay, CLR_USER_BACKGROUND, MAKE_RGB(0, 0, 0));
				IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
				IDISPLAY_Update(pme->a.m_pIDisplay);
				pme->polyCount++;
			}else if( pme->polyCount < 10 ) {
				IDISPLAY_SetColor(pme->a.m_pIDisplay, CLR_USER_BACKGROUND, MAKE_RGB(0, 0, 0));
				IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
				IIMAGE_Draw(pme->m_pILogo, 0, (pme->m_cxWidth - 116) / 2);
				IDISPLAY_Update(pme->a.m_pIDisplay);
				pme->polyCount++;
			}else {
				pme->polyCount = 0;
				//肺绊 捞固瘤 秦力.
				if( pme->m_pILogo != NULL ) {
					IIMAGE_Release(pme->m_pILogo);
					pme->m_pILogo = NULL;
				}
				//肺绊 捞固瘤 肺靛.
				if( (pme->m_pILogo = ISHELL_LoadResImage(pme->a.m_pIShell, HOTBLOOD_RES_FILE, IDB_LOGO)) == NULL )		return;
				//扼捞季胶 捞固瘤 肺靛.
				for( i = 0;i < 2;i++ ) {
					pme->m_pILicenseLogo[i] = ISHELL_LoadResImage(pme->a.m_pIShell, HOTBLOOD_RES_FILE, (int16)(i + 162));
				}
				if( pme->soundOn ) {
					PlayMMF(pi, 1);
				}
				pme->GameState = GS_LOGO;
			}
			break;
		case GS_LOGO:
			drawLogo(pi);
			break;
		case GS_MENU:
			drawMenu(pi);
			break;
		case GS_HELP:
			if( pme->helppage == 0 ) 
				drawHelp(pi);
			break;
		case GS_PLAY:
			enemyManager(pi);
			if( pme->ply[0].PlayerState != PS_DEADLY_ATTACK_BY_SPEAR ) {
				if( !pme->ply[0].forDeath ) HotBlood_AI(pi);
			}
			shockCheck(pi);
			checkPig(pi);
			drawGame(pi);
			break;
		case GS_INNER_STAGE:
			checkPig(pi);
			drawGoGo(pi);
			drawGame(pi);
			checkNextStage(pi);
			break;
		case GS_INTRO_INFO:
			drawIntroInfo(pi);
			break;
		case GS_END_ST2:
			drawAduInfo(pi);
			break;
		case GS_BONUS_STAGE:
			drawGame(pi);
			break;
		case GS_BONUS_STAGE_END:
			if( pme->bonusCount < 5 ) {
				drawPlayer(pi);
				drawEnergy(pi);
				IDISPLAY_Update(pme->a.m_pIDisplay);
			}else if( pme->bonusCount < 15 ) {
				pme->bonusCount = 0;
				
				// 硅版 捞固瘤 秦力.
				if( pme->m_pIBackGround != NULL ) {
					IIMAGE_Release(pme->m_pIBackGround);
					pme->m_pIBackGround = NULL;
				}

				//焊呈胶 胶抛捞瘤 捞固瘤 秦力.
				for( i = 0;i < 2;i++ ) {
					if( pme->m_pIBonusImg[i] != NULL ) {
						IIMAGE_Release(pme->m_pIBonusImg[i]);
						pme->m_pIBonusImg[i] = NULL;
					}
				}
				//痢荐 捞固瘤 秦力.
				if( pme->m_pIScore != NULL ) {
					IIMAGE_Release(pme->m_pIScore);
					pme->m_pIScore = NULL;
				}
							
				pme->m_pIBackGround = ISHELL_LoadResImage(pme->a.m_pIShell, HOTBLOOD_RES_FILE, IDB_BACK2_1);

				// 厘档捍 捞固瘤 肺靛.
				for( i = 40;i < 52;i++ ) {
					if( (pme->m_pIPly[i] = ISHELL_LoadResImage(pme->a.m_pIShell, HOTBLOOD_RES_FILE, (int16)(i + 1))) == NULL )	return;
					IIMAGE_SetParm(pme->m_pIPly[i], IPARM_ROP, AEE_RO_TRANSPARENT, 0);
				}

				//痢荐 肺爹.
				if( (pme->m_pIScore = ISHELL_LoadResImage(pme->a.m_pIShell, HOTBLOOD_RES_FILE, IDB_SCORE2)) == NULL )		return;
				IIMAGE_SetParm(pme->m_pIScore, IPARM_ROP, AEE_RO_TRANSPARENT, 0);
				pme->stage = 2;
				InitPlayer(pi);
				InitStage(pi);
				//pme->GameState = GS_PLAY;
				pme->GameState = GS_START_ST2;
				IDISPLAY_SetColor(pme->a.m_pIDisplay, CLR_USER_BACKGROUND, MAKE_RGB(0, 0, 0));
				IDISPLAY_ClearScreen(pme->a.m_pIDisplay);
				IIMAGE_SetOffset(pme->m_pIBackGround, 0, -(pme->BackGroundY));
				IIMAGE_SetDrawSize(pme->m_pIBackGround, 120, 117);
				IIMAGE_Draw(pme->m_pIBackGround, 0, pme->O_PlayerY);		
			}
			break;
		//case GS_KEYHELP_ST1:
		case GS_START_ST1:
		case GS_START_ST2:
		case GS_START_ST3:
		case GS_BOSS_ST1:
		case GS_BOSS_ST2:
		case GS_BOSS_ST3:
		case GS_CONTINUE:
		case GS_BOSS1_HALF:
		case GS_BOSS2_HALF:
		case GS_BOSS3_HALF:
		case GS_BONUS_STAGE_END2:
		case GS_END_ST1:
			IIMAGE_SetOffset(pme->m_pIBackGround, 0, -(pme->BackGroundY));
			IIMAGE_SetDrawSize(pme->m_pIBackGround, 120, 117);
			IIMAGE_Draw(pme->m_pIBackGround, 0, pme->O_PlayerY);		

			drawPlayer(pi);
			drawIntroStage(pi);
			break;
		case GS_END:
			drawEndingInfo(pi);
			break;
		case GS_END_STAFF:
			drawStaffInfo(pi);
			break;
		case GS_END_MSG:
			IIMAGE_SetOffset(pme->m_pIBackGround, 0, -(pme->BackGroundY));
			IIMAGE_SetDrawSize(pme->m_pIBackGround, 120, 117);
			IIMAGE_Draw(pme->m_pIBackGround, 0, pme->O_PlayerY);
			drawMsgWindow(pi, 0);
			break;
	}
	if( !pme->bossDie ) ISHELL_SetTimer(pme->a.m_pIShell, TIMER_TIME, (PFNNOTIFY)HotBlood_Process, (void *)pme);
	else ISHELL_SetTimer(pme->a.m_pIShell, SLOW_TIME, (PFNNOTIFY)HotBlood_Process, (void *)pme);
}

static void checkPig(IApplet * pi)
{
	HotBloodApp * pme = (HotBloodApp *)pi;
	if( pme->pigLiveOK ) {
		if( pme->ply[0].yLevel == pme->pigYLevel ) {
			if( pme->ply[0].boundaryX > pme->pigX && pme->ply[0].boundaryX_R < pme->pigX ) {
				if( pme->soundOn ) {
					/*
					if( pme->Playing ) {
						ISOUNDPLAYER_Stop(pme->m_pISoundPlayer);
						pme->Playing = FALSE;
					}
					*/
					PlayMMF(pi, 13);
				}
				IIMAGE_SetOffset(pme->m_pIBackGround, pme->pigX, -(pme->BackGroundY) + 46 + pme->pigYLevel * 5);
				IIMAGE_SetDrawSize(pme->m_pIBackGround, 23, 14);
				IIMAGE_Draw(pme->m_pIBackGround, pme->pigX, pme->O_PlayerY + 46 + pme->pigYLevel * 5);
				pme->pigLiveOK = FALSE;
				if( pme->cheatMode == 0 || pme->cheatMode == 2 ) {
					if( pme->ply[0].HP + 80 > CHO_ENERGY ) pme->ply[0].HP = CHO_ENERGY;
					else pme->ply[0].HP += 80;
				}else if( pme->cheatMode == 1 ) {
					if( pme->ply[0].HP + 80 > CHO_CHEATED_ENERGY ) pme->ply[0].HP = CHO_CHEATED_ENERGY;
					else pme->ply[0].HP += 80;
				}
			}else if( pme->ply[0].boundaryX < pme->pigX + 23 && pme->ply[0].boundaryX_R > pme->pigX + 23) {
				if( pme->soundOn ) {
					/*
					if( pme->Playing ) {
						ISOUNDPLAYER_Stop(pme->m_pISoundPlayer);
						pme->Playing = FALSE;
					}
					*/
					PlayMMF(pi, 13);
				}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -