Initial Source Code commit
Initial commit of original Tiberian Dawn and Red Alert source code converted to build as DLLs, and compatible with the release version of Command & Conquer Remastered.
This commit is contained in:
parent
ea8ecc76fa
commit
03416d24e1
1038 changed files with 629779 additions and 0 deletions
160
REDALERT/ENDING.CPP
Normal file
160
REDALERT/ENDING.CPP
Normal file
|
@ -0,0 +1,160 @@
|
|||
//
|
||||
// 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
|
||||
}
|
Reference in a new issue