161 lines
6.2 KiB
C++
161 lines
6.2 KiB
C++
|
//
|
||
|
// Copyright 2020 Electronic Arts Inc.
|
||
|
//
|
||
|
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is free
|
||
|
// software: you can redistribute it and/or modify it under the terms of
|
||
|
// the GNU General Public License as published by the Free Software Foundation,
|
||
|
// either version 3 of the License, or (at your option) any later version.
|
||
|
|
||
|
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed
|
||
|
// in the hope that it will be useful, but with permitted additional restrictions
|
||
|
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT
|
||
|
// distributed with this program. You should have received a copy of the
|
||
|
// GNU General Public License along with permitted additional restrictions
|
||
|
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
|
||
|
|
||
|
/* $Header: /CounterStrike/ENDING.CPP 1 3/03/97 10:24a Joe_bostic $ */
|
||
|
/***********************************************************************************************
|
||
|
*** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
|
||
|
***********************************************************************************************
|
||
|
* *
|
||
|
* Project Name : Command & Conquer *
|
||
|
* *
|
||
|
* File Name : ENDING.H *
|
||
|
* *
|
||
|
* Programmer : Barry W. Green *
|
||
|
* *
|
||
|
* Start Date : July 10, 1995 *
|
||
|
* *
|
||
|
* Last Update : July 10, 1995 [BWG] *
|
||
|
* *
|
||
|
*---------------------------------------------------------------------------------------------*
|
||
|
* Functions: *
|
||
|
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
|
||
|
#include "function.h"
|
||
|
|
||
|
void GDI_Ending(void)
|
||
|
{
|
||
|
#ifdef NEVER
|
||
|
if (TempleIoned) {
|
||
|
Play_Movie("GDIFINB");
|
||
|
} else {
|
||
|
Play_Movie("GDIFINA");
|
||
|
}
|
||
|
|
||
|
Score.Presentation();
|
||
|
|
||
|
if (TempleIoned) {
|
||
|
Play_Movie("GDIEND2");
|
||
|
} else {
|
||
|
Play_Movie("GDIEND1");
|
||
|
}
|
||
|
Play_Movie("CC2TEASE");
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
|
||
|
/***********************************************************************************************
|
||
|
* Nod_Ending -- play ending movies for Nod players *
|
||
|
* *
|
||
|
* INPUT: none *
|
||
|
* *
|
||
|
* OUTPUT: none *
|
||
|
* *
|
||
|
* WARNINGS: *
|
||
|
* *
|
||
|
* HISTORY: *
|
||
|
* 7/10/1995 BWG : Created. *
|
||
|
*=============================================================================================*/
|
||
|
void Nod_Ending(void)
|
||
|
{
|
||
|
#ifdef NEVER
|
||
|
static char const _tanpal[]={0x0,0x0,0xED,0x0,0x2C,0x0,0xFB,0x0,0xFD,0x0,0x0,0x0,0x0,0x0,0x52,0x0};
|
||
|
|
||
|
char fname[12];
|
||
|
char * satpic = new char[64000];
|
||
|
int oldfontxspacing = FontXSpacing;
|
||
|
void const * oldfont;
|
||
|
|
||
|
Score.Presentation();
|
||
|
|
||
|
oldfont = Set_Font(ScoreFontPtr);
|
||
|
|
||
|
void * localpal = Load_Alloc_Data(CCFileClass("SATSEL.PAL"));
|
||
|
Load_Uncompress(CCFileClass("SATSEL.CPS"), HidPage, HidPage);
|
||
|
memcpy(satpic, HidPage.Get_Buffer(), 64000);
|
||
|
|
||
|
void * kanefinl = Load_Sample("KANEFINL.AUD");
|
||
|
void * loopie6m = Load_Sample("LOOPIE6M.AUD");
|
||
|
|
||
|
Play_Movie("NODFINAL", THEME_NONE, false);
|
||
|
|
||
|
Hide_Mouse();
|
||
|
Wait_Vert_Blank(VertBlank);
|
||
|
Set_Palette(localpal);
|
||
|
memcpy(SeenBuff.Get_Buffer(), satpic, 64000);
|
||
|
Show_Mouse();
|
||
|
|
||
|
Keyboard->Clear();
|
||
|
Play_Sample(kanefinl, 255, 128);
|
||
|
Play_Sample(loopie6m, 255, 128);
|
||
|
|
||
|
bool mouseshown = false;
|
||
|
bool done = false;
|
||
|
int selection = 1;
|
||
|
bool printedtext = false;
|
||
|
while (!done) {
|
||
|
if (!printedtext && !Is_Sample_Playing(kanefinl)) {
|
||
|
printedtext++;
|
||
|
Alloc_Object(new ScorePrintClass(Text_String(TXT_SEL_TARGET), 0, 180, _tanpal));
|
||
|
mouseshown = true;
|
||
|
Show_Mouse();
|
||
|
}
|
||
|
Call_Back_Delay(1);
|
||
|
if (!Keyboard->Check()) {
|
||
|
if (!Is_Sample_Playing(loopie6m)) Play_Sample(loopie6m, 255, 128);
|
||
|
} else {
|
||
|
if (Is_Sample_Playing(kanefinl)) {
|
||
|
Clear_KeyBuffer();
|
||
|
} else {
|
||
|
int key = Keyboard->Get();
|
||
|
if ((key & 0xFF) == KN_LMOUSE && !(key & KN_RLSE_BIT)) {
|
||
|
int mousex = MouseQX;
|
||
|
int mousey = MouseQY;
|
||
|
if (mousey >= 22 && mousey <= 177) {
|
||
|
done++;
|
||
|
if (mousex < 160 && mousey < 100) selection = 2;
|
||
|
if (mousex < 160 && mousey >= 100) selection = 3;
|
||
|
if (mousex >= 160 && mousey >= 100) selection = 4;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if (mouseshown) Hide_Mouse();
|
||
|
delete satpic;
|
||
|
|
||
|
/* get rid of all the animating objects */
|
||
|
for (int i = 0; i < MAXSCOREOBJS; i++) if (ScoreObjs[i]) {
|
||
|
delete ScoreObjs[i];
|
||
|
ScoreObjs[i] = 0;
|
||
|
}
|
||
|
// erase the "choose a target" text
|
||
|
SeenBuff.Fill_Rect(0, 180, 319, 199, 0);
|
||
|
|
||
|
Hide_Mouse();
|
||
|
Keyboard->Clear();
|
||
|
|
||
|
Set_Font(oldfont);
|
||
|
FontXSpacing = oldfontxspacing;
|
||
|
Free_Sample(kanefinl);
|
||
|
Free_Sample(loopie6m);
|
||
|
|
||
|
sprintf(fname, "NODEND%d", selection);
|
||
|
PreserveVQAScreen = 1;
|
||
|
Play_Movie(fname);
|
||
|
|
||
|
Play_Movie("CC2TEASE");
|
||
|
#endif
|
||
|
}
|