Changeset 549
- Timestamp:
- 05/20/08 12:44:25 (8 months ago)
- Files:
-
- trunk/src/defend/objects/Core.d (modified) (5 diffs)
- trunk/src/defend/objects/types/Building.d (modified) (6 diffs)
- trunk/src/defend/objects/types/Citizen.d (modified) (3 diffs)
- trunk/src/defend/objects/types/Resource.d (modified) (1 diff)
- trunk/src/defend/objects/types/Unit.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/defend/objects/Core.d
r548 r549 196 196 abstract class ObjectButton 197 197 { 198 protected:199 void assign(ObjectButton o)200 {201 o.id = id;202 o.widget = widget;203 o.pos = pos;204 o.showCache = false;205 o.doPlaceObject = doPlaceObject;206 o.placeObject = placeObject;207 }208 209 public:210 abstract ObjectButton dup();211 212 198 button_id_t id; 213 199 Widget widget; … … 215 201 bool showCache; 216 202 203 // Let the user place an object, then send OrderPlaceObject 217 204 bool doPlaceObject = false; 218 219 // Let the user place an object, then send OrderPlaceObject220 205 object_type_t placeObject; 221 206 207 // Returns whether the button shall be made visible 222 208 abstract bool show(GameObject object); 209 223 210 abstract void onLeftClick(GameObject[] objects); 224 211 abstract char[] miniPic(); … … 302 289 assert(object.typeInfo.objectClass == whatClass); 303 290 }); 304 }305 306 // Duplication307 void assign(ObjectTypeInfo o)308 {309 o.logger = logger;310 o.buttonCounter = 0;311 o.propertyFactors[] = propertyFactors[];312 o.available = available;313 o.abstractType = abstractType;314 o.model = model;315 o.posOffset = posOffset;316 o.scale = scale;317 o.miniPic = miniPic;318 o.properties[] = properties[];319 o.dimension = dimension;320 o.gameObjects = gameObjects;321 o.objectType = objectType;322 o.parentType = parentType;323 o.objectClass = objectClass;324 291 } 325 292 … … 359 326 typedef uint local_id_t; 360 327 local_id_t localTypeID; 361 362 abstract ObjectTypeInfo dup();363 328 364 329 // Check if an order is valid … … 607 572 608 573 public: 609 override ObjectTypeInfo dup()610 {611 auto result = new BaseTypeInfo;612 assign(result);613 614 return result;615 }616 617 574 override void construct() 618 575 { trunk/src/defend/objects/types/Building.d
r541 r549 143 143 class BuildingTypeInfo : BaseTypeInfo 144 144 { 145 protected:146 override void assign(ObjectTypeInfo t)147 {148 super.assign(t);149 150 auto o = cast(BuildingTypeInfo)t;151 assert(o !is null);152 153 o.canBuild = canBuild.dup;154 o.canDevelop = canDevelop.dup;155 o.buildSteps = buildSteps;156 }157 158 public:159 145 object_type_t[] canBuild; 160 146 tech_t[] canDevelop; … … 162 148 // Time needed for building (in simulation steps) 163 149 uint buildSteps = 30; 164 165 override ObjectTypeInfo dup() 166 { 167 auto result = new BuildingTypeInfo; 168 assign(result); 169 170 return result; 171 } 172 150 173 151 // Orders 174 152 override OrderError checkOrder(GameObject[] objects, OrderMapRightClick* order) … … 191 169 class ButtonBuildUnit : ObjectButton 192 170 { 193 protected:194 override void assign(ObjectButton t)195 {196 super.assign(t);197 198 auto o = cast(ButtonBuildUnit)t;199 assert(o !is null);200 201 o.unitType = unitType;202 o._unitTypePointer = null;203 }204 205 public:206 171 object_type_t unitType; 207 172 UnitTypeInfo _unitTypePointer; … … 210 175 { 211 176 unitType = t; 212 }213 214 override ObjectButton dup()215 {216 auto result = new ButtonBuildUnit(unitType);217 assign(result);218 219 return result;220 177 } 221 178 … … 288 245 class ButtonTech : ObjectButton 289 246 { 290 protected:291 override void assign(ObjectButton t)292 {293 super.assign(t);294 295 auto o = cast(ButtonTech)t;296 assert(o !is null);297 298 o.tech = tech;299 o._techPointer = null;300 }301 302 public:303 247 tech_t tech; 304 248 Technology _techPointer; … … 307 251 { 308 252 tech = t; 309 }310 311 override ObjectButton dup()312 {313 auto result = new ButtonTech(tech);314 assign(result);315 316 return result;317 253 } 318 254 trunk/src/defend/objects/types/Citizen.d
r547 r549 45 45 class CitizenTypeInfo : UnitTypeInfo 46 46 { 47 protected:48 override void assign(ObjectTypeInfo t)49 {50 super.assign(t);51 52 auto o = cast(CitizenTypeInfo)t;53 assert(o !is null);54 55 o.canBuild = canBuild.dup;56 }57 58 public:59 47 object_type_t[] canBuild; 60 61 override ObjectTypeInfo dup()62 {63 auto result = new CitizenTypeInfo;64 assign(result);65 66 return result;67 }68 48 69 49 override OrderError checkOrder(GameObject[] objects, OrderObjectRightClick* order) … … 148 128 class ButtonBuildBuilding : ObjectButton 149 129 { 150 protected:151 override void assign(ObjectButton t)152 {153 super.assign(t);154 155 auto o = cast(ButtonBuildBuilding)t;156 assert(o !is null);157 158 o.buildingType = buildingType;159 o._buildingTypePointer = null;160 }161 162 public:163 130 object_type_t buildingType; 164 131 BuildingTypeInfo _buildingTypePointer; … … 169 136 doPlaceObject = true; 170 137 placeObject = t; 171 }172 173 override ObjectButton dup()174 {175 auto result = new ButtonBuildBuilding(buildingType);176 assign(result);177 178 return result;179 138 } 180 139 trunk/src/defend/objects/types/Resource.d
r541 r549 48 48 class ResourceTypeInfo : BaseTypeInfo 49 49 { 50 protected:51 override void assign(ObjectTypeInfo t)52 {53 super.assign(t);54 55 auto o = cast(ResourceTypeInfo)t;56 assert(o !is null);57 58 o.resourceType = resourceType;59 o.initialAmount = initialAmount;60 }61 62 public:63 50 ResourceType resourceType; 64 51 uint initialAmount; 65 66 override ResourceTypeInfo dup()67 {68 auto result = new ResourceTypeInfo;69 assign(result);70 71 return result;72 }73 52 74 53 override void construct() trunk/src/defend/objects/types/Unit.d
r542 r549 137 137 class UnitTypeInfo : BaseTypeInfo 138 138 { 139 protected:140 override void assign(ObjectTypeInfo t)141 {142 super.assign(t);143 144 auto o = cast(UnitTypeInfo)t;145 assert(o !is null);146 147 o.developmentSteps = developmentSteps;148 }149 150 public:151 139 // Time needed for development (in simulation steps) 152 140 uint developmentSteps = 30; 153 154 override ObjectTypeInfo dup()155 {156 auto result = new UnitTypeInfo;157 assign(result);158 159 return result;160 }161 141 162 142 // Orders
