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
162
REDALERT/WEAPON.H
Normal file
162
REDALERT/WEAPON.H
Normal file
|
@ -0,0 +1,162 @@
|
|||
//
|
||||
// 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/WEAPON.H 1 3/03/97 10:26a 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 : WEAPON.H *
|
||||
* *
|
||||
* Programmer : Joe L. Bostic *
|
||||
* *
|
||||
* Start Date : 05/17/96 *
|
||||
* *
|
||||
* Last Update : May 17, 1996 [JLB] *
|
||||
* *
|
||||
*---------------------------------------------------------------------------------------------*
|
||||
* Functions: *
|
||||
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
|
||||
#ifndef WEAPON_H
|
||||
#define WEAPON_H
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
** This is the constant data associated with a weapon. Some objects
|
||||
** can have multiple weapons and this class is used to isolate and
|
||||
** specify this data in a convenient and selfcontained way.
|
||||
*/
|
||||
class WeaponTypeClass
|
||||
{
|
||||
public:
|
||||
WeaponTypeClass(char const * name);
|
||||
WeaponTypeClass(NoInitClass const &) {}
|
||||
~WeaponTypeClass(void);
|
||||
|
||||
void * operator new(size_t);
|
||||
static void * operator new(size_t , void * ptr) {return(ptr);};
|
||||
void operator delete(void * pointer);
|
||||
|
||||
char const * Name(void) const {return(IniName);}
|
||||
bool Read_INI(CCINIClass & ini);
|
||||
static WeaponTypeClass * As_Pointer(WeaponType weapon);
|
||||
void Code_Pointers(void) {}
|
||||
void Decode_Pointers(void) {}
|
||||
ThreatType Allowed_Threats(void) const;
|
||||
bool Is_Wall_Destroyer(void) const;
|
||||
|
||||
/*
|
||||
** This is both the weapon type number and the index number into
|
||||
** the weapon array.
|
||||
*/
|
||||
int ID;
|
||||
|
||||
/*
|
||||
** This is the identifying name of this weapon.
|
||||
*/
|
||||
char const * IniName;
|
||||
|
||||
/*
|
||||
** Increase the weapon speed if the target is flying.
|
||||
*/
|
||||
unsigned IsTurboBoosted:1;
|
||||
|
||||
/*
|
||||
** If potential targets of this weapon should be scanned for
|
||||
** nearby friendly structures and if found, firing upon the target
|
||||
** would be discouraged, then this flag will be true.
|
||||
*/
|
||||
unsigned IsSupressed:1;
|
||||
|
||||
/*
|
||||
** If this weapon is equipped with a camera that reveals the
|
||||
** area around the firer, then this flag will be true.
|
||||
*/
|
||||
unsigned IsCamera:1;
|
||||
|
||||
/*
|
||||
** If this weapon requires charging before it can fire, then this
|
||||
** flag is true. In actuality, this only applies to the Tesla coil
|
||||
** which has specific charging animation. The normal rate of fire
|
||||
** value suffices for all other cases.
|
||||
*/
|
||||
unsigned IsElectric:1;
|
||||
|
||||
/*
|
||||
** This is the number of shots this weapon first (in rapid succession).
|
||||
** The normal value is 1, but for the case of two shooter weapons such as
|
||||
** the double barreled gun turrets of the Mammoth tank, this value will be
|
||||
** set to 2.
|
||||
*/
|
||||
int Burst;
|
||||
|
||||
/*
|
||||
** This is the unit class of the projectile fired. A subset of the unit types
|
||||
** represent projectiles. It is one of these classes that is specified here.
|
||||
** If this object does not fire anything, then this value will be BULLET_NONE.
|
||||
*/
|
||||
BulletTypeClass const * Bullet;
|
||||
|
||||
/*
|
||||
** This is the damage (explosive load) to be assigned to the projectile that
|
||||
** this object fires. For the rare healing weapon, this value is negative.
|
||||
*/
|
||||
int Attack;
|
||||
|
||||
/*
|
||||
** Speed of the projectile launched.
|
||||
*/
|
||||
MPHType MaxSpeed;
|
||||
|
||||
/*
|
||||
** Warhead to attach to the projectile.
|
||||
*/
|
||||
WarheadTypeClass const * WarheadPtr;
|
||||
|
||||
/*
|
||||
** Objects that fire (which can be buildings as well) will fire at a
|
||||
** frequency controlled by this value. This value serves as a count
|
||||
** down timer between shots. The smaller the value, the faster the
|
||||
** rate of fire.
|
||||
*/
|
||||
int ROF;
|
||||
|
||||
/*
|
||||
** When this object fires, the range at which it's projectiles travel is
|
||||
** controlled by this value. The value represents the number of cells the
|
||||
** projectile will travel. Objects outside of this range will not be fired
|
||||
** upon (in normal circumstances).
|
||||
*/
|
||||
LEPTON Range;
|
||||
|
||||
/*
|
||||
** This is the typical sound generated when firing.
|
||||
*/
|
||||
VocType Sound;
|
||||
|
||||
/*
|
||||
** This is the animation to display at the firing coordinate.
|
||||
*/
|
||||
AnimType Anim;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
Reference in a new issue