parameter.cpp 52 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191
  1. /*
  2. ** Command & Conquer Generals(tm)
  3. ** Copyright 2025 Electronic Arts Inc.
  4. **
  5. ** This program is free software: you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation, either version 3 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. /***********************************************************************************************
  19. *** 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 ***
  20. ***********************************************************************************************
  21. * *
  22. * Project Name : WWSaveLoad *
  23. * *
  24. * $Archive:: /Commando/Code/wwsaveload/parameter.cpp $*
  25. * *
  26. * Author:: Patrick Smith *
  27. * *
  28. * $Modtime:: 7/16/01 11:18a $*
  29. * *
  30. * $Revision:: 32 $*
  31. * *
  32. *---------------------------------------------------------------------------------------------*
  33. * Functions: *
  34. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
  35. #include "parameter.h"
  36. #include "parametertypes.h"
  37. #include "simpleparameter.h"
  38. #include "wwstring.h"
  39. #include "definitionclassids.h"
  40. /////////////////////////////////////////////////////////////////////
  41. //
  42. // Construct
  43. //
  44. // This is a virtual constructor that is capable of creating a new
  45. // instance of any type of parameter used in the Editable system.
  46. //
  47. /////////////////////////////////////////////////////////////////////
  48. ParameterClass *
  49. ParameterClass::Construct (Type type, void *data, const char *name)
  50. {
  51. ParameterClass *new_param = NULL;
  52. switch (type) {
  53. case TYPE_INT:
  54. new_param = W3DNEW IntParameterClass (data, name);
  55. break;
  56. case TYPE_FLOAT:
  57. new_param = W3DNEW FloatParameterClass (data, name);
  58. break;
  59. case TYPE_VECTOR2:
  60. new_param = W3DNEW Vector2ParameterClass (data, name);
  61. break;
  62. case TYPE_VECTOR3:
  63. new_param = W3DNEW Vector3ParameterClass (data, name);
  64. break;
  65. case TYPE_RECT:
  66. new_param = W3DNEW RectParameterClass (data, name);
  67. break;
  68. case TYPE_COLOR:
  69. new_param = W3DNEW ColorParameterClass (data, name);
  70. break;
  71. case TYPE_MATRIX3D:
  72. new_param = W3DNEW Matrix3DParameterClass (data, name);
  73. break;
  74. case TYPE_BOOL:
  75. new_param = W3DNEW BoolParameterClass (data, name);
  76. break;
  77. case TYPE_STRINGSDB_ID:
  78. new_param = W3DNEW StringsDBEntryParameterClass (data, name);
  79. break;
  80. case TYPE_ANGLE:
  81. new_param = W3DNEW AngleParameterClass (data, name);
  82. break;
  83. case TYPE_STRING:
  84. new_param = W3DNEW StringParameterClass ((StringClass *)data);
  85. new_param->Set_Name (name);
  86. break;
  87. case TYPE_FILENAME:
  88. new_param = W3DNEW FilenameParameterClass ((StringClass *)data);
  89. new_param->Set_Name (name);
  90. break;
  91. case TYPE_SOUND_FILENAME:
  92. new_param = W3DNEW SoundFilenameParameterClass ((StringClass *)data);
  93. new_param->Set_Name (name);
  94. break;
  95. case TYPE_ENUM:
  96. new_param = W3DNEW EnumParameterClass ((int *)data);
  97. new_param->Set_Name (name);
  98. break;
  99. case TYPE_GENERICDEFINITIONID:
  100. new_param = W3DNEW GenericDefParameterClass ((int *)data);
  101. new_param->Set_Name (name);
  102. break;
  103. case TYPE_GAMEOBJDEFINITIONID:
  104. new_param = W3DNEW GameObjDefParameterClass ((int *)data);
  105. new_param->Set_Name (name);
  106. break;
  107. case TYPE_WEAPONOBJDEFINITIONID:
  108. new_param = W3DNEW WeaponObjDefParameterClass ((int *)data);
  109. new_param->Set_Name (name);
  110. break;
  111. case TYPE_AMMOOBJDEFINITIONID:
  112. new_param = W3DNEW AmmoObjDefParameterClass ((int *)data);
  113. new_param->Set_Name (name);
  114. break;
  115. case TYPE_EXPLOSIONDEFINITIONID:
  116. new_param = W3DNEW ExplosionObjDefParameterClass ((int *)data);
  117. new_param->Set_Name (name);
  118. break;
  119. case TYPE_SOUNDDEFINITIONID:
  120. new_param = W3DNEW SoundDefParameterClass ((int *)data);
  121. new_param->Set_Name (name);
  122. break;
  123. case TYPE_MODELDEFINITIONID:
  124. new_param = W3DNEW ModelDefParameterClass ((int *)data);
  125. new_param->Set_Name (name);
  126. break;
  127. case TYPE_PHYSDEFINITIONID:
  128. new_param = W3DNEW PhysDefParameterClass ((int *)data);
  129. new_param->Set_Name (name);
  130. break;
  131. case TYPE_DEFINITIONIDLIST:
  132. new_param = W3DNEW DefIDListParameterClass ((DynamicVectorClass<int> *)data);
  133. new_param->Set_Name (name);
  134. ((DefIDListParameterClass *)new_param)->Set_Class_ID (CLASSID_GAME_OBJECTS);
  135. break;
  136. case TYPE_ZONE:
  137. new_param = W3DNEW ZoneParameterClass ((OBBoxClass *)data);
  138. new_param->Set_Name (name);
  139. break;
  140. case TYPE_FILENAMELIST:
  141. new_param = W3DNEW FilenameListParameterClass ((DynamicVectorClass<StringClass> *)data);
  142. new_param->Set_Name (name);
  143. break;
  144. case TYPE_SEPARATOR:
  145. new_param = W3DNEW SeparatorParameterClass;
  146. new_param->Set_Name (name);
  147. break;
  148. }
  149. return new_param;
  150. }
  151. //*******************************************************************************************//
  152. //
  153. // Start of StringParameterClass
  154. //
  155. //*******************************************************************************************//
  156. /////////////////////////////////////////////////////////////////////
  157. //
  158. // StringParameterClass
  159. //
  160. /////////////////////////////////////////////////////////////////////
  161. StringParameterClass::StringParameterClass (StringClass *string)
  162. : m_String (string)
  163. {
  164. return ;
  165. }
  166. /////////////////////////////////////////////////////////////////////
  167. //
  168. // StringParameterClass
  169. //
  170. /////////////////////////////////////////////////////////////////////
  171. StringParameterClass::StringParameterClass (const StringParameterClass &src)
  172. : m_String (NULL)
  173. {
  174. (*this) = src;
  175. return ;
  176. }
  177. /////////////////////////////////////////////////////////////////////
  178. //
  179. // operator=
  180. //
  181. /////////////////////////////////////////////////////////////////////
  182. const StringParameterClass &
  183. StringParameterClass::operator= (const StringParameterClass &src)
  184. {
  185. m_String = src.m_String;
  186. ParameterClass::operator= (src);
  187. return *this;
  188. }
  189. /////////////////////////////////////////////////////////////////////
  190. //
  191. // operator==
  192. //
  193. /////////////////////////////////////////////////////////////////////
  194. bool
  195. StringParameterClass::operator== (const StringParameterClass &src)
  196. {
  197. bool retval = false;
  198. if (m_String != NULL && src.m_String != NULL &&
  199. (m_String->Compare (*(src.m_String)) == 0)) {
  200. retval = true;
  201. }
  202. return retval;
  203. }
  204. /////////////////////////////////////////////////////////////////////
  205. //
  206. // operator==
  207. //
  208. /////////////////////////////////////////////////////////////////////
  209. bool
  210. StringParameterClass::operator== (const ParameterClass &src)
  211. {
  212. bool retval = false;
  213. if (src.Get_Type () == Get_Type ()) {
  214. retval = StringParameterClass::operator== ((const StringParameterClass &)src);
  215. }
  216. return retval;
  217. }
  218. /////////////////////////////////////////////////////////////////////
  219. //
  220. // Copy_Value
  221. //
  222. /////////////////////////////////////////////////////////////////////
  223. void
  224. StringParameterClass::Copy_Value (const ParameterClass &src)
  225. {
  226. if (src.Is_Type (ParameterClass::TYPE_STRING)) {
  227. (*m_String) = ((StringParameterClass &)src).Get_String ();
  228. }
  229. ParameterClass::Copy_Value (src);
  230. return ;
  231. }
  232. /////////////////////////////////////////////////////////////////////
  233. //
  234. // Get_String
  235. //
  236. /////////////////////////////////////////////////////////////////////
  237. const char *
  238. StringParameterClass::Get_String (void) const
  239. {
  240. const char * string = NULL;
  241. if (m_String != NULL) {
  242. string = (*m_String);
  243. }
  244. return string;
  245. }
  246. /////////////////////////////////////////////////////////////////////
  247. //
  248. // Set_String
  249. //
  250. /////////////////////////////////////////////////////////////////////
  251. void
  252. StringParameterClass::Set_String (const char * string)
  253. {
  254. if (m_String != NULL) {
  255. Set_Modified ();
  256. (*m_String) = string;
  257. }
  258. return ;
  259. }
  260. //*******************************************************************************************//
  261. //
  262. // Start of FilenameParameterClass
  263. //
  264. //*******************************************************************************************//
  265. /////////////////////////////////////////////////////////////////////
  266. //
  267. // FilenameParameterClass
  268. //
  269. /////////////////////////////////////////////////////////////////////
  270. FilenameParameterClass::FilenameParameterClass (StringClass *string)
  271. : StringParameterClass (string)
  272. {
  273. return ;
  274. }
  275. /////////////////////////////////////////////////////////////////////
  276. //
  277. // FilenameParameterClass
  278. //
  279. /////////////////////////////////////////////////////////////////////
  280. FilenameParameterClass::FilenameParameterClass (const FilenameParameterClass &src)
  281. : StringParameterClass (src)
  282. {
  283. (*this) = src;
  284. return ;
  285. }
  286. /////////////////////////////////////////////////////////////////////
  287. //
  288. // operator=
  289. //
  290. /////////////////////////////////////////////////////////////////////
  291. const FilenameParameterClass &
  292. FilenameParameterClass::operator= (const FilenameParameterClass &src)
  293. {
  294. StringParameterClass::operator= (src);
  295. return *this;
  296. }
  297. /////////////////////////////////////////////////////////////////////
  298. //
  299. // operator==
  300. //
  301. /////////////////////////////////////////////////////////////////////
  302. bool
  303. FilenameParameterClass::operator== (const FilenameParameterClass &src)
  304. {
  305. return StringParameterClass::operator== (src);
  306. }
  307. /////////////////////////////////////////////////////////////////////
  308. //
  309. // operator==
  310. //
  311. /////////////////////////////////////////////////////////////////////
  312. bool
  313. FilenameParameterClass::operator== (const ParameterClass &src)
  314. {
  315. return StringParameterClass::operator== (src);
  316. }
  317. /////////////////////////////////////////////////////////////////////
  318. //
  319. // Copy_Value
  320. //
  321. /////////////////////////////////////////////////////////////////////
  322. void
  323. FilenameParameterClass::Copy_Value (const ParameterClass &src)
  324. {
  325. if (src.Is_Type (ParameterClass::TYPE_FILENAME)) {
  326. Set_String (((FilenameParameterClass &)src).Get_String ());
  327. }
  328. StringParameterClass::Copy_Value (src);
  329. return ;
  330. }
  331. //*******************************************************************************************//
  332. //
  333. // Start of SoundFilenameParameterClass
  334. //
  335. //*******************************************************************************************//
  336. /////////////////////////////////////////////////////////////////////
  337. //
  338. // SoundFilenameParameterClass
  339. //
  340. /////////////////////////////////////////////////////////////////////
  341. SoundFilenameParameterClass::SoundFilenameParameterClass (StringClass *string)
  342. : FilenameParameterClass (string)
  343. {
  344. return ;
  345. }
  346. /////////////////////////////////////////////////////////////////////
  347. //
  348. // SoundFilenameParameterClass
  349. //
  350. /////////////////////////////////////////////////////////////////////
  351. SoundFilenameParameterClass::SoundFilenameParameterClass (const SoundFilenameParameterClass &src)
  352. : FilenameParameterClass (src)
  353. {
  354. (*this) = src;
  355. return ;
  356. }
  357. /////////////////////////////////////////////////////////////////////
  358. //
  359. // operator=
  360. //
  361. /////////////////////////////////////////////////////////////////////
  362. const SoundFilenameParameterClass &
  363. SoundFilenameParameterClass::operator= (const SoundFilenameParameterClass &src)
  364. {
  365. FilenameParameterClass::operator= (src);
  366. return *this;
  367. }
  368. /////////////////////////////////////////////////////////////////////
  369. //
  370. // operator==
  371. //
  372. /////////////////////////////////////////////////////////////////////
  373. bool
  374. SoundFilenameParameterClass::operator== (const SoundFilenameParameterClass &src)
  375. {
  376. return FilenameParameterClass::operator== (src);
  377. }
  378. //*******************************************************************************************//
  379. //
  380. // Start of EnumParameterClass
  381. //
  382. //*******************************************************************************************//
  383. /////////////////////////////////////////////////////////////////////
  384. //
  385. // EnumParameterClass
  386. //
  387. /////////////////////////////////////////////////////////////////////
  388. EnumParameterClass::EnumParameterClass (int *value)
  389. : m_Value (value)
  390. {
  391. return ;
  392. }
  393. /////////////////////////////////////////////////////////////////////
  394. //
  395. // EnumParameterClass
  396. //
  397. /////////////////////////////////////////////////////////////////////
  398. EnumParameterClass::EnumParameterClass (const EnumParameterClass &src)
  399. : m_Value (NULL)
  400. {
  401. (*this) = src;
  402. return ;
  403. }
  404. /////////////////////////////////////////////////////////////////////
  405. //
  406. // operator=
  407. //
  408. /////////////////////////////////////////////////////////////////////
  409. const EnumParameterClass &
  410. EnumParameterClass::operator= (const EnumParameterClass &src)
  411. {
  412. m_List.Delete_All ();
  413. m_Value = src.m_Value;
  414. m_List = src.m_List;
  415. ParameterClass::operator= (src);
  416. return *this;
  417. }
  418. /////////////////////////////////////////////////////////////////////
  419. //
  420. // operator==
  421. //
  422. /////////////////////////////////////////////////////////////////////
  423. bool
  424. EnumParameterClass::operator== (const EnumParameterClass &src)
  425. {
  426. bool retval = false;
  427. if (m_Value != NULL && src.m_Value != NULL &&
  428. (*m_Value) == (*src.m_Value))
  429. {
  430. retval = true;
  431. }
  432. return retval;
  433. }
  434. /////////////////////////////////////////////////////////////////////
  435. //
  436. // operator==
  437. //
  438. /////////////////////////////////////////////////////////////////////
  439. bool
  440. EnumParameterClass::operator== (const ParameterClass &src)
  441. {
  442. bool retval = false;
  443. if (src.Get_Type () == Get_Type ()) {
  444. retval = EnumParameterClass::operator== ((const EnumParameterClass &)src);
  445. }
  446. return retval;
  447. }
  448. /////////////////////////////////////////////////////////////////////
  449. //
  450. // Copy_Value
  451. //
  452. /////////////////////////////////////////////////////////////////////
  453. void
  454. EnumParameterClass::Copy_Value (const ParameterClass &src)
  455. {
  456. if (src.Is_Type (ParameterClass::TYPE_ENUM)) {
  457. (*m_Value) = ((EnumParameterClass &)src).Get_Selected_Value ();
  458. }
  459. ParameterClass::Copy_Value (src);
  460. return ;
  461. }
  462. /////////////////////////////////////////////////////////////////////
  463. //
  464. // Add_Value
  465. //
  466. /////////////////////////////////////////////////////////////////////
  467. void
  468. EnumParameterClass::Add_Value (const char *display_name, int value)
  469. {
  470. m_List.Add (ENUM_VALUE(display_name, value));
  471. return ;
  472. }
  473. /////////////////////////////////////////////////////////////////////
  474. //
  475. // Add_Value
  476. //
  477. /////////////////////////////////////////////////////////////////////
  478. void __cdecl
  479. EnumParameterClass::Add_Values (const char *first_name, int first_value, ...)
  480. {
  481. m_List.Add (ENUM_VALUE(first_name, first_value));
  482. va_list arg_list;
  483. va_start (arg_list, first_value);
  484. //
  485. // Add all the params on the stack (until we found
  486. // the terminator)
  487. //
  488. bool more_params = true;
  489. while (more_params) {
  490. //
  491. // Get the string param
  492. //
  493. const char *name = va_arg (arg_list, const char *);
  494. if (name == NULL) {
  495. more_params = false;
  496. } else {
  497. //
  498. // Add the string/id pair to the enum list
  499. //
  500. int value = va_arg (arg_list, int);
  501. m_List.Add (ENUM_VALUE(name, value));
  502. }
  503. }
  504. va_end (arg_list);
  505. return ;
  506. }
  507. //*******************************************************************************************//
  508. //
  509. // Start of PhysDefParameterClass
  510. //
  511. //*******************************************************************************************//
  512. /////////////////////////////////////////////////////////////////////
  513. //
  514. // PhysDefParameterClass
  515. //
  516. /////////////////////////////////////////////////////////////////////
  517. PhysDefParameterClass::PhysDefParameterClass (int *id)
  518. : m_Value (id)
  519. {
  520. return ;
  521. }
  522. /////////////////////////////////////////////////////////////////////
  523. //
  524. // PhysDefParameterClass
  525. //
  526. /////////////////////////////////////////////////////////////////////
  527. PhysDefParameterClass::PhysDefParameterClass (const PhysDefParameterClass &src)
  528. : m_Value (NULL)
  529. {
  530. (*this) = src;
  531. return ;
  532. }
  533. /////////////////////////////////////////////////////////////////////
  534. //
  535. // operator=
  536. //
  537. /////////////////////////////////////////////////////////////////////
  538. const PhysDefParameterClass &
  539. PhysDefParameterClass::operator= (const PhysDefParameterClass &src)
  540. {
  541. m_Value = src.m_Value;
  542. ParameterClass::operator= (src);
  543. return *this;
  544. }
  545. /////////////////////////////////////////////////////////////////////
  546. //
  547. // operator==
  548. //
  549. /////////////////////////////////////////////////////////////////////
  550. bool
  551. PhysDefParameterClass::operator== (const PhysDefParameterClass &src)
  552. {
  553. bool retval = false;
  554. if (m_Value != NULL && src.m_Value != NULL &&
  555. (*m_Value) == (*src.m_Value))
  556. {
  557. retval = true;
  558. }
  559. return retval;
  560. }
  561. /////////////////////////////////////////////////////////////////////
  562. //
  563. // operator==
  564. //
  565. /////////////////////////////////////////////////////////////////////
  566. bool
  567. PhysDefParameterClass::operator== (const ParameterClass &src)
  568. {
  569. bool retval = false;
  570. if (src.Get_Type () == Get_Type ()) {
  571. retval = PhysDefParameterClass::operator== ((const PhysDefParameterClass &)src);
  572. }
  573. return retval;
  574. }
  575. /////////////////////////////////////////////////////////////////////
  576. //
  577. // Copy_Value
  578. //
  579. /////////////////////////////////////////////////////////////////////
  580. void
  581. PhysDefParameterClass::Copy_Value (const ParameterClass &/*src*/)
  582. {
  583. //
  584. // We don't allow the value to be copied
  585. //
  586. return ;
  587. }
  588. //*******************************************************************************************//
  589. //
  590. // Start of ModelDefParameterClass
  591. //
  592. //*******************************************************************************************//
  593. /////////////////////////////////////////////////////////////////////
  594. //
  595. // ModelDefParameterClass
  596. //
  597. /////////////////////////////////////////////////////////////////////
  598. ModelDefParameterClass::ModelDefParameterClass (int *id)
  599. : m_Value (id)
  600. {
  601. return ;
  602. }
  603. /////////////////////////////////////////////////////////////////////
  604. //
  605. // ModelDefParameterClass
  606. //
  607. /////////////////////////////////////////////////////////////////////
  608. ModelDefParameterClass::ModelDefParameterClass (const ModelDefParameterClass &src)
  609. : m_Value (NULL)
  610. {
  611. (*this) = src;
  612. return ;
  613. }
  614. /////////////////////////////////////////////////////////////////////
  615. //
  616. // operator=
  617. //
  618. /////////////////////////////////////////////////////////////////////
  619. const ModelDefParameterClass &
  620. ModelDefParameterClass::operator= (const ModelDefParameterClass &src)
  621. {
  622. m_Value = src.m_Value;
  623. ParameterClass::operator= (src);
  624. return *this;
  625. }
  626. /////////////////////////////////////////////////////////////////////
  627. //
  628. // operator==
  629. //
  630. /////////////////////////////////////////////////////////////////////
  631. bool
  632. ModelDefParameterClass::operator== (const ModelDefParameterClass &src)
  633. {
  634. bool retval = false;
  635. if (m_Value != NULL && src.m_Value != NULL &&
  636. (*m_Value) == (*src.m_Value))
  637. {
  638. retval = true;
  639. }
  640. return retval;
  641. }
  642. /////////////////////////////////////////////////////////////////////
  643. //
  644. // operator==
  645. //
  646. /////////////////////////////////////////////////////////////////////
  647. bool
  648. ModelDefParameterClass::operator== (const ParameterClass &src)
  649. {
  650. bool retval = false;
  651. if (src.Get_Type () == Get_Type ()) {
  652. retval = ModelDefParameterClass::operator== ((const ModelDefParameterClass &)src);
  653. }
  654. return retval;
  655. }
  656. /////////////////////////////////////////////////////////////////////
  657. //
  658. // Copy_Value
  659. //
  660. /////////////////////////////////////////////////////////////////////
  661. void
  662. ModelDefParameterClass::Copy_Value (const ParameterClass &/*src*/)
  663. {
  664. //
  665. // We don't allow the value to be copied
  666. //
  667. return ;
  668. }
  669. //*******************************************************************************************//
  670. //
  671. // Start of DefParameterClass
  672. //
  673. //*******************************************************************************************//
  674. /////////////////////////////////////////////////////////////////////
  675. //
  676. // DefParameterClass
  677. //
  678. /////////////////////////////////////////////////////////////////////
  679. DefParameterClass::DefParameterClass (int *id)
  680. : m_Value (id)
  681. {
  682. return ;
  683. }
  684. /////////////////////////////////////////////////////////////////////
  685. //
  686. // DefParameterClass
  687. //
  688. /////////////////////////////////////////////////////////////////////
  689. DefParameterClass::DefParameterClass (const DefParameterClass &src)
  690. : m_Value (NULL)
  691. {
  692. (*this) = src;
  693. return ;
  694. }
  695. /////////////////////////////////////////////////////////////////////
  696. //
  697. // operator=
  698. //
  699. /////////////////////////////////////////////////////////////////////
  700. const DefParameterClass &
  701. DefParameterClass::operator= (const DefParameterClass &src)
  702. {
  703. m_Value = src.m_Value;
  704. //MW: Had to comment out next line to remove infinite loop warning on
  705. //latest VC++.
  706. // DefParameterClass::operator= (src);
  707. return *this;
  708. }
  709. /////////////////////////////////////////////////////////////////////
  710. //
  711. // operator==
  712. //
  713. /////////////////////////////////////////////////////////////////////
  714. bool
  715. DefParameterClass::operator== (const DefParameterClass &src)
  716. {
  717. bool retval = false;
  718. if (m_Value != NULL && src.m_Value != NULL &&
  719. (*m_Value) == (*src.m_Value))
  720. {
  721. retval = true;
  722. }
  723. return retval;
  724. }
  725. /////////////////////////////////////////////////////////////////////
  726. //
  727. // operator==
  728. //
  729. /////////////////////////////////////////////////////////////////////
  730. bool
  731. DefParameterClass::operator== (const ParameterClass &src)
  732. {
  733. bool retval = false;
  734. if (src.Get_Type () == Get_Type ()) {
  735. retval = DefParameterClass::operator== ((const DefParameterClass &)src);
  736. }
  737. return retval;
  738. }
  739. /////////////////////////////////////////////////////////////////////
  740. //
  741. // Copy_Value
  742. //
  743. /////////////////////////////////////////////////////////////////////
  744. void
  745. DefParameterClass::Copy_Value (const ParameterClass &src)
  746. {
  747. if (src.Get_Type () == Get_Type ()) {
  748. (*m_Value) = ((DefParameterClass &)src).Get_Value ();
  749. }
  750. ParameterClass::Copy_Value (src);
  751. return ;
  752. }
  753. //*******************************************************************************************//
  754. //
  755. // Start of GenericDefParameterClass
  756. //
  757. //*******************************************************************************************//
  758. /////////////////////////////////////////////////////////////////////
  759. //
  760. // GenericDefParameterClass
  761. //
  762. /////////////////////////////////////////////////////////////////////
  763. GenericDefParameterClass::GenericDefParameterClass (int *id)
  764. : m_ClassID (0),
  765. DefParameterClass (id)
  766. {
  767. return ;
  768. }
  769. /////////////////////////////////////////////////////////////////////
  770. //
  771. // GenericDefParameterClass
  772. //
  773. /////////////////////////////////////////////////////////////////////
  774. GenericDefParameterClass::GenericDefParameterClass (const GenericDefParameterClass &src)
  775. : m_ClassID (0),
  776. DefParameterClass (src)
  777. {
  778. (*this) = src;
  779. return ;
  780. }
  781. /////////////////////////////////////////////////////////////////////
  782. //
  783. // operator=
  784. //
  785. /////////////////////////////////////////////////////////////////////
  786. const GenericDefParameterClass &
  787. GenericDefParameterClass::operator= (const GenericDefParameterClass &src)
  788. {
  789. DefParameterClass::operator= (src);
  790. return *this;
  791. }
  792. /////////////////////////////////////////////////////////////////////
  793. //
  794. // operator==
  795. //
  796. /////////////////////////////////////////////////////////////////////
  797. bool
  798. GenericDefParameterClass::operator== (const GenericDefParameterClass &src)
  799. {
  800. bool retval = false;
  801. if (m_Value != NULL && src.m_Value != NULL &&
  802. (*m_Value) == (*src.m_Value))
  803. {
  804. retval = true;
  805. }
  806. return retval;
  807. }
  808. /////////////////////////////////////////////////////////////////////
  809. //
  810. // operator==
  811. //
  812. /////////////////////////////////////////////////////////////////////
  813. bool
  814. GenericDefParameterClass::operator== (const ParameterClass &src)
  815. {
  816. bool retval = false;
  817. if (src.Get_Type () == Get_Type ()) {
  818. retval = GenericDefParameterClass::operator== ((const GenericDefParameterClass &)src);
  819. }
  820. return retval;
  821. }
  822. /////////////////////////////////////////////////////////////////////
  823. //
  824. // Copy_Value
  825. //
  826. /////////////////////////////////////////////////////////////////////
  827. void
  828. GenericDefParameterClass::Copy_Value (const ParameterClass &src)
  829. {
  830. if (src.Is_Type (ParameterClass::TYPE_GENERICDEFINITIONID)) {
  831. (*m_Value) = ((GenericDefParameterClass &)src).Get_Value ();
  832. }
  833. ParameterClass::Copy_Value (src);
  834. return ;
  835. }
  836. //*******************************************************************************************//
  837. //
  838. // Start of GameObjDefParameterClass
  839. //
  840. //*******************************************************************************************//
  841. /////////////////////////////////////////////////////////////////////
  842. //
  843. // GameObjDefParameterClass
  844. //
  845. /////////////////////////////////////////////////////////////////////
  846. GameObjDefParameterClass::GameObjDefParameterClass (int *id)
  847. : DefParameterClass (id)
  848. {
  849. return ;
  850. }
  851. /////////////////////////////////////////////////////////////////////
  852. //
  853. // GameObjDefParameterClass
  854. //
  855. /////////////////////////////////////////////////////////////////////
  856. GameObjDefParameterClass::GameObjDefParameterClass (const GameObjDefParameterClass &src)
  857. : DefParameterClass (src)
  858. {
  859. (*this) = src;
  860. return ;
  861. }
  862. /////////////////////////////////////////////////////////////////////
  863. //
  864. // operator=
  865. //
  866. /////////////////////////////////////////////////////////////////////
  867. const GameObjDefParameterClass &
  868. GameObjDefParameterClass::operator= (const GameObjDefParameterClass &src)
  869. {
  870. DefParameterClass::operator= (src);
  871. return *this;
  872. }
  873. /////////////////////////////////////////////////////////////////////
  874. //
  875. // operator==
  876. //
  877. /////////////////////////////////////////////////////////////////////
  878. bool
  879. GameObjDefParameterClass::operator== (const GameObjDefParameterClass &src)
  880. {
  881. bool retval = false;
  882. if (m_Value != NULL && src.m_Value != NULL &&
  883. (*m_Value) == (*src.m_Value))
  884. {
  885. retval = true;
  886. }
  887. return retval;
  888. }
  889. /////////////////////////////////////////////////////////////////////
  890. //
  891. // operator==
  892. //
  893. /////////////////////////////////////////////////////////////////////
  894. bool
  895. GameObjDefParameterClass::operator== (const ParameterClass &src)
  896. {
  897. bool retval = false;
  898. if (src.Get_Type () == Get_Type ()) {
  899. retval = GameObjDefParameterClass::operator== ((const GameObjDefParameterClass &)src);
  900. }
  901. return retval;
  902. }
  903. /////////////////////////////////////////////////////////////////////
  904. //
  905. // Copy_Value
  906. //
  907. /////////////////////////////////////////////////////////////////////
  908. void
  909. GameObjDefParameterClass::Copy_Value (const ParameterClass &src)
  910. {
  911. if (src.Is_Type (ParameterClass::TYPE_GAMEOBJDEFINITIONID)) {
  912. (*m_Value) = ((GameObjDefParameterClass &)src).Get_Value ();
  913. }
  914. ParameterClass::Copy_Value (src);
  915. return ;
  916. }
  917. //*******************************************************************************************//
  918. //
  919. // Start of WeaponObjDefParameterClass
  920. //
  921. //*******************************************************************************************//
  922. /////////////////////////////////////////////////////////////////////
  923. //
  924. // WeaponObjDefParameterClass
  925. //
  926. /////////////////////////////////////////////////////////////////////
  927. WeaponObjDefParameterClass::WeaponObjDefParameterClass (int *id)
  928. : GameObjDefParameterClass (id)
  929. {
  930. return ;
  931. }
  932. /////////////////////////////////////////////////////////////////////
  933. //
  934. // WeaponObjDefParameterClass
  935. //
  936. /////////////////////////////////////////////////////////////////////
  937. WeaponObjDefParameterClass::WeaponObjDefParameterClass (const WeaponObjDefParameterClass &src)
  938. : GameObjDefParameterClass (NULL)
  939. {
  940. (*this) = src;
  941. return ;
  942. }
  943. /////////////////////////////////////////////////////////////////////
  944. //
  945. // operator=
  946. //
  947. /////////////////////////////////////////////////////////////////////
  948. const WeaponObjDefParameterClass &
  949. WeaponObjDefParameterClass::operator= (const WeaponObjDefParameterClass &src)
  950. {
  951. m_Value = src.m_Value;
  952. ParameterClass::operator= (src);
  953. return *this;
  954. }
  955. /////////////////////////////////////////////////////////////////////
  956. //
  957. // operator==
  958. //
  959. /////////////////////////////////////////////////////////////////////
  960. bool
  961. WeaponObjDefParameterClass::operator== (const WeaponObjDefParameterClass &src)
  962. {
  963. bool retval = false;
  964. if (m_Value != NULL && src.m_Value != NULL &&
  965. (*m_Value) == (*src.m_Value))
  966. {
  967. retval = true;
  968. }
  969. return retval;
  970. }
  971. /////////////////////////////////////////////////////////////////////
  972. //
  973. // operator==
  974. //
  975. /////////////////////////////////////////////////////////////////////
  976. bool
  977. WeaponObjDefParameterClass::operator== (const ParameterClass &src)
  978. {
  979. bool retval = false;
  980. if (src.Get_Type () == Get_Type ()) {
  981. retval = WeaponObjDefParameterClass::operator== ((const WeaponObjDefParameterClass &)src);
  982. }
  983. return retval;
  984. }
  985. /////////////////////////////////////////////////////////////////////
  986. //
  987. // Copy_Value
  988. //
  989. /////////////////////////////////////////////////////////////////////
  990. void
  991. WeaponObjDefParameterClass::Copy_Value (const ParameterClass &src)
  992. {
  993. if (src.Is_Type (ParameterClass::TYPE_WEAPONOBJDEFINITIONID)) {
  994. (*m_Value) = ((WeaponObjDefParameterClass &)src).Get_Value ();
  995. }
  996. GameObjDefParameterClass::Copy_Value (src);
  997. return ;
  998. }
  999. //*******************************************************************************************//
  1000. //
  1001. // Start of AmmoObjDefParameterClass
  1002. //
  1003. //*******************************************************************************************//
  1004. /////////////////////////////////////////////////////////////////////
  1005. //
  1006. // AmmoObjDefParameterClass
  1007. //
  1008. /////////////////////////////////////////////////////////////////////
  1009. AmmoObjDefParameterClass::AmmoObjDefParameterClass (int *id)
  1010. : GameObjDefParameterClass (id)
  1011. {
  1012. return ;
  1013. }
  1014. /////////////////////////////////////////////////////////////////////
  1015. //
  1016. // AmmoObjDefParameterClass
  1017. //
  1018. /////////////////////////////////////////////////////////////////////
  1019. AmmoObjDefParameterClass::AmmoObjDefParameterClass (const AmmoObjDefParameterClass &src)
  1020. : GameObjDefParameterClass (NULL)
  1021. {
  1022. (*this) = src;
  1023. return ;
  1024. }
  1025. /////////////////////////////////////////////////////////////////////
  1026. //
  1027. // operator=
  1028. //
  1029. /////////////////////////////////////////////////////////////////////
  1030. const AmmoObjDefParameterClass &
  1031. AmmoObjDefParameterClass::operator= (const AmmoObjDefParameterClass &src)
  1032. {
  1033. m_Value = src.m_Value;
  1034. ParameterClass::operator= (src);
  1035. return *this;
  1036. }
  1037. /////////////////////////////////////////////////////////////////////
  1038. //
  1039. // operator==
  1040. //
  1041. /////////////////////////////////////////////////////////////////////
  1042. bool
  1043. AmmoObjDefParameterClass::operator== (const AmmoObjDefParameterClass &src)
  1044. {
  1045. bool retval = false;
  1046. if (m_Value != NULL && src.m_Value != NULL &&
  1047. (*m_Value) == (*src.m_Value))
  1048. {
  1049. retval = true;
  1050. }
  1051. return retval;
  1052. }
  1053. /////////////////////////////////////////////////////////////////////
  1054. //
  1055. // operator==
  1056. //
  1057. /////////////////////////////////////////////////////////////////////
  1058. bool
  1059. AmmoObjDefParameterClass::operator== (const ParameterClass &src)
  1060. {
  1061. bool retval = false;
  1062. if (src.Get_Type () == Get_Type ()) {
  1063. retval = AmmoObjDefParameterClass::operator== ((const AmmoObjDefParameterClass &)src);
  1064. }
  1065. return retval;
  1066. }
  1067. /////////////////////////////////////////////////////////////////////
  1068. //
  1069. // Copy_Value
  1070. //
  1071. /////////////////////////////////////////////////////////////////////
  1072. void
  1073. AmmoObjDefParameterClass::Copy_Value (const ParameterClass &src)
  1074. {
  1075. if (src.Is_Type (ParameterClass::TYPE_AMMOOBJDEFINITIONID)) {
  1076. (*m_Value) = ((AmmoObjDefParameterClass &)src).Get_Value ();
  1077. }
  1078. GameObjDefParameterClass::Copy_Value (src);
  1079. return ;
  1080. }
  1081. //*******************************************************************************************//
  1082. //
  1083. // Start of ExplosionObjDefParameterClass
  1084. //
  1085. //*******************************************************************************************//
  1086. /////////////////////////////////////////////////////////////////////
  1087. //
  1088. // ExplosionObjDefParameterClass
  1089. //
  1090. /////////////////////////////////////////////////////////////////////
  1091. ExplosionObjDefParameterClass::ExplosionObjDefParameterClass (int *id)
  1092. : GameObjDefParameterClass (id)
  1093. {
  1094. return ;
  1095. }
  1096. /////////////////////////////////////////////////////////////////////
  1097. //
  1098. // ExplosionObjDefParameterClass
  1099. //
  1100. /////////////////////////////////////////////////////////////////////
  1101. ExplosionObjDefParameterClass::ExplosionObjDefParameterClass (const ExplosionObjDefParameterClass &src)
  1102. : GameObjDefParameterClass (NULL)
  1103. {
  1104. (*this) = src;
  1105. return ;
  1106. }
  1107. /////////////////////////////////////////////////////////////////////
  1108. //
  1109. // operator=
  1110. //
  1111. /////////////////////////////////////////////////////////////////////
  1112. const ExplosionObjDefParameterClass &
  1113. ExplosionObjDefParameterClass::operator= (const ExplosionObjDefParameterClass &src)
  1114. {
  1115. m_Value = src.m_Value;
  1116. ParameterClass::operator= (src);
  1117. return *this;
  1118. }
  1119. /////////////////////////////////////////////////////////////////////
  1120. //
  1121. // operator==
  1122. //
  1123. /////////////////////////////////////////////////////////////////////
  1124. bool
  1125. ExplosionObjDefParameterClass::operator== (const ExplosionObjDefParameterClass &src)
  1126. {
  1127. bool retval = false;
  1128. if (m_Value != NULL && src.m_Value != NULL &&
  1129. (*m_Value) == (*src.m_Value))
  1130. {
  1131. retval = true;
  1132. }
  1133. return retval;
  1134. }
  1135. /////////////////////////////////////////////////////////////////////
  1136. //
  1137. // operator==
  1138. //
  1139. /////////////////////////////////////////////////////////////////////
  1140. bool
  1141. ExplosionObjDefParameterClass::operator== (const ParameterClass &src)
  1142. {
  1143. bool retval = false;
  1144. if (src.Get_Type () == Get_Type ()) {
  1145. retval = ExplosionObjDefParameterClass::operator== ((const ExplosionObjDefParameterClass &)src);
  1146. }
  1147. return retval;
  1148. }
  1149. /////////////////////////////////////////////////////////////////////
  1150. //
  1151. // Copy_Value
  1152. //
  1153. /////////////////////////////////////////////////////////////////////
  1154. void
  1155. ExplosionObjDefParameterClass::Copy_Value (const ParameterClass &src)
  1156. {
  1157. if (src.Is_Type (ParameterClass::TYPE_AMMOOBJDEFINITIONID)) {
  1158. (*m_Value) = ((ExplosionObjDefParameterClass &)src).Get_Value ();
  1159. }
  1160. GameObjDefParameterClass::Copy_Value (src);
  1161. return ;
  1162. }
  1163. //*******************************************************************************************//
  1164. //
  1165. // Start of SoundDefParameterClass
  1166. //
  1167. //*******************************************************************************************//
  1168. /////////////////////////////////////////////////////////////////////
  1169. //
  1170. // SoundDefParameterClass
  1171. //
  1172. /////////////////////////////////////////////////////////////////////
  1173. SoundDefParameterClass::SoundDefParameterClass (int *id)
  1174. : DefParameterClass (id)
  1175. {
  1176. return ;
  1177. }
  1178. /////////////////////////////////////////////////////////////////////
  1179. //
  1180. // SoundDefParameterClass
  1181. //
  1182. /////////////////////////////////////////////////////////////////////
  1183. SoundDefParameterClass::SoundDefParameterClass (const SoundDefParameterClass &src)
  1184. : DefParameterClass (src)
  1185. {
  1186. (*this) = src;
  1187. return ;
  1188. }
  1189. /////////////////////////////////////////////////////////////////////
  1190. //
  1191. // operator=
  1192. //
  1193. /////////////////////////////////////////////////////////////////////
  1194. const SoundDefParameterClass &
  1195. SoundDefParameterClass::operator= (const SoundDefParameterClass &src)
  1196. {
  1197. DefParameterClass::operator= (src);
  1198. return *this;
  1199. }
  1200. /////////////////////////////////////////////////////////////////////
  1201. //
  1202. // operator==
  1203. //
  1204. /////////////////////////////////////////////////////////////////////
  1205. bool
  1206. SoundDefParameterClass::operator== (const SoundDefParameterClass &src)
  1207. {
  1208. bool retval = false;
  1209. if (m_Value != NULL && src.m_Value != NULL &&
  1210. (*m_Value) == (*src.m_Value))
  1211. {
  1212. retval = true;
  1213. }
  1214. return retval;
  1215. }
  1216. /////////////////////////////////////////////////////////////////////
  1217. //
  1218. // operator==
  1219. //
  1220. /////////////////////////////////////////////////////////////////////
  1221. bool
  1222. SoundDefParameterClass::operator== (const ParameterClass &src)
  1223. {
  1224. bool retval = false;
  1225. if (src.Get_Type () == Get_Type ()) {
  1226. retval = SoundDefParameterClass::operator== ((const SoundDefParameterClass &)src);
  1227. }
  1228. return retval;
  1229. }
  1230. //*******************************************************************************************//
  1231. //
  1232. // Start of ScriptParameterClass
  1233. //
  1234. //*******************************************************************************************//
  1235. /////////////////////////////////////////////////////////////////////
  1236. //
  1237. // ScriptParameterClass
  1238. //
  1239. /////////////////////////////////////////////////////////////////////
  1240. ScriptParameterClass::ScriptParameterClass (StringClass *name, StringClass *params)
  1241. : m_ScriptName (name),
  1242. m_ScriptParams (params)
  1243. {
  1244. return ;
  1245. }
  1246. /////////////////////////////////////////////////////////////////////
  1247. //
  1248. // ScriptParameterClass
  1249. //
  1250. /////////////////////////////////////////////////////////////////////
  1251. ScriptParameterClass::ScriptParameterClass (const ScriptParameterClass &src)
  1252. : m_ScriptName (NULL),
  1253. m_ScriptParams (NULL)
  1254. {
  1255. (*this) = src;
  1256. return ;
  1257. }
  1258. /////////////////////////////////////////////////////////////////////
  1259. //
  1260. // operator=
  1261. //
  1262. /////////////////////////////////////////////////////////////////////
  1263. const ScriptParameterClass &
  1264. ScriptParameterClass::operator= (const ScriptParameterClass &src)
  1265. {
  1266. m_ScriptName = src.m_ScriptName;
  1267. m_ScriptParams = src.m_ScriptParams;
  1268. ParameterClass::operator= (src);
  1269. return *this;
  1270. }
  1271. /////////////////////////////////////////////////////////////////////
  1272. //
  1273. // operator==
  1274. //
  1275. /////////////////////////////////////////////////////////////////////
  1276. bool
  1277. ScriptParameterClass::operator== (const ScriptParameterClass &src)
  1278. {
  1279. bool retval = false;
  1280. //
  1281. // Data valid?
  1282. //
  1283. if ( (m_ScriptName != NULL) && (src.m_ScriptName != NULL) &&
  1284. (m_ScriptParams != NULL) && (src.m_ScriptParams != NULL))
  1285. {
  1286. //
  1287. // Simple string compares should workd
  1288. //
  1289. if ( (m_ScriptName->Compare (*(src.m_ScriptName)) == 0) &&
  1290. (m_ScriptParams->Compare (*(src.m_ScriptParams)) == 0))
  1291. {
  1292. retval = true;
  1293. }
  1294. }
  1295. return retval;
  1296. }
  1297. /////////////////////////////////////////////////////////////////////
  1298. //
  1299. // operator==
  1300. //
  1301. /////////////////////////////////////////////////////////////////////
  1302. bool
  1303. ScriptParameterClass::operator== (const ParameterClass &src)
  1304. {
  1305. bool retval = false;
  1306. if (src.Get_Type () == Get_Type ()) {
  1307. retval = ScriptParameterClass::operator== ((const ScriptParameterClass &)src);
  1308. }
  1309. return retval;
  1310. }
  1311. /////////////////////////////////////////////////////////////////////
  1312. //
  1313. // Copy_Value
  1314. //
  1315. /////////////////////////////////////////////////////////////////////
  1316. void
  1317. ScriptParameterClass::Copy_Value (const ParameterClass &src)
  1318. {
  1319. if (src.Is_Type (ParameterClass::TYPE_SCRIPT)) {
  1320. (*m_ScriptName) = ((ScriptParameterClass &)src).Get_Script_Name ();
  1321. (*m_ScriptParams) = ((ScriptParameterClass &)src).Get_Params ();
  1322. }
  1323. ParameterClass::Copy_Value (src);
  1324. return ;
  1325. }
  1326. //*******************************************************************************************//
  1327. //
  1328. // Start of DefIDListParameterClass
  1329. //
  1330. //*******************************************************************************************//
  1331. /////////////////////////////////////////////////////////////////////
  1332. //
  1333. // DefIDListParameterClass
  1334. //
  1335. /////////////////////////////////////////////////////////////////////
  1336. DefIDListParameterClass::DefIDListParameterClass (DynamicVectorClass<int> *list)
  1337. : m_IDList (list),
  1338. m_ClassID (0),
  1339. m_SelectedClassID (NULL)
  1340. {
  1341. return ;
  1342. }
  1343. /////////////////////////////////////////////////////////////////////
  1344. //
  1345. // DefIDListParameterClass
  1346. //
  1347. /////////////////////////////////////////////////////////////////////
  1348. DefIDListParameterClass::DefIDListParameterClass (const DefIDListParameterClass &src)
  1349. : m_IDList (NULL),
  1350. m_ClassID (0),
  1351. m_SelectedClassID (NULL)
  1352. {
  1353. (*this) = src;
  1354. return ;
  1355. }
  1356. /////////////////////////////////////////////////////////////////////
  1357. //
  1358. // operator=
  1359. //
  1360. /////////////////////////////////////////////////////////////////////
  1361. const DefIDListParameterClass &
  1362. DefIDListParameterClass::operator= (const DefIDListParameterClass &src)
  1363. {
  1364. m_IDList = src.m_IDList;
  1365. m_ClassID = src.m_ClassID;
  1366. m_SelectedClassID = src.m_SelectedClassID;
  1367. ParameterClass::operator= (src);
  1368. return *this;
  1369. }
  1370. /////////////////////////////////////////////////////////////////////
  1371. //
  1372. // operator==
  1373. //
  1374. /////////////////////////////////////////////////////////////////////
  1375. bool
  1376. DefIDListParameterClass::operator== (const DefIDListParameterClass &src)
  1377. {
  1378. bool retval = false;
  1379. //
  1380. // Data valid?
  1381. //
  1382. if ((m_IDList != NULL) && (src.m_IDList != NULL))
  1383. {
  1384. //
  1385. // Class IDs the same?
  1386. //
  1387. if (m_ClassID == src.m_ClassID) {
  1388. int count1 = m_IDList->Count ();
  1389. int count2 = src.m_IDList->Count ();
  1390. //
  1391. // Are the lists the same?
  1392. //
  1393. retval = (count1 == count2);
  1394. for (int index = 0; (index < count1) && retval; index ++) {
  1395. int value1 = (*m_IDList)[index];
  1396. int value2 = (*src.m_IDList)[index];
  1397. retval &= (value1 == value2);
  1398. }
  1399. }
  1400. }
  1401. return retval;
  1402. }
  1403. /////////////////////////////////////////////////////////////////////
  1404. //
  1405. // operator==
  1406. //
  1407. /////////////////////////////////////////////////////////////////////
  1408. bool
  1409. DefIDListParameterClass::operator== (const ParameterClass &src)
  1410. {
  1411. bool retval = false;
  1412. if (src.Get_Type () == Get_Type ()) {
  1413. retval = DefIDListParameterClass::operator== ((const DefIDListParameterClass &)src);
  1414. }
  1415. return retval;
  1416. }
  1417. /////////////////////////////////////////////////////////////////////
  1418. //
  1419. // Copy_Value
  1420. //
  1421. /////////////////////////////////////////////////////////////////////
  1422. void
  1423. DefIDListParameterClass::Copy_Value (const ParameterClass &src)
  1424. {
  1425. if (src.Is_Type (ParameterClass::TYPE_DEFINITIONIDLIST)) {
  1426. DefIDListParameterClass real_src = (DefIDListParameterClass &)src;
  1427. m_ClassID = real_src.m_ClassID;
  1428. (*m_IDList) = (*real_src.m_IDList);
  1429. if (m_SelectedClassID != NULL && real_src.m_SelectedClassID != NULL) {
  1430. (*m_SelectedClassID) = (*real_src.m_SelectedClassID);
  1431. }
  1432. }
  1433. ParameterClass::Copy_Value (src);
  1434. return ;
  1435. }
  1436. //*******************************************************************************************//
  1437. //
  1438. // Start of ZoneParameterClass
  1439. //
  1440. //*******************************************************************************************//
  1441. /////////////////////////////////////////////////////////////////////
  1442. //
  1443. // ZoneParameterClass
  1444. //
  1445. /////////////////////////////////////////////////////////////////////
  1446. ZoneParameterClass::ZoneParameterClass (OBBoxClass *box)
  1447. : m_OBBox (box)
  1448. {
  1449. return ;
  1450. }
  1451. /////////////////////////////////////////////////////////////////////
  1452. //
  1453. // ZoneParameterClass
  1454. //
  1455. /////////////////////////////////////////////////////////////////////
  1456. ZoneParameterClass::ZoneParameterClass (const ZoneParameterClass &src)
  1457. : m_OBBox (NULL)
  1458. {
  1459. (*this) = src;
  1460. return ;
  1461. }
  1462. /////////////////////////////////////////////////////////////////////
  1463. //
  1464. // operator=
  1465. //
  1466. /////////////////////////////////////////////////////////////////////
  1467. const ZoneParameterClass &
  1468. ZoneParameterClass::operator= (const ZoneParameterClass &src)
  1469. {
  1470. m_OBBox = src.m_OBBox;
  1471. ParameterClass::operator= (src);
  1472. return *this;
  1473. }
  1474. /////////////////////////////////////////////////////////////////////
  1475. //
  1476. // operator==
  1477. //
  1478. /////////////////////////////////////////////////////////////////////
  1479. bool
  1480. ZoneParameterClass::operator== (const ZoneParameterClass &src)
  1481. {
  1482. bool retval = false;
  1483. //
  1484. // Are the OBBoxes the same?
  1485. //
  1486. if ((m_OBBox != NULL) && (src.m_OBBox != NULL)) {
  1487. retval = (*m_OBBox) == (*src.m_OBBox);
  1488. }
  1489. return retval;
  1490. }
  1491. /////////////////////////////////////////////////////////////////////
  1492. //
  1493. // operator==
  1494. //
  1495. /////////////////////////////////////////////////////////////////////
  1496. bool
  1497. ZoneParameterClass::operator== (const ParameterClass &src)
  1498. {
  1499. bool retval = false;
  1500. if (src.Get_Type () == Get_Type ()) {
  1501. retval = ZoneParameterClass::operator== ((const ZoneParameterClass &)src);
  1502. }
  1503. return retval;
  1504. }
  1505. /////////////////////////////////////////////////////////////////////
  1506. //
  1507. // Copy_Value
  1508. //
  1509. /////////////////////////////////////////////////////////////////////
  1510. void
  1511. ZoneParameterClass::Copy_Value (const ParameterClass &src)
  1512. {
  1513. if (src.Is_Type (ParameterClass::TYPE_ZONE)) {
  1514. ZoneParameterClass real_src = (ZoneParameterClass &)src;
  1515. (*m_OBBox) = (*real_src.m_OBBox);
  1516. }
  1517. ParameterClass::Copy_Value (src);
  1518. return ;
  1519. }
  1520. //*******************************************************************************************//
  1521. //
  1522. // Start of FilenameListParameterClass
  1523. //
  1524. //*******************************************************************************************//
  1525. /////////////////////////////////////////////////////////////////////
  1526. //
  1527. // FilenameListParameterClass
  1528. //
  1529. /////////////////////////////////////////////////////////////////////
  1530. FilenameListParameterClass::FilenameListParameterClass (DynamicVectorClass<StringClass> *list)
  1531. : m_FilenameList (list)
  1532. {
  1533. return ;
  1534. }
  1535. /////////////////////////////////////////////////////////////////////
  1536. //
  1537. // FilenameListParameterClass
  1538. //
  1539. /////////////////////////////////////////////////////////////////////
  1540. FilenameListParameterClass::FilenameListParameterClass (const FilenameListParameterClass &src)
  1541. : m_FilenameList (NULL)
  1542. {
  1543. (*this) = src;
  1544. return ;
  1545. }
  1546. /////////////////////////////////////////////////////////////////////
  1547. //
  1548. // operator=
  1549. //
  1550. /////////////////////////////////////////////////////////////////////
  1551. const FilenameListParameterClass &
  1552. FilenameListParameterClass::operator= (const FilenameListParameterClass &src)
  1553. {
  1554. m_FilenameList = src.m_FilenameList;
  1555. ParameterClass::operator= (src);
  1556. return *this;
  1557. }
  1558. /////////////////////////////////////////////////////////////////////
  1559. //
  1560. // operator==
  1561. //
  1562. /////////////////////////////////////////////////////////////////////
  1563. bool
  1564. FilenameListParameterClass::operator== (const FilenameListParameterClass &src)
  1565. {
  1566. bool retval = false;
  1567. //
  1568. // Data valid?
  1569. //
  1570. if ((m_FilenameList != NULL) && (src.m_FilenameList != NULL))
  1571. {
  1572. int count1 = m_FilenameList->Count ();
  1573. int count2 = src.m_FilenameList->Count ();
  1574. //
  1575. // Are the lists the same?
  1576. //
  1577. retval = (count1 == count2);
  1578. for (int index = 0; (index < count1) && retval; index ++) {
  1579. StringClass &filename1 = (*m_FilenameList)[index];
  1580. StringClass &filename2 = (*src.m_FilenameList)[index];
  1581. retval &= (::stricmp (filename1, filename2) == 0);
  1582. }
  1583. }
  1584. return retval;
  1585. }
  1586. /////////////////////////////////////////////////////////////////////
  1587. //
  1588. // operator==
  1589. //
  1590. /////////////////////////////////////////////////////////////////////
  1591. bool
  1592. FilenameListParameterClass::operator== (const ParameterClass &src)
  1593. {
  1594. bool retval = false;
  1595. if (src.Get_Type () == Get_Type ()) {
  1596. retval = FilenameListParameterClass::operator== ((const FilenameListParameterClass &)src);
  1597. }
  1598. return retval;
  1599. }
  1600. /////////////////////////////////////////////////////////////////////
  1601. //
  1602. // Copy_Value
  1603. //
  1604. /////////////////////////////////////////////////////////////////////
  1605. void
  1606. FilenameListParameterClass::Copy_Value (const ParameterClass &src)
  1607. {
  1608. if (src.Is_Type (ParameterClass::TYPE_FILENAMELIST)) {
  1609. FilenameListParameterClass real_src = (FilenameListParameterClass &)src;
  1610. (*m_FilenameList) = (*real_src.m_FilenameList);
  1611. }
  1612. ParameterClass::Copy_Value (src);
  1613. return ;
  1614. }
  1615. //*******************************************************************************************//
  1616. //
  1617. // Start of ScriptListParameterClass
  1618. //
  1619. //*******************************************************************************************//
  1620. /////////////////////////////////////////////////////////////////////
  1621. //
  1622. // ScriptListParameterClass
  1623. //
  1624. /////////////////////////////////////////////////////////////////////
  1625. ScriptListParameterClass::ScriptListParameterClass
  1626. (
  1627. DynamicVectorClass<StringClass> *name_list,
  1628. DynamicVectorClass<StringClass> *param_list
  1629. )
  1630. : m_NameList (name_list),
  1631. m_ParamList (param_list)
  1632. {
  1633. return ;
  1634. }
  1635. /////////////////////////////////////////////////////////////////////
  1636. //
  1637. // ScriptListParameterClass
  1638. //
  1639. /////////////////////////////////////////////////////////////////////
  1640. ScriptListParameterClass::ScriptListParameterClass (const ScriptListParameterClass &src)
  1641. : m_NameList (NULL),
  1642. m_ParamList (NULL)
  1643. {
  1644. (*this) = src;
  1645. return ;
  1646. }
  1647. /////////////////////////////////////////////////////////////////////
  1648. //
  1649. // operator=
  1650. //
  1651. /////////////////////////////////////////////////////////////////////
  1652. const ScriptListParameterClass &
  1653. ScriptListParameterClass::operator= (const ScriptListParameterClass &src)
  1654. {
  1655. m_NameList = src.m_NameList;
  1656. m_ParamList = src.m_ParamList;
  1657. ParameterClass::operator= (src);
  1658. return *this;
  1659. }
  1660. /////////////////////////////////////////////////////////////////////
  1661. //
  1662. // operator==
  1663. //
  1664. /////////////////////////////////////////////////////////////////////
  1665. bool
  1666. ScriptListParameterClass::operator== (const ScriptListParameterClass &src)
  1667. {
  1668. bool retval = false;
  1669. //
  1670. // Data valid?
  1671. //
  1672. if ( (m_NameList != NULL) && (src.m_NameList != NULL) &&
  1673. (m_ParamList != NULL) && (src.m_ParamList != NULL))
  1674. {
  1675. retval = Are_Lists_Identical (*m_NameList, *(src.m_NameList));
  1676. retval &= Are_Lists_Identical (*m_ParamList, *(src.m_ParamList));
  1677. }
  1678. return retval;
  1679. }
  1680. /////////////////////////////////////////////////////////////////////
  1681. //
  1682. // Are_Lists_Identical
  1683. //
  1684. /////////////////////////////////////////////////////////////////////
  1685. bool
  1686. ScriptListParameterClass::Are_Lists_Identical
  1687. (
  1688. DynamicVectorClass<StringClass> &list1,
  1689. DynamicVectorClass<StringClass> &list2
  1690. )
  1691. {
  1692. int count1 = list1.Count ();
  1693. int count2 = list2.Count ();
  1694. //
  1695. // Do a string compare on every entry
  1696. //
  1697. bool retval = (count1 == count2);
  1698. for (int index = 0; (index < count1) && retval; index ++) {
  1699. StringClass &string1 = list1[index];
  1700. StringClass &string2 = list2[index];
  1701. retval &= (::stricmp (string1, string2) == 0);
  1702. }
  1703. return retval;
  1704. }
  1705. /////////////////////////////////////////////////////////////////////
  1706. //
  1707. // operator==
  1708. //
  1709. /////////////////////////////////////////////////////////////////////
  1710. bool
  1711. ScriptListParameterClass::operator== (const ParameterClass &src)
  1712. {
  1713. bool retval = false;
  1714. if (src.Get_Type () == Get_Type ()) {
  1715. retval = ScriptListParameterClass::operator== ((const ScriptListParameterClass &)src);
  1716. }
  1717. return retval;
  1718. }
  1719. /////////////////////////////////////////////////////////////////////
  1720. //
  1721. // Copy_Value
  1722. //
  1723. /////////////////////////////////////////////////////////////////////
  1724. void
  1725. ScriptListParameterClass::Copy_Value (const ParameterClass &src)
  1726. {
  1727. if (src.Is_Type (ParameterClass::TYPE_SCRIPTLIST)) {
  1728. ScriptListParameterClass &real_src = (ScriptListParameterClass &)src;
  1729. (*m_NameList) = (*real_src.m_NameList);
  1730. (*m_ParamList) = (*real_src.m_ParamList);
  1731. }
  1732. ParameterClass::Copy_Value (src);
  1733. return ;
  1734. }
  1735. //*******************************************************************************************//
  1736. //
  1737. // Start of SeparatorParameterClass
  1738. //
  1739. //*******************************************************************************************//
  1740. /////////////////////////////////////////////////////////////////////
  1741. //
  1742. // SeparatorParameterClass
  1743. //
  1744. /////////////////////////////////////////////////////////////////////
  1745. SeparatorParameterClass::SeparatorParameterClass (const SeparatorParameterClass &src)
  1746. {
  1747. (*this) = src;
  1748. return ;
  1749. }
  1750. /////////////////////////////////////////////////////////////////////
  1751. //
  1752. // operator=
  1753. //
  1754. /////////////////////////////////////////////////////////////////////
  1755. const SeparatorParameterClass &
  1756. SeparatorParameterClass::operator= (const SeparatorParameterClass &src)
  1757. {
  1758. ParameterClass::operator= (src);
  1759. return *this;
  1760. }
  1761. /////////////////////////////////////////////////////////////////////
  1762. //
  1763. // operator==
  1764. //
  1765. /////////////////////////////////////////////////////////////////////
  1766. bool
  1767. SeparatorParameterClass::operator== (const SeparatorParameterClass &src)
  1768. {
  1769. return true;
  1770. }
  1771. /////////////////////////////////////////////////////////////////////
  1772. //
  1773. // operator==
  1774. //
  1775. /////////////////////////////////////////////////////////////////////
  1776. bool
  1777. SeparatorParameterClass::operator== (const ParameterClass &src)
  1778. {
  1779. bool retval = false;
  1780. if (src.Get_Type () == Get_Type ()) {
  1781. retval = SeparatorParameterClass::operator== ((const SeparatorParameterClass &)src);
  1782. }
  1783. return retval;
  1784. }
  1785. /////////////////////////////////////////////////////////////////////
  1786. //
  1787. // Copy_Value
  1788. //
  1789. /////////////////////////////////////////////////////////////////////
  1790. void
  1791. SeparatorParameterClass::Copy_Value (const ParameterClass &src)
  1792. {
  1793. ParameterClass::Copy_Value (src);
  1794. return ;
  1795. }