Changeset 25192
- Timestamp:
- Apr 5, 2021, 7:22:25 AM (3 years ago)
- Location:
- ps/trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
ps/trunk/binaries/data/mods/public/gui/session/unit_actions.js
r25123 r25192 1322 1322 1323 1323 if (allowedPlayersCheck([entState], ["Player"])) 1324 count += entState.turretHolder.turretPoints.filter(turretPoint => turretPoint.entity ).length;1324 count += entState.turretHolder.turretPoints.filter(turretPoint => turretPoint.entity).length; 1325 1325 else 1326 1326 for (let turretPoint of entState.turretHolder.turretPoints) … … 1444 1444 { 1445 1445 if (entStates.every(entState => !entState.turretable || 1446 entState.turretable.holder == INVALID_ENTITY)) 1446 entState.turretable.holder == INVALID_ENTITY || 1447 !entState.turretable.ejectable)) 1447 1448 return false; 1448 1449 … … 1461 1462 "type": "leave-turret", 1462 1463 "entities": entStates.filter(entState => entState.turretable && 1463 entState.turretable.holder != INVALID_ENTITY).map(entState => entState.id) 1464 entState.turretable.holder != INVALID_ENTITY || 1465 !entState.turretable.ejectable).map(entState => entState.id) 1464 1466 }); 1465 1467 }, -
ps/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
r25191 r25192 392 392 if (cmpTurretable) 393 393 ret.turretable = { 394 394 395 "holder": cmpTurretable.HolderID() 395 396 }; -
ps/trunk/binaries/data/mods/public/simulation/components/Health.js
r25089 r25192 135 135 { 136 136 let cmpUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI); 137 if (cmpUnitAI && (cmpUnitAI.IsIdle() || 138 cmpUnitAI.GetGarrisonHolder() != INVALID_ENTITY && !cmpUnitAI.IsTurret())) 137 if (cmpUnitAI && cmpUnitAI.IsIdle()) 139 138 regen += this.GetIdleRegenRate(); 140 139 } -
ps/trunk/binaries/data/mods/public/simulation/components/TurretHolder.js
r25178 r25192 20 20 "allowedClasses": points[point].AllowedClasses?._string, 21 21 "angle": points[point].Angle ? +points[point].Angle * Math.PI / 180 : null, 22 "entity": null 22 "entity": null, 23 "template": points[point].Template, 24 "ejectable": "Ejectable" in points[point] ? points[point].Ejectable == "true" : true 23 25 }); 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 24 65 } 25 66 … … 38 79 * @return {boolean} - Whether the entity is allowed to occupy the specified turret point. 39 80 */ 40 AllowedToOccupyTurret (entity, turretPoint)81 AllowedToOccupyTurret(entity, turretPoint) 41 82 { 42 83 if (!turretPoint || turretPoint.entity) … … 59 100 CanOccupy(entity) 60 101 { 61 return !!this.turretPoints.find(turretPoint => this.AllowedToOccupyTurret (entity, turretPoint));102 return !!this.turretPoints.find(turretPoint => this.AllowedToOccupyTurret(entity, turretPoint)); 62 103 } 63 104 … … 69 110 * @return {boolean} - Whether the occupation was successful. 70 111 */ 71 OccupyTurret (entity, requestedTurretPoint)112 OccupyTurret(entity, requestedTurretPoint) 72 113 { 73 114 let cmpPositionOccupant = Engine.QueryInterface(entity, IID_Position); … … 79 120 return false; 80 121 81 if (this.OccupiesTurret (entity))122 if (this.OccupiesTurret(entity)) 82 123 return false; 83 124 … … 85 126 if (requestedTurretPoint) 86 127 { 87 if (this.AllowedToOccupyTurret (entity, requestedTurretPoint))128 if (this.AllowedToOccupyTurret(entity, requestedTurretPoint)) 88 129 turretPoint = requestedTurretPoint; 89 130 } 90 131 else 91 turretPoint = this.turretPoints.find(turret => !turret.entity && this.AllowedToOccupyTurret (entity, turret));132 turretPoint = this.turretPoints.find(turret => !turret.entity && this.AllowedToOccupyTurret(entity, turret)); 92 133 93 134 if (!turretPoint) … … 122 163 * @return {boolean} - Whether the occupation has succeeded. 123 164 */ 124 OccupyNamedTurret(entity, turretName) 125 { 126 return this.OccupyTurret(entity, this.turretPoints.find(turret => turret.name == turretName)); 165 OccupyNamedTurretPoint(entity, turretName) 166 { 167 return this.OccupyTurretPoint(entity, this.TurretPointByName(turretName)); 168 } 169 170 /** 171 * @param {string} turretPointName - The name of the requested turret point. 172 * @return {Object} - The requested turret point. 173 */ 174 TurretPointByName(turretPointName) 175 { 176 return this.turretPoints.find(turret => turret.name == turretPointName); 127 177 } 128 178 … … 130 180 * Remove the entity from a turret. 131 181 * @param {number} entity - The specific entity to eject. 182 132 183 * @param {Object} turret - Optionally the turret to abandon. 133 184 * 134 * @return {boolean} - Whether the entity was occupying a/the turret before.135 */ 136 LeaveTurret (entity, requestedTurretPoint)185 * @return {boolean} - Whether the entity . 186 */ 187 LeaveTurret, requestedTurretPoint) 137 188 { 138 189 let turretPoint; … … 143 194 } 144 195 else 145 turretPoint = this. turretPoints.find(turret => turret.entity ==entity);146 147 if (!turretPoint )196 turretPoint = this.entity); 197 198 if (!turretPoint) 148 199 return false; 149 200 150 201 turretPoint.entity = null; 151 152 let cmpPositionEntity = Engine.QueryInterface(entity, IID_Position);153 if (cmpPositionEntity)154 cmpPositionEntity.SetTurretParent(INVALID_ENTITY, new Vector3D());155 202 156 203 Engine.PostMessage(this.entity, MT_TurretsChanged, { … … 168 215 * @return {boolean} - Whether the entity is positioned on a turret of this entity. 169 216 */ 170 OccupiesTurret (entity, requestedTurretPoint)217 OccupiesTurret(entity, requestedTurretPoint) 171 218 { 172 219 return requestedTurretPoint ? requestedTurretPoint.entity == entity : 173 this.turretPoints.some(turretPoint => turretPoint.entity ==entity);220 entity); 174 221 } 175 222 … … 178 225 * @return {Object} - The turret this entity is positioned on, if applicable. 179 226 */ 180 GetOccupiedTurret (entity)227 GetOccupiedTurret(entity) 181 228 { 182 229 return this.turretPoints.find(turretPoint => turretPoint.entity == entity); … … 187 234 * @return {Object} - The turret this entity is positioned on, if applicable. 188 235 */ 189 GetOccupiedTurret Name(entity)190 { 191 let turret = this.GetOccupiedTurret (entity);236 GetOccupiedTurretName(entity) 237 { 238 let turret = this.GetOccupiedTurret(entity); 192 239 return turret ? turret.name : ""; 193 240 } … … 307 354 308 355 for (let [turretPointName, entity] of this.initTurrets) 309 if (!this.OccupyNamedTurret(entity, turretPointName)) 356 { 357 let cmpTurretable = Engine.QueryInterface(entity, IID_Turretable); 358 if (!cmpTurretable || !cmpTurretable.OccupyTurret(this.entity, turretPointName, this.TurretPointByName(turretPointName).ejectable)) 310 359 warn("Entity " + entity + " could not occupy the turret point " + 311 360 turretPointName + " of turret holder " + this.entity + "."); 361 312 362 313 363 delete this.initTurrets; … … 324 374 if (!cmpTurretable) 325 375 continue; 326 let currentPoint = this.GetOccupiedTurret Name(entity);376 let currentPoint = this.GetOccupiedTurretName(entity); 327 377 cmpTurretable.LeaveTurret(true); 328 378 cmpTurretable.OccupyTurret(msg.newentity, currentPoint); … … 335 385 OnOwnershipChanged(msg) 336 386 { 337 let entities = this.GetEntities(); 338 if (!entities.length) 387 if (msg.to === INVALID_PLAYER) 388 { 389 this.EjectOrKill(this.GetEntities()); 339 390 return; 340 341 if (msg.to == INVALID_PLAYER) 342 this.EjectOrKill(entities); 343 else 344 for (let entity of entities.filter(entity => !IsOwnedByMutualAllyOfEntity(entity, this.entity))) 391 } 392 for (let point of this.turretPoints) 393 { 394 // If we were created, create any subunits now. 395 // This has to be done here (instead of on Init) 396 // for Ownership ought to be initialised. 397 if (point.template && msg.from === INVALID_PLAYER) 345 398 { 346 let cmpTurretable = Engine.QueryInterface(entity, IID_Turretable); 399 this.CreateSubunit(point.name); 400 continue; 401 } 402 if (!point.entity) 403 continue; 404 if (!point.ejectable) 405 { 406 let cmpTurretOwnership = Engine.QueryInterface(point.entity, IID_Ownership); 407 if (cmpTurretOwnership) 408 cmpTurretOwnership.SetOwner(msg.to); 409 } 410 else if (!IsOwnedByMutualAllyOfEntity(point.entity, this.entity)) 411 { 412 let cmpTurretable = Engine.QueryInterface(point.entity, IID_Turretable); 347 413 if (cmpTurretable) 348 414 cmpTurretable.LeaveTurret(); 349 415 } 416 417 350 418 } 351 419 } … … 366 434 "<data type='decimal'/>" + 367 435 "</element>" + 436 437 438 439 440 441 442 443 444 445 368 446 "<optional>" + 369 447 "<element name='AllowedClasses' a:help='If specified, only entities matching the given classes will be able to use this turret.'>" + -
ps/trunk/binaries/data/mods/public/simulation/components/Turretable.js
r25162 r25192 36 36 37 37 /** 38 39 40 41 42 43 44 45 38 46 * @param {number} target - The entity ID to check. 39 47 * @return {boolean} - Whether we can occupy the turret. … … 51 59 * @param {number} target - The entity ID of the entity this entity is being turreted on. 52 60 * @param {string} turretPointName - Optionally the turret point name to occupy. 61 62 53 63 * @return {boolean} - Whether occupying succeeded. 54 64 */ 55 Turretable.prototype.OccupyTurret = function(target, turretPointName = "" )65 Turretable.prototype.OccupyTurret = function(target, turretPointName = "") 56 66 { 57 67 if (!this.CanOccupy(target)) … … 59 69 60 70 let cmpTurretHolder = Engine.QueryInterface(target, IID_TurretHolder); 61 if (!cmpTurretHolder || !cmpTurretHolder.OccupyNamedTurret (this.entity, turretPointName))71 if (!cmpTurretHolder || !cmpTurretHolder.OccupyNamedTurret(this.entity, turretPointName)) 62 72 return false; 63 73 64 74 this.holder = target; 75 65 76 66 77 let cmpUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI); … … 97 108 return true; 98 109 110 111 112 99 113 let pos = PositionHelper.GetSpawnPosition(this.holder, this.entity, forced); 100 114 if (!pos) … … 102 116 103 117 let cmpTurretHolder = Engine.QueryInterface(this.holder, IID_TurretHolder); 104 if (!cmpTurretHolder || !cmpTurretHolder.LeaveTurret (this.entity))118 if (!cmpTurretHolder || !cmpTurretHolder.LeaveTurret)) 105 119 return false; 106 120 … … 112 126 if (cmpPosition) 113 127 { 128 114 129 cmpPosition.JumpTo(pos.x, pos.z); 115 130 cmpPosition.SetHeightOffset(0); 131 132 133 134 116 135 } 117 118 let cmpHolderPosition = Engine.QueryInterface(this.holder, IID_Position);119 if (cmpHolderPosition)120 cmpPosition.SetYRotation(cmpHolderPosition.GetPosition().horizAngleTo(pos));121 136 122 137 let cmpUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI); … … 139 154 140 155 let cmpRallyPoint = Engine.QueryInterface(this.holder, IID_RallyPoint); 156 157 158 159 160 141 161 if (cmpRallyPoint) 142 162 cmpRallyPoint.OrderToRallyPoint(this.entity, ["occupy-turret"]); 143 163 144 delete this. holder;164 delete this.; 145 165 return true; 146 166 }; … … 156 176 157 177 let holder = this.holder; 158 let currentPoint = cmpTurretHolder.GetOccupiedTurret Name(this.entity);178 let currentPoint = cmpTurretHolder.GetOccupiedTurretName(this.entity); 159 179 this.LeaveTurret(true); 160 180 let cmpTurretableNew = Engine.QueryInterface(msg.newentity, IID_Turretable); -
ps/trunk/binaries/data/mods/public/simulation/components/UnitAI.js
r25164 r25192 3575 3575 }; 3576 3576 3577 UnitAI.prototype.GetGarrisonHolder = function()3578 {3579 if (!this.isGarrisoned)3580 return INVALID_ENTITY;3581 3582 let cmpGarrisonable = Engine.QueryInterface(this.entity, IID_Garrisonable);3583 return cmpGarrisonable ? cmpGarrisonable.HolderID() : INVALID_ENTITY;3584 };3585 3586 3577 UnitAI.prototype.ShouldRespondToEndOfAlert = function() 3587 3578 { -
ps/trunk/binaries/data/mods/public/simulation/components/tests/test_TurretHolder.js
r25123 r25192 92 92 93 93 // Test visible garrisoning restrictions. 94 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (siegeEngineID, cmpTurretHolder.turretPoints[0]), true);95 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (siegeEngineID, cmpTurretHolder.turretPoints[1]), true);96 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (siegeEngineID, cmpTurretHolder.turretPoints[2]), true);97 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (archerID, cmpTurretHolder.turretPoints[0]), true);98 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (archerID, cmpTurretHolder.turretPoints[1]), false);99 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (archerID, cmpTurretHolder.turretPoints[2]), true);100 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (cavID, cmpTurretHolder.turretPoints[0]), true);101 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (cavID, cmpTurretHolder.turretPoints[1]), false);102 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (cavID, cmpTurretHolder.turretPoints[2]), true);103 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (infID, cmpTurretHolder.turretPoints[0]), true);104 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (infID, cmpTurretHolder.turretPoints[1]), false);105 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret (infID, cmpTurretHolder.turretPoints[2]), false);94 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(siegeEngineID, cmpTurretHolder.turretPoints[0]), true); 95 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(siegeEngineID, cmpTurretHolder.turretPoints[1]), true); 96 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(siegeEngineID, cmpTurretHolder.turretPoints[2]), true); 97 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(archerID, cmpTurretHolder.turretPoints[0]), true); 98 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(archerID, cmpTurretHolder.turretPoints[1]), false); 99 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(archerID, cmpTurretHolder.turretPoints[2]), true); 100 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(cavID, cmpTurretHolder.turretPoints[0]), true); 101 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(cavID, cmpTurretHolder.turretPoints[1]), false); 102 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(cavID, cmpTurretHolder.turretPoints[2]), true); 103 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(infID, cmpTurretHolder.turretPoints[0]), true); 104 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(infID, cmpTurretHolder.turretPoints[1]), false); 105 TS_ASSERT_EQUALS(cmpTurretHolder.AllowedToOccupyTurret(infID, cmpTurretHolder.turretPoints[2]), false); 106 106 107 107 // Test that one cannot leave a turret that is not occupied. 108 TS_ASSERT(!cmpTurretHolder.LeaveTurret (archerID));108 TS_ASSERT(!cmpTurretHolder.LeaveTurret(archerID)); 109 109 110 110 // Test occupying a turret. 111 TS_ASSERT(!cmpTurretHolder.OccupiesTurret (archerID));112 TS_ASSERT(cmpTurretHolder.OccupyTurret (archerID));113 TS_ASSERT(cmpTurretHolder.OccupiesTurret (archerID));111 TS_ASSERT(!cmpTurretHolder.OccupiesTurret(archerID)); 112 TS_ASSERT(cmpTurretHolder.OccupyTurret(archerID)); 113 TS_ASSERT(cmpTurretHolder.OccupiesTurret(archerID)); 114 114 115 115 // We're not occupying a turret that we can't occupy. 116 TS_ASSERT(!cmpTurretHolder.OccupiesTurret (archerID, cmpTurretHolder.turretPoints[1]));117 TS_ASSERT(!cmpTurretHolder.OccupyTurret (cavID, cmpTurretHolder.turretPoints[1]));118 TS_ASSERT(!cmpTurretHolder.OccupyTurret (cavID, cmpTurretHolder.turretPoints[0]));119 TS_ASSERT(cmpTurretHolder.OccupyTurret (cavID, cmpTurretHolder.turretPoints[2]));116 TS_ASSERT(!cmpTurretHolder.OccupiesTurret(archerID, cmpTurretHolder.turretPoints[1])); 117 TS_ASSERT(!cmpTurretHolder.OccupyTurret(cavID, cmpTurretHolder.turretPoints[1])); 118 TS_ASSERT(!cmpTurretHolder.OccupyTurret(cavID, cmpTurretHolder.turretPoints[0])); 119 TS_ASSERT(cmpTurretHolder.OccupyTurret(cavID, cmpTurretHolder.turretPoints[2])); 120 120 121 121 // Leave turrets. 122 TS_ASSERT(cmpTurretHolder.LeaveTurret (archerID));123 TS_ASSERT(!cmpTurretHolder.LeaveTurret (cavID, cmpTurretHolder.turretPoints[1]));124 TS_ASSERT(cmpTurretHolder.LeaveTurret (cavID, cmpTurretHolder.turretPoints[2]));122 TS_ASSERT(cmpTurretHolder.LeaveTurret(archerID)); 123 TS_ASSERT(!cmpTurretHolder.LeaveTurret, cmpTurretHolder.turretPoints[1])); 124 TS_ASSERT(cmpTurretHolder.LeaveTurret, cmpTurretHolder.turretPoints[2])); -
ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Turrets.js
r25123 r25192 88 88 TS_ASSERT(cmpTurretable.OccupyTurret(holder)); 89 89 TS_ASSERT_UNEVAL_EQUALS(cmpTurretHolder.GetEntities(), [turret]); 90 TS_ASSERT(cmpTurretHolder.OccupiesTurret (turret));90 TS_ASSERT(cmpTurretHolder.OccupiesTurret(turret)); 91 91 TS_ASSERT(cmpTurretable.LeaveTurret()); 92 92 TS_ASSERT_UNEVAL_EQUALS(cmpTurretHolder.GetEntities(), []); … … 99 99 TS_ASSERT(cmpTurretable.OccupyTurret(holder)); 100 100 TS_ASSERT(cmpTurretableNew.LeaveTurret()); 101 let previousTurret = cmpTurretHolder.GetOccupiedTurret Name(turret);101 let previousTurret = cmpTurretHolder.GetOccupiedTurretName(turret); 102 102 cmpTurretable.OnEntityRenamed({ 103 103 "entity": turret, 104 104 "newentity": newTurret 105 105 }); 106 let newTurretPos = cmpTurretHolder.GetOccupiedTurret Name(newTurret);106 let newTurretPos = cmpTurretHolder.GetOccupiedTurretName(newTurret); 107 107 TS_ASSERT_UNEVAL_EQUALS(newTurretPos, previousTurret); 108 108 TS_ASSERT(cmpTurretableNew.LeaveTurret()); -
ps/trunk/binaries/data/mods/public/simulation/helpers/Transform.js
r25069 r25192 27 27 } 28 28 29 30 31 32 33 34 35 29 36 var cmpOwnership = Engine.QueryInterface(oldEnt, IID_Ownership); 30 37 var cmpNewOwnership = Engine.QueryInterface(newEnt, IID_Ownership); … … 59 66 cmpNewBuilderList.AddBuilders(cmpBuilderList.GetBuilders()); 60 67 61 var cmpUnitAI = Engine.QueryInterface(oldEnt, IID_UnitAI);62 var cmpNewUnitAI = Engine.QueryInterface(newEnt, IID_UnitAI);63 if (cmpUnitAI && cmpNewUnitAI)64 {65 let pos = cmpUnitAI.GetHeldPosition();66 if (pos)67 cmpNewUnitAI.SetHeldPosition(pos.x, pos.z);68 if (cmpUnitAI.GetStanceName())69 cmpNewUnitAI.SwitchToStance(cmpUnitAI.GetStanceName());70 if (cmpUnitAI.GetGarrisonHolder() != INVALID_ENTITY)71 cmpNewUnitAI.SetGarrisoned();72 cmpNewUnitAI.AddOrders(cmpUnitAI.GetOrders());73 if (cmpUnitAI.IsGuardOf())74 {75 let guarded = cmpUnitAI.IsGuardOf();76 let cmpGuard = Engine.QueryInterface(guarded, IID_Guard);77 if (cmpGuard)78 {79 cmpGuard.RenameGuard(oldEnt, newEnt);80 cmpNewUnitAI.SetGuardOf(guarded);81 }82 }83 }84 85 68 let cmpPromotion = Engine.QueryInterface(oldEnt, IID_Promotion); 86 69 let cmpNewPromotion = Engine.QueryInterface(newEnt, IID_Promotion); … … 96 79 cmpNewResGatherer.SetLastCarriedType(cmpResGatherer.GetLastCarriedType()); 97 80 } 98 99 81 100 82 // Maintain the list of guards … … 134 116 Engine.PostMessage(oldEnt, MT_EntityRenamed, { "entity": oldEnt, "newentity": newEnt }); 135 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 136 139 if (cmpPosition && cmpPosition.IsInWorld()) 137 140 cmpPosition.MoveOutOfWorld(); -
ps/trunk/source/graphics/MapReader.cpp
r24661 r25192 1059 1059 } 1060 1060 1061 CmpPtr<ICmpOwnership> cmpOwnership(sim, ent);1062 if (cmpOwnership)1063 cmpOwnership->SetOwner(PlayerID);1064 1065 1061 if (!Garrison.empty()) 1066 1062 { … … 1072 1068 } 1073 1069 1070 1071 1074 1072 if (!Turrets.empty()) 1075 1073 { … … 1080 1078 LOGERROR("CXMLMapReader::ReadEntities() entity '%d' of player '%d' has no TurretHolder component and thus cannot use turrets.", ent, PlayerID); 1081 1079 } 1080 1081 1082 1083 1082 1084 1083 1085 CmpPtr<ICmpObstruction> cmpObstruction(sim, ent); -
ps/trunk/source/simulation2/components/CCmpPosition.cpp
r24766 r25192 1 /* Copyright (C) 202 0Wildfire Games.1 /* Copyright (C) 202 Wildfire Games. 2 2 * This file is part of 0 A.D. 3 3 * … … 22 22 23 23 #include "simulation2/MessageTypes.h" 24 24 25 25 26 #include "ICmpTerrain.h" … … 229 230 serialize.NumberFixed_Unbounded("z", m_TurretPosition.Z); 230 231 } 232 231 233 } 232 234 … … 266 268 deserialize.NumberFixed_Unbounded("z", m_TurretPosition.Z); 267 269 } 270 268 271 269 272 if (m_InWorld) -
ps/trunk/source/simulation2/components/ICmpTurretHolder.cpp
r24542 r25192 41 41 for (entity_id_t entity : entities) 42 42 turrets.push_back(std::make_pair( 43 m_Script.Call<std::string>("GetOccupiedTurret Name", entity),43 m_Script.Call<std::string>("GetOccupiedTurretName", entity), 44 44 entity 45 45 ));
Note:
See TracChangeset
for help on using the changeset viewer.