📄 hotblood.c
字号:
{ 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 + -