CnC_Remastered_Collection

Command and Conquer: Red Alert
Log | Files | Refs | README | LICENSE

SPECIAL.H (5035B)


      1 //
      2 // Copyright 2020 Electronic Arts Inc.
      3 //
      4 // TiberianDawn.DLL and RedAlert.dll and corresponding source code is free 
      5 // software: you can redistribute it and/or modify it under the terms of 
      6 // the GNU General Public License as published by the Free Software Foundation, 
      7 // either version 3 of the License, or (at your option) any later version.
      8 
      9 // TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed 
     10 // in the hope that it will be useful, but with permitted additional restrictions 
     11 // under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
     12 // distributed with this program. You should have received a copy of the 
     13 // GNU General Public License along with permitted additional restrictions 
     14 // with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
     15 
     16 /* $Header: /CounterStrike/SPECIAL.H 1     3/03/97 10:25a Joe_bostic $ */
     17 /***********************************************************************************************
     18  ***              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               ***
     19  ***********************************************************************************************
     20  *                                                                                             *
     21  *                 Project Name : Command & Conquer                                            *
     22  *                                                                                             *
     23  *                    File Name : SPECIAL.H                                                    *
     24  *                                                                                             *
     25  *                   Programmer : Joe L. Bostic                                                *
     26  *                                                                                             *
     27  *                   Start Date : 02/27/95                                                     *
     28  *                                                                                             *
     29  *                  Last Update : February 27, 1995 [JLB]                                      *
     30  *                                                                                             *
     31  *---------------------------------------------------------------------------------------------*
     32  * Functions:                                                                                  *
     33  * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
     34 
     35 #ifndef SPECIAL_H
     36 #define SPECIAL_H
     37 
     38 class SpecialClass
     39 {
     40 	public:
     41 
     42 		/*
     43 		**	This initializes all members just like a constructor. A constructor
     44 		**	cannot be used for this class because it is part of a union.
     45 		*/
     46 		void Init(void);
     47 
     48 		/*
     49 		**	If the shroud should regenerated, then this flag will be true.
     50 		*/
     51 		unsigned IsShadowGrow:1;
     52 
     53 		/*
     54 		**	Controls the speedy build option -- used for testing.
     55 		*/
     56 		unsigned IsSpeedBuild:1;
     57 
     58 		/*
     59 		** If from install, then play the special installation movie and
     60 		** skip asking them what type of game they want to play.
     61 		*/
     62 		unsigned IsFromInstall:1;
     63 
     64 		/*
     65 		**	If capture the flag mode is on, this flag will be true. With this
     66 		**	flag enabled, then the flag is initially placed at the start of
     67 		**	the scenario.
     68 		*/
     69 		unsigned IsCaptureTheFlag:1;
     70 
     71 		/*
     72 		**	This flags controls whether weapons are inert. An inert weapon doesn't do any
     73 		**	damage. Effectively, if this is true, then the units never die.
     74 		*/
     75 		unsigned IsInert:1;
     76 
     77 		/*
     78 		**	If wheeled vehicles should do a 3-point turn when rotating in place, then
     79 		**	this flag is true.
     80 		*/
     81 		unsigned IsThreePoint:1;
     82 
     83 		/*
     84 		**	If Tiberium is allowed to spread and grow, then these flags will be true.
     85 		**	These are duplicated from the rules.ini file and also controlled by the
     86 		**	multiplayer dialog box.
     87 		*/
     88 		unsigned IsTGrowth:1;
     89 		unsigned IsTSpread:1;
     90 
     91 		/*
     92 		** Flag that we were spawned from WChat.
     93 		*/
     94 		unsigned IsFromWChat:1;
     95 
     96 		/*
     97 		**	If this flag is true, then the construction yard can undeploy back into an MCV.
     98 		**	Used to override the rules setting.
     99 		*/
    100 		unsigned UseMCVDeploy:1;
    101 		unsigned IsMCVDeploy:1;
    102 
    103 		/*
    104 		** New anti-griefing early win mode. ST - 1/31/2020 3:42PM
    105 		*/
    106 		unsigned IsEarlyWin:1;
    107 
    108 		/*
    109 		** New modern balance setting.
    110 		*/
    111 		unsigned ModernBalance:1;
    112 
    113 		/*
    114 		** Some additional padding in case we need to add data to the class and maintain backwards compatibility for save/load
    115 		*/
    116 		// MBL 07.21.2020 - https://jaas.ea.com/browse/TDRA-7537
    117 		// Loading save files from Live and July Patch 3 Beta versions results in a crash
    118 		// Fixes issue from Change 738397 2020/07/17 14:06:03
    119 		// 
    120 		// unsigned char SaveLoadPadding[128]; // Note: Never changed to 127 like TD did
    121 		//
    122 		// unsigned char SaveLoadPadding[124]; // Trying 124 like we did with TD - Failed
    123 		unsigned char SaveLoadPadding[128]; 	// Works with With last weeks saves (7/16/2020) and newest saves; Skyler says go with this.
    124 };
    125 
    126 
    127 #endif