Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
parameter.cpp
Go to the documentation of this file.
1/*
2** Command & Conquer Generals Zero Hour(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/***********************************************************************************************
20 *** 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 ***
21 ***********************************************************************************************
22 * *
23 * Project Name : WWSaveLoad *
24 * *
25 * $Archive:: /Commando/Code/wwsaveload/parameter.cpp $*
26 * *
27 * Org Author:: Patrick Smith *
28 * *
29 * Author:: Kenny Mitchell *
30 * *
31 * $Modtime:: 5/29/02 11:00a $*
32 * *
33 * $Revision:: 33 $*
34 * *
35 *---------------------------------------------------------------------------------------------*
36 * Functions: *
37 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
38
39
40#include "parameter.h"
41#include "parametertypes.h"
42#include "simpleparameter.h"
43#include "wwstring.h"
44#include "definitionclassids.h"
45
46
48//
49// Construct
50//
51// This is a virtual constructor that is capable of creating a new
52// instance of any type of parameter used in the Editable system.
53//
56ParameterClass::Construct (Type type, void *data, const char *name)
57{
58 ParameterClass *new_param = NULL;
59 switch (type) {
60
61 case TYPE_INT:
62 new_param = W3DNEW IntParameterClass (data, name);
63 break;
64
65 case TYPE_FLOAT:
66 new_param = W3DNEW FloatParameterClass (data, name);
67 break;
68
69 case TYPE_VECTOR2:
70 new_param = W3DNEW Vector2ParameterClass (data, name);
71 break;
72
73 case TYPE_VECTOR3:
74 new_param = W3DNEW Vector3ParameterClass (data, name);
75 break;
76
77 case TYPE_RECT:
78 new_param = W3DNEW RectParameterClass (data, name);
79 break;
80
81 case TYPE_COLOR:
82 new_param = W3DNEW ColorParameterClass (data, name);
83 break;
84
85 case TYPE_MATRIX3D:
86 new_param = W3DNEW Matrix3DParameterClass (data, name);
87 break;
88
89 case TYPE_BOOL:
90 new_param = W3DNEW BoolParameterClass (data, name);
91 break;
92
94 new_param = W3DNEW StringsDBEntryParameterClass (data, name);
95 break;
96
97 case TYPE_ANGLE:
98 new_param = W3DNEW AngleParameterClass (data, name);
99 break;
100
101 case TYPE_STRING:
102 new_param = W3DNEW StringParameterClass ((StringClass *)data);
103 new_param->Set_Name (name);
104 break;
105
106 case TYPE_FILENAME:
107 new_param = W3DNEW FilenameParameterClass ((StringClass *)data);
108 new_param->Set_Name (name);
109 break;
110
112 new_param = new TextureFilenameParameterClass ((StringClass *)data);
113 new_param->Set_Name (name);
114 break;
115
117 new_param = W3DNEW SoundFilenameParameterClass ((StringClass *)data);
118 new_param->Set_Name (name);
119 break;
120
121 case TYPE_ENUM:
122 new_param = W3DNEW EnumParameterClass ((int *)data);
123 new_param->Set_Name (name);
124 break;
125
127 new_param = W3DNEW GenericDefParameterClass ((int *)data);
128 new_param->Set_Name (name);
129 break;
130
132 new_param = W3DNEW GameObjDefParameterClass ((int *)data);
133 new_param->Set_Name (name);
134 break;
135
137 new_param = W3DNEW WeaponObjDefParameterClass ((int *)data);
138 new_param->Set_Name (name);
139 break;
140
142 new_param = W3DNEW AmmoObjDefParameterClass ((int *)data);
143 new_param->Set_Name (name);
144 break;
145
147 new_param = W3DNEW ExplosionObjDefParameterClass ((int *)data);
148 new_param->Set_Name (name);
149 break;
150
152 new_param = W3DNEW SoundDefParameterClass ((int *)data);
153 new_param->Set_Name (name);
154 break;
155
157 new_param = W3DNEW ModelDefParameterClass ((int *)data);
158 new_param->Set_Name (name);
159 break;
160
162 new_param = W3DNEW PhysDefParameterClass ((int *)data);
163 new_param->Set_Name (name);
164 break;
165
168 new_param->Set_Name (name);
169 ((DefIDListParameterClass *)new_param)->Set_Class_ID (CLASSID_GAME_OBJECTS);
170 break;
171
172 case TYPE_ZONE:
173 new_param = W3DNEW ZoneParameterClass ((OBBoxClass *)data);
174 new_param->Set_Name (name);
175 break;
176
179 new_param->Set_Name (name);
180 break;
181
182 case TYPE_SEPARATOR:
184 new_param->Set_Name (name);
185 break;
186 }
187
188 return new_param;
189}
190
191//*******************************************************************************************//
192//
193// Start of StringParameterClass
194//
195//*******************************************************************************************//
196
198//
199// StringParameterClass
200//
207
209//
210// StringParameterClass
211//
214 : m_String (NULL)
215{
216 (*this) = src;
217 return ;
218}
219
220
222//
223// operator=
224//
228{
229 m_String = src.m_String;
231 return *this;
232}
233
234
236//
237// operator==
238//
240bool
242{
243 bool retval = false;
244
245 if (m_String != NULL && src.m_String != NULL &&
246 (m_String->Compare (*(src.m_String)) == 0)) {
247 retval = true;
248 }
249
250 return retval;
251}
252
253
255//
256// operator==
257//
259bool
261{
262 bool retval = false;
263
264 if (src.Get_Type () == Get_Type ()) {
266 }
267
268 return retval;
269}
270
271
273//
274// Copy_Value
275//
277void
279{
281 (*m_String) = ((StringParameterClass &)src).Get_String ();
282 }
283
285 return ;
286}
287
288
290//
291// Get_String
292//
294const char *
296{
297 const char * string = NULL;
298 if (m_String != NULL) {
299 string = (*m_String);
300 }
301 return string;
302}
303
304
306//
307// Set_String
308//
310void
312{
313 if (m_String != NULL) {
314 Set_Modified ();
315 (*m_String) = string;
316 }
317
318 return ;
319}
320
321
322//*******************************************************************************************//
323//
324// Start of FilenameParameterClass
325//
326//*******************************************************************************************//
327
328
330//
331// FilenameParameterClass
332//
339
340
342//
343// FilenameParameterClass
344//
352
353
355//
356// operator=
357//
365
366
368//
369// operator==
370//
372bool
377
378
380//
381// operator==
382//
384bool
389
390
392//
393// Copy_Value
394//
396void
406
407//*******************************************************************************************//
408//
409// Start of TextureFilenameParameterClass
410//
411//*******************************************************************************************//
412
413
415//
416// TextureFilenameParameterClass
417//
425
426
428//
429// TextureFilenameParameterClass
430//
438
440//
441// Copy_Value
442//
454
455
456//*******************************************************************************************//
457//
458// Start of SoundFilenameParameterClass
459//
460//*******************************************************************************************//
461
462
464//
465// SoundFilenameParameterClass
466//
473
474
476//
477// SoundFilenameParameterClass
478//
486
487
489//
490// operator=
491//
499
500
502//
503// operator==
504//
506bool
511
512
513
514//*******************************************************************************************//
515//
516// Start of EnumParameterClass
517//
518//*******************************************************************************************//
519
520
522//
523// EnumParameterClass
524//
531
532
534//
535// EnumParameterClass
536//
539 : m_Value (NULL)
540{
541 (*this) = src;
542 return ;
543}
544
545
547//
548// operator=
549//
551const EnumParameterClass &
553{
554 m_List.Delete_All ();
555
556 m_Value = src.m_Value;
557 m_List = src.m_List;
559 return *this;
560}
561
562
564//
565// operator==
566//
568bool
570{
571 bool retval = false;
572
573 if (m_Value != NULL && src.m_Value != NULL &&
574 (*m_Value) == (*src.m_Value))
575 {
576 retval = true;
577 }
578
579 return retval;
580}
581
582
584//
585// operator==
586//
588bool
590{
591 bool retval = false;
592
593 if (src.Get_Type () == Get_Type ()) {
595 }
596
597 return retval;
598}
599
600
602//
603// Copy_Value
604//
606void
608{
610 (*m_Value) = ((EnumParameterClass &)src).Get_Selected_Value ();
611 }
612
614 return ;
615}
616
617
619//
620// Add_Value
621//
623void
624EnumParameterClass::Add_Value (const char *display_name, int value)
625{
626 m_List.Add (ENUM_VALUE(display_name, value));
627 return ;
628}
629
630
632//
633// Add_Value
634//
636void __cdecl
637EnumParameterClass::Add_Values (const char *first_name, int first_value, ...)
638{
639 m_List.Add (ENUM_VALUE(first_name, first_value));
640
641 va_list arg_list;
642 va_start (arg_list, first_value);
643
644 //
645 // Add all the params on the stack (until we found
646 // the terminator)
647 //
648 bool more_params = true;
649 while (more_params) {
650
651 //
652 // Get the string param
653 //
654 const char *name = va_arg (arg_list, const char *);
655 if (name == NULL) {
656 more_params = false;
657 } else {
658
659 //
660 // Add the string/id pair to the enum list
661 //
662 int value = va_arg (arg_list, int);
663 m_List.Add (ENUM_VALUE(name, value));
664 }
665 }
666
667 va_end (arg_list);
668 return ;
669}
670
671
672
673//*******************************************************************************************//
674//
675// Start of PhysDefParameterClass
676//
677//*******************************************************************************************//
678
679
681//
682// PhysDefParameterClass
683//
690
692//
693// PhysDefParameterClass
694//
697 : m_Value (NULL)
698{
699 (*this) = src;
700 return ;
701}
702
703
705//
706// operator=
707//
711{
712 m_Value = src.m_Value;
714 return *this;
715}
716
717
719//
720// operator==
721//
723bool
725{
726 bool retval = false;
727
728 if (m_Value != NULL && src.m_Value != NULL &&
729 (*m_Value) == (*src.m_Value))
730 {
731 retval = true;
732 }
733
734 return retval;
735}
736
737
739//
740// operator==
741//
743bool
745{
746 bool retval = false;
747
748 if (src.Get_Type () == Get_Type ()) {
750 }
751
752 return retval;
753}
754
755
757//
758// Copy_Value
759//
761void
763{
764 //
765 // We don't allow the value to be copied
766 //
767 return ;
768}
769
770
771//*******************************************************************************************//
772//
773// Start of ModelDefParameterClass
774//
775//*******************************************************************************************//
776
777
779//
780// ModelDefParameterClass
781//
788
790//
791// ModelDefParameterClass
792//
795 : m_Value (NULL)
796{
797 (*this) = src;
798 return ;
799}
800
801
803//
804// operator=
805//
814
815
817//
818// operator==
819//
821bool
823{
824 bool retval = false;
825
826 if (m_Value != NULL && src.m_Value != NULL &&
827 (*m_Value) == (*src.m_Value))
828 {
829 retval = true;
830 }
831
832 return retval;
833}
834
835
837//
838// operator==
839//
841bool
843{
844 bool retval = false;
845
846 if (src.Get_Type () == Get_Type ()) {
848 }
849
850 return retval;
851}
852
853
855//
856// Copy_Value
857//
859void
861{
862 //
863 // We don't allow the value to be copied
864 //
865 return ;
866}
867
868
869//*******************************************************************************************//
870//
871// Start of DefParameterClass
872//
873//*******************************************************************************************//
874
876//
877// DefParameterClass
878//
881 : m_Value (id)
882{
883 return ;
884}
885
886
888//
889// DefParameterClass
890//
893 : m_Value (NULL)
894{
895 (*this) = src;
896 return ;
897}
898
899
901//
902// operator=
903//
905const DefParameterClass &
907{
908 m_Value = src.m_Value;
910 return *this;
911}
912
913
915//
916// operator==
917//
919bool
921{
922 bool retval = false;
923
924 if (m_Value != NULL && src.m_Value != NULL &&
925 (*m_Value) == (*src.m_Value))
926 {
927 retval = true;
928 }
929
930 return retval;
931}
932
933
935//
936// operator==
937//
939bool
941{
942 bool retval = false;
943
944 if (src.Get_Type () == Get_Type ()) {
946 }
947
948 return retval;
949}
950
951
953//
954// Copy_Value
955//
957void
959{
960 if (src.Get_Type () == Get_Type ()) {
961 (*m_Value) = ((DefParameterClass &)src).Get_Value ();
962 }
963
965 return ;
966}
967
968
969
970//*******************************************************************************************//
971//
972// Start of GenericDefParameterClass
973//
974//*******************************************************************************************//
975
976
978//
979// GenericDefParameterClass
980//
988
989
991//
992// GenericDefParameterClass
993//
996 : m_ClassID (0),
998{
999 (*this) = src;
1000 return ;
1001}
1002
1003
1005//
1006// operator=
1007//
1015
1016
1018//
1019// operator==
1020//
1022bool
1024{
1025 bool retval = false;
1026
1027 if (m_Value != NULL && src.m_Value != NULL &&
1028 (*m_Value) == (*src.m_Value))
1029 {
1030 retval = true;
1031 }
1032
1033 return retval;
1034}
1035
1036
1038//
1039// operator==
1040//
1042bool
1044{
1045 bool retval = false;
1046
1047 if (src.Get_Type () == Get_Type ()) {
1049 }
1050
1051 return retval;
1052}
1053
1054
1056//
1057// Copy_Value
1058//
1060void
1062{
1064 (*m_Value) = ((GenericDefParameterClass &)src).Get_Value ();
1065 }
1066
1068 return ;
1069}
1070
1071
1072//*******************************************************************************************//
1073//
1074// Start of GameObjDefParameterClass
1075//
1076//*******************************************************************************************//
1077
1078
1080//
1081// GameObjDefParameterClass
1082//
1089
1090
1092//
1093// GameObjDefParameterClass
1094//
1097 : DefParameterClass (src)
1098{
1099 (*this) = src;
1100 return ;
1101}
1102
1103
1105//
1106// operator=
1107//
1115
1116
1118//
1119// operator==
1120//
1122bool
1124{
1125 bool retval = false;
1126
1127 if (m_Value != NULL && src.m_Value != NULL &&
1128 (*m_Value) == (*src.m_Value))
1129 {
1130 retval = true;
1131 }
1132
1133 return retval;
1134}
1135
1136
1138//
1139// operator==
1140//
1142bool
1144{
1145 bool retval = false;
1146
1147 if (src.Get_Type () == Get_Type ()) {
1149 }
1150
1151 return retval;
1152}
1153
1154
1156//
1157// Copy_Value
1158//
1160void
1162{
1164 (*m_Value) = ((GameObjDefParameterClass &)src).Get_Value ();
1165 }
1166
1168 return ;
1169}
1170
1171
1172//*******************************************************************************************//
1173//
1174// Start of WeaponObjDefParameterClass
1175//
1176//*******************************************************************************************//
1177
1178
1180//
1181// WeaponObjDefParameterClass
1182//
1189
1190
1192//
1193// WeaponObjDefParameterClass
1194//
1202
1203
1205//
1206// operator=
1207//
1216
1217
1219//
1220// operator==
1221//
1223bool
1225{
1226 bool retval = false;
1227
1228 if (m_Value != NULL && src.m_Value != NULL &&
1229 (*m_Value) == (*src.m_Value))
1230 {
1231 retval = true;
1232 }
1233
1234 return retval;
1235}
1236
1237
1239//
1240// operator==
1241//
1243bool
1245{
1246 bool retval = false;
1247
1248 if (src.Get_Type () == Get_Type ()) {
1250 }
1251
1252 return retval;
1253}
1254
1255
1257//
1258// Copy_Value
1259//
1261void
1271
1272
1273//*******************************************************************************************//
1274//
1275// Start of AmmoObjDefParameterClass
1276//
1277//*******************************************************************************************//
1278
1279
1281//
1282// AmmoObjDefParameterClass
1283//
1290
1291
1293//
1294// AmmoObjDefParameterClass
1295//
1303
1304
1306//
1307// operator=
1308//
1312{
1313 m_Value = src.m_Value;
1315 return *this;
1316}
1317
1318
1320//
1321// operator==
1322//
1324bool
1326{
1327 bool retval = false;
1328
1329 if (m_Value != NULL && src.m_Value != NULL &&
1330 (*m_Value) == (*src.m_Value))
1331 {
1332 retval = true;
1333 }
1334
1335 return retval;
1336}
1337
1338
1340//
1341// operator==
1342//
1344bool
1346{
1347 bool retval = false;
1348
1349 if (src.Get_Type () == Get_Type ()) {
1351 }
1352
1353 return retval;
1354}
1355
1356
1358//
1359// Copy_Value
1360//
1362void
1372
1373
1374//*******************************************************************************************//
1375//
1376// Start of ExplosionObjDefParameterClass
1377//
1378//*******************************************************************************************//
1379
1380
1382//
1383// ExplosionObjDefParameterClass
1384//
1391
1392
1394//
1395// ExplosionObjDefParameterClass
1396//
1404
1405
1407//
1408// operator=
1409//
1418
1419
1421//
1422// operator==
1423//
1425bool
1427{
1428 bool retval = false;
1429
1430 if (m_Value != NULL && src.m_Value != NULL &&
1431 (*m_Value) == (*src.m_Value))
1432 {
1433 retval = true;
1434 }
1435
1436 return retval;
1437}
1438
1439
1441//
1442// operator==
1443//
1445bool
1447{
1448 bool retval = false;
1449
1450 if (src.Get_Type () == Get_Type ()) {
1452 }
1453
1454 return retval;
1455}
1456
1457
1459//
1460// Copy_Value
1461//
1463void
1473
1474
1475//*******************************************************************************************//
1476//
1477// Start of SoundDefParameterClass
1478//
1479//*******************************************************************************************//
1480
1481
1483//
1484// SoundDefParameterClass
1485//
1492
1494//
1495// SoundDefParameterClass
1496//
1499 : DefParameterClass (src)
1500{
1501 (*this) = src;
1502 return ;
1503}
1504
1505
1507//
1508// operator=
1509//
1517
1518
1520//
1521// operator==
1522//
1524bool
1526{
1527 bool retval = false;
1528
1529 if (m_Value != NULL && src.m_Value != NULL &&
1530 (*m_Value) == (*src.m_Value))
1531 {
1532 retval = true;
1533 }
1534
1535 return retval;
1536}
1537
1538
1540//
1541// operator==
1542//
1544bool
1546{
1547 bool retval = false;
1548
1549 if (src.Get_Type () == Get_Type ()) {
1551 }
1552
1553 return retval;
1554}
1555
1556
1557//*******************************************************************************************//
1558//
1559// Start of ScriptParameterClass
1560//
1561//*******************************************************************************************//
1562
1563
1565//
1566// ScriptParameterClass
1567//
1570 : m_ScriptName (name),
1571 m_ScriptParams (params)
1572{
1573 return ;
1574}
1575
1577//
1578// ScriptParameterClass
1579//
1582 : m_ScriptName (NULL),
1584{
1585 (*this) = src;
1586 return ;
1587}
1588
1589
1591//
1592// operator=
1593//
1603
1604
1606//
1607// operator==
1608//
1610bool
1612{
1613 bool retval = false;
1614
1615 //
1616 // Data valid?
1617 //
1618 if ( (m_ScriptName != NULL) && (src.m_ScriptName != NULL) &&
1619 (m_ScriptParams != NULL) && (src.m_ScriptParams != NULL))
1620 {
1621
1622 //
1623 // Simple string compares should workd
1624 //
1625 if ( (m_ScriptName->Compare (*(src.m_ScriptName)) == 0) &&
1626 (m_ScriptParams->Compare (*(src.m_ScriptParams)) == 0))
1627 {
1628 retval = true;
1629 }
1630 }
1631
1632 return retval;
1633}
1634
1635
1637//
1638// operator==
1639//
1641bool
1643{
1644 bool retval = false;
1645
1646 if (src.Get_Type () == Get_Type ()) {
1648 }
1649
1650 return retval;
1651}
1652
1653
1655//
1656// Copy_Value
1657//
1659void
1661{
1663 (*m_ScriptName) = ((ScriptParameterClass &)src).Get_Script_Name ();
1664 (*m_ScriptParams) = ((ScriptParameterClass &)src).Get_Params ();
1665 }
1666
1668 return ;
1669}
1670
1671
1672//*******************************************************************************************//
1673//
1674// Start of DefIDListParameterClass
1675//
1676//*******************************************************************************************//
1677
1678
1680//
1681// DefIDListParameterClass
1682//
1691
1692
1694//
1695// DefIDListParameterClass
1696//
1699 : m_IDList (NULL),
1700 m_ClassID (0),
1702{
1703 (*this) = src;
1704 return ;
1705}
1706
1707
1709//
1710// operator=
1711//
1723
1724
1726//
1727// operator==
1728//
1730bool
1732{
1733 bool retval = false;
1734
1735 //
1736 // Data valid?
1737 //
1738 if ((m_IDList != NULL) && (src.m_IDList != NULL))
1739 {
1740 //
1741 // Class IDs the same?
1742 //
1743 if (m_ClassID == src.m_ClassID) {
1744
1745 int count1 = m_IDList->Count ();
1746 int count2 = src.m_IDList->Count ();
1747
1748 //
1749 // Are the lists the same?
1750 //
1751 retval = (count1 == count2);
1752 for (int index = 0; (index < count1) && retval; index ++) {
1753 int value1 = (*m_IDList)[index];
1754 int value2 = (*src.m_IDList)[index];
1755 retval &= (value1 == value2);
1756 }
1757 }
1758 }
1759
1760 return retval;
1761}
1762
1763
1765//
1766// operator==
1767//
1769bool
1771{
1772 bool retval = false;
1773
1774 if (src.Get_Type () == Get_Type ()) {
1776 }
1777
1778 return retval;
1779}
1780
1781
1783//
1784// Copy_Value
1785//
1787void
1789{
1792
1793 m_ClassID = real_src.m_ClassID;
1794 (*m_IDList) = (*real_src.m_IDList);
1795
1796 if (m_SelectedClassID != NULL && real_src.m_SelectedClassID != NULL) {
1797 (*m_SelectedClassID) = (*real_src.m_SelectedClassID);
1798 }
1799 }
1800
1802 return ;
1803}
1804
1805
1806//*******************************************************************************************//
1807//
1808// Start of ZoneParameterClass
1809//
1810//*******************************************************************************************//
1811
1812
1814//
1815// ZoneParameterClass
1816//
1823
1824
1826//
1827// ZoneParameterClass
1828//
1831 : m_OBBox (NULL)
1832{
1833 (*this) = src;
1834 return ;
1835}
1836
1837
1839//
1840// operator=
1841//
1843const ZoneParameterClass &
1845{
1846 m_OBBox = src.m_OBBox;
1847
1849 return *this;
1850}
1851
1852
1854//
1855// operator==
1856//
1858bool
1860{
1861 bool retval = false;
1862
1863 //
1864 // Are the OBBoxes the same?
1865 //
1866 if ((m_OBBox != NULL) && (src.m_OBBox != NULL)) {
1867 retval = (*m_OBBox) == (*src.m_OBBox);
1868 }
1869
1870 return retval;
1871}
1872
1873
1875//
1876// operator==
1877//
1879bool
1881{
1882 bool retval = false;
1883
1884 if (src.Get_Type () == Get_Type ()) {
1886 }
1887
1888 return retval;
1889}
1890
1891
1893//
1894// Copy_Value
1895//
1897void
1899{
1901 ZoneParameterClass real_src = (ZoneParameterClass &)src;
1902
1903 (*m_OBBox) = (*real_src.m_OBBox);
1904 }
1905
1907 return ;
1908}
1909
1910
1911//*******************************************************************************************//
1912//
1913// Start of FilenameListParameterClass
1914//
1915//*******************************************************************************************//
1916
1917
1919//
1920// FilenameListParameterClass
1921//
1928
1929
1931//
1932// FilenameListParameterClass
1933//
1941
1942
1944//
1945// operator=
1946//
1956
1957
1959//
1960// operator==
1961//
1963bool
1965{
1966 bool retval = false;
1967
1968 //
1969 // Data valid?
1970 //
1971 if ((m_FilenameList != NULL) && (src.m_FilenameList != NULL))
1972 {
1973 int count1 = m_FilenameList->Count ();
1974 int count2 = src.m_FilenameList->Count ();
1975
1976 //
1977 // Are the lists the same?
1978 //
1979 retval = (count1 == count2);
1980 for (int index = 0; (index < count1) && retval; index ++) {
1981 StringClass &filename1 = (*m_FilenameList)[index];
1982 StringClass &filename2 = (*src.m_FilenameList)[index];
1983 retval &= (::stricmp (filename1, filename2) == 0);
1984 }
1985 }
1986
1987 return retval;
1988}
1989
1990
1992//
1993// operator==
1994//
1996bool
1998{
1999 bool retval = false;
2000
2001 if (src.Get_Type () == Get_Type ()) {
2003 }
2004
2005 return retval;
2006}
2007
2008
2010//
2011// Copy_Value
2012//
2014void
2016{
2019 (*m_FilenameList) = (*real_src.m_FilenameList);
2020 }
2021
2023 return ;
2024}
2025
2026
2027//*******************************************************************************************//
2028//
2029// Start of ScriptListParameterClass
2030//
2031//*******************************************************************************************//
2032
2033
2035//
2036// ScriptListParameterClass
2037//
2040(
2043)
2044 : m_NameList (name_list),
2045 m_ParamList (param_list)
2046{
2047 return ;
2048}
2049
2050
2052//
2053// ScriptListParameterClass
2054//
2057 : m_NameList (NULL),
2059{
2060 (*this) = src;
2061 return ;
2062}
2063
2064
2066//
2067// operator=
2068//
2072{
2073 m_NameList = src.m_NameList;
2075
2077 return *this;
2078}
2079
2080
2082//
2083// operator==
2084//
2086bool
2088{
2089 bool retval = false;
2090
2091 //
2092 // Data valid?
2093 //
2094 if ( (m_NameList != NULL) && (src.m_NameList != NULL) &&
2095 (m_ParamList != NULL) && (src.m_ParamList != NULL))
2096 {
2097 retval = Are_Lists_Identical (*m_NameList, *(src.m_NameList));
2098 retval &= Are_Lists_Identical (*m_ParamList, *(src.m_ParamList));
2099 }
2100
2101 return retval;
2102}
2103
2104
2106//
2107// Are_Lists_Identical
2108//
2110bool
2112(
2115)
2116{
2117 int count1 = list1.Count ();
2118 int count2 = list2.Count ();
2119
2120 //
2121 // Do a string compare on every entry
2122 //
2123 bool retval = (count1 == count2);
2124 for (int index = 0; (index < count1) && retval; index ++) {
2125 StringClass &string1 = list1[index];
2126 StringClass &string2 = list2[index];
2127 retval &= (::stricmp (string1, string2) == 0);
2128 }
2129
2130 return retval;
2131}
2132
2133
2135//
2136// operator==
2137//
2139bool
2141{
2142 bool retval = false;
2143
2144 if (src.Get_Type () == Get_Type ()) {
2146 }
2147
2148 return retval;
2149}
2150
2151
2153//
2154// Copy_Value
2155//
2157void
2159{
2162 (*m_NameList) = (*real_src.m_NameList);
2163 (*m_ParamList) = (*real_src.m_ParamList);
2164 }
2165
2167 return ;
2168}
2169
2170
2171//*******************************************************************************************//
2172//
2173// Start of SeparatorParameterClass
2174//
2175//*******************************************************************************************//
2176
2177
2179//
2180// SeparatorParameterClass
2181//
2184{
2185 (*this) = src;
2186 return ;
2187}
2188
2189
2191//
2192// operator=
2193//
2201
2202
2204//
2205// operator==
2206//
2208bool
2210{
2211 return true;
2212}
2213
2214
2216//
2217// operator==
2218//
2220bool
2222{
2223 bool retval = false;
2224
2225 if (src.Get_Type () == Get_Type ()) {
2227 }
2228
2229 return retval;
2230}
2231
2232
2234//
2235// Copy_Value
2236//
2238void
#define NULL
Definition BaseType.h:92
void const char * value
#define __cdecl
Definition IFF.H:44
#define W3DNEW
Definition always.h:109
@ false
Definition bool.h:59
virtual Type Get_Type(void) const
Definition parameter.h:759
const AmmoObjDefParameterClass & operator=(const AmmoObjDefParameterClass &src)
bool operator==(const AmmoObjDefParameterClass &src)
virtual void Copy_Value(const ParameterClass &src)
virtual Type Get_Type(void) const
Definition parameter.h:951
DefIDListParameterClass(DynamicVectorClass< int > *list)
const DefIDListParameterClass & operator=(const DefIDListParameterClass &src)
DynamicVectorClass< int > * m_IDList
Definition parameter.h:970
virtual void Copy_Value(const ParameterClass &src)
bool operator==(const DefIDListParameterClass &src)
const DefParameterClass & operator=(const DefParameterClass &src)
virtual void Copy_Value(const ParameterClass &src)
virtual int Get_Value(void) const
Definition parameter.h:623
DefParameterClass(int *id)
bool operator==(const DefParameterClass &src)
int Count(void) const
Definition Vector.H:507
struct EnumParameterClass::_ENUM_VALUE ENUM_VALUE
virtual void __cdecl Add_Values(const char *first_name, int first_value,...)
bool operator==(const EnumParameterClass &src)
DynamicVectorClass< ENUM_VALUE > m_List
Definition parameter.h:486
virtual Type Get_Type(void) const
Definition parameter.h:452
virtual void Copy_Value(const ParameterClass &src)
EnumParameterClass(int *value)
const EnumParameterClass & operator=(const EnumParameterClass &src)
virtual int Get_Selected_Value(void) const
Definition parameter.h:463
virtual void Add_Value(const char *display_name, int value)
bool operator==(const ExplosionObjDefParameterClass &src)
virtual void Copy_Value(const ParameterClass &src)
const ExplosionObjDefParameterClass & operator=(const ExplosionObjDefParameterClass &src)
virtual Type Get_Type(void) const
Definition parameter.h:831
const FilenameListParameterClass & operator=(const FilenameListParameterClass &src)
bool operator==(const FilenameListParameterClass &src)
virtual void Copy_Value(const ParameterClass &src)
DynamicVectorClass< StringClass > * m_FilenameList
Definition parameter.h:1066
FilenameListParameterClass(DynamicVectorClass< StringClass > *list)
virtual Type Get_Type(void) const
Definition parameter.h:1052
virtual void Copy_Value(const ParameterClass &src)
FilenameParameterClass(StringClass *string)
bool operator==(const FilenameParameterClass &src)
const FilenameParameterClass & operator=(const FilenameParameterClass &src)
const GameObjDefParameterClass & operator=(const GameObjDefParameterClass &src)
virtual void Copy_Value(const ParameterClass &src)
virtual Type Get_Type(void) const
Definition parameter.h:712
bool operator==(const GameObjDefParameterClass &src)
bool operator==(const GenericDefParameterClass &src)
virtual void Copy_Value(const ParameterClass &src)
virtual Type Get_Type(void) const
Definition parameter.h:665
const GenericDefParameterClass & operator=(const GenericDefParameterClass &src)
const ModelDefParameterClass & operator=(const ModelDefParameterClass &src)
bool operator==(const ModelDefParameterClass &src)
virtual void Copy_Value(const ParameterClass &src)
virtual Type Get_Type(void) const
Definition parameter.h:569
ModelDefParameterClass(int *id)
virtual void Set_Modified(bool onoff=true)
Definition parameter.h:133
static ParameterClass * Construct(ParameterClass::Type type, void *data, const char *param_name)
Definition parameter.cpp:56
virtual void Copy_Value(const ParameterClass &src)
Definition parameter.h:144
virtual bool Is_Type(Type type) const
Definition parameter.h:129
ParameterClass(void)
Definition parameter.h:168
const ParameterClass & operator=(const ParameterClass &src)
Definition parameter.h:201
virtual void Set_Name(const char *new_name)
Definition parameter.h:221
virtual Type Get_Type(void) const =0
@ TYPE_GENERICDEFINITIONID
Definition parameter.h:98
@ TYPE_MODELDEFINITIONID
Definition parameter.h:81
@ TYPE_WEAPONOBJDEFINITIONID
Definition parameter.h:88
@ TYPE_DEFINITIONIDLIST
Definition parameter.h:94
@ TYPE_GAMEOBJDEFINITIONID
Definition parameter.h:84
@ TYPE_AMMOOBJDEFINITIONID
Definition parameter.h:89
@ TYPE_SOUNDDEFINITIONID
Definition parameter.h:90
@ TYPE_EXPLOSIONDEFINITIONID
Definition parameter.h:93
@ TYPE_PHYSDEFINITIONID
Definition parameter.h:92
bool operator==(const PhysDefParameterClass &src)
virtual void Copy_Value(const ParameterClass &src)
PhysDefParameterClass(int *id)
virtual Type Get_Type(void) const
Definition parameter.h:519
const PhysDefParameterClass & operator=(const PhysDefParameterClass &src)
const ScriptListParameterClass & operator=(const ScriptListParameterClass &src)
virtual Type Get_Type(void) const
Definition parameter.h:1099
bool Are_Lists_Identical(DynamicVectorClass< StringClass > &list1, DynamicVectorClass< StringClass > &list2)
DynamicVectorClass< StringClass > * m_NameList
Definition parameter.h:1119
DynamicVectorClass< StringClass > * m_ParamList
Definition parameter.h:1120
virtual void Copy_Value(const ParameterClass &src)
bool operator==(const ScriptListParameterClass &src)
ScriptListParameterClass(DynamicVectorClass< StringClass > *name_list, DynamicVectorClass< StringClass > *param_list)
virtual const char * Get_Params(void) const
Definition parameter.h:908
virtual const char * Get_Script_Name(void) const
Definition parameter.h:906
virtual Type Get_Type(void) const
Definition parameter.h:901
virtual void Copy_Value(const ParameterClass &src)
StringClass * m_ScriptParams
Definition parameter.h:919
ScriptParameterClass(StringClass *name, StringClass *params)
StringClass * m_ScriptName
Definition parameter.h:918
const ScriptParameterClass & operator=(const ScriptParameterClass &src)
bool operator==(const ScriptParameterClass &src)
bool operator==(const SeparatorParameterClass &src)
virtual Type Get_Type(void) const
Definition parameter.h:1152
virtual void Copy_Value(const ParameterClass &src)
const SeparatorParameterClass & operator=(const SeparatorParameterClass &src)
const SoundDefParameterClass & operator=(const SoundDefParameterClass &src)
virtual Type Get_Type(void) const
Definition parameter.h:868
bool operator==(const SoundDefParameterClass &src)
bool operator==(const SoundFilenameParameterClass &src)
const SoundFilenameParameterClass & operator=(const SoundFilenameParameterClass &src)
SoundFilenameParameterClass(StringClass *string)
StringParameterClass(StringClass *string)
bool operator==(const StringParameterClass &src)
virtual void Set_String(const char *string)
const StringParameterClass & operator=(const StringParameterClass &src)
StringClass * m_String
Definition parameter.h:298
virtual void Copy_Value(const ParameterClass &src)
virtual Type Get_Type(void) const
Definition parameter.h:283
virtual const char * Get_String(void) const
virtual void Copy_Value(const ParameterClass &src)
TextureFilenameParameterClass(StringClass *string)
virtual Type Get_Type(void) const
Definition parameter.h:795
const WeaponObjDefParameterClass & operator=(const WeaponObjDefParameterClass &src)
virtual void Copy_Value(const ParameterClass &src)
bool operator==(const WeaponObjDefParameterClass &src)
ZoneParameterClass(OBBoxClass *box)
OBBoxClass * m_OBBox
Definition parameter.h:1020
const ZoneParameterClass & operator=(const ZoneParameterClass &src)
virtual Type Get_Type(void) const
Definition parameter.h:1004
bool operator==(const ZoneParameterClass &src)
virtual void Copy_Value(const ParameterClass &src)
@ CLASSID_GAME_OBJECTS
else return(RetVal)
SimpleParameterClass< Vector2, ParameterClass::TYPE_VECTOR2 > Vector2ParameterClass
SimpleParameterClass< Vector3, ParameterClass::TYPE_VECTOR3 > Vector3ParameterClass
SimpleParameterClass< RectClass, ParameterClass::TYPE_RECT > RectParameterClass
SimpleParameterClass< Vector3, ParameterClass::TYPE_COLOR > ColorParameterClass
SimpleParameterClass< int, ParameterClass::TYPE_STRINGSDB_ID > StringsDBEntryParameterClass
SimpleParameterClass< bool, ParameterClass::TYPE_BOOL > BoolParameterClass
SimpleParameterClass< Matrix3D, ParameterClass::TYPE_MATRIX3D > Matrix3DParameterClass