FUSE.H (4071B)
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/FUSE.H 1 3/03/97 10:24a 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 : FUSE.H * 24 * * 25 * Programmer : Joe L. Bostic * 26 * * 27 * Start Date : April 24, 1994 * 28 * * 29 * Last Update : April 24, 1994 [JLB] * 30 * * 31 *---------------------------------------------------------------------------------------------* 32 * Functions: * 33 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 34 35 #ifndef FUSE_H 36 #define FUSE_H 37 38 /**************************************************************************** 39 ** The fuse is used by projectiles to determine whether detonation should 40 ** occur. This is usually determined by tracking the distance to the 41 ** designated target reaches zero or when the timer expires. 42 */ 43 class FuseClass { 44 public: 45 FuseClass(void); 46 FuseClass(NoInitClass const &) {}; 47 ~FuseClass(void) {}; 48 49 void Arm_Fuse(COORDINATE location, COORDINATE target, int time=0xFF, int arming=0); 50 bool Fuse_Checkup(COORDINATE newlocation); 51 void Fuse_Write(FileClass & file); 52 void Fuse_Read(FileClass & file); 53 COORDINATE Fuse_Target(void); 54 55 /* 56 ** Fuses can detonate if enough time has elapsed. This value counts 57 ** down. When it reaches zero, detonation occurs. 58 */ 59 unsigned char Timer; 60 61 private: 62 63 /* 64 ** Some fuses need a certain amount of time before detonation can 65 ** occur. This counts down and when it reaches zero, normal fuse 66 ** detonation checking can occur. 67 */ 68 unsigned char Arming; 69 70 /* 71 ** This is the designated impact point of the projectile. The fuse 72 ** will trip when the closest point to this location has been reached. 73 */ 74 COORDINATE HeadTo; 75 76 /* 77 ** This is the running proximity value to the impact point. This value 78 ** will progressively get smaller. Detonation occurs when it reaches 79 ** zero or when it starts to grow larger. 80 */ 81 short Proximity; 82 }; 83 84 inline COORDINATE FuseClass::Fuse_Target(void) 85 { 86 return(HeadTo); 87 } 88 89 #endif