Changeset 9319 for code/branches/presentation2012merge
- Timestamp:
- Jul 21, 2012, 3:34:45 PM (12 years ago)
- Location:
- code/branches/presentation2012merge
- Files:
-
- 2 deleted
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/presentation2012merge/data/levels/SurfaceRacePresentation.oxw
r9272 r9319 324 324 325 325 326 <PickupSpawner position="4000,8050,0" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8"> 327 <pickup> 328 <SpeedPickup template=smallspeedpickup /> 329 </pickup> 330 </PickupSpawner> 331 332 <PickupSpawner position="5500,8100,2000" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8"> 333 <pickup> 334 <SpeedPickup template=mediumspeedpickup /> 335 </pickup> 336 </PickupSpawner> 337 338 <PickupSpawner position="3000,8050,-4000" triggerDistance="40" respawnTime="60" maxSpawnedItems="5" scale="8"> 339 <pickup> 340 <ShrinkPickup template ="mediumshrinkpickup"/> 341 </pickup> 342 </PickupSpawner>> 326 <PickupSpawner pickup=smallspeedpickup position="4000,8050,0" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8" /> 327 <PickupSpawner pickup=mediumspeedpickup position="5500,8100,2000" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8" /> 328 <PickupSpawner pickup="mediumshrinkpickup" position="3000,8050,-4000" triggerDistance="40" respawnTime="60" maxSpawnedItems="5" scale="8" /> 343 329 344 330 -
code/branches/presentation2012merge/data/levels/lastManStanding.oxw
r9272 r9319 50 50 <Model position="0,0,0" scale=140 mesh="asteroid_UV.mesh" shadow=true /> 51 51 <Model position="-160,40,28.4" scale=1 mesh="sphere.mesh" /><!--EasterEgg indicator--> 52 <PickupSpawner position="-160,40,17" triggerDistance="20" respawnTime="5" maxSpawnedItems="15"><!--EasterEgg : invisible pickup is hidden inside the asteroid --> 53 <pickup> 54 <InvisiblePickup template=hugeinvisiblepickup /> 55 </pickup> 56 </PickupSpawner> 52 <PickupSpawner pickup=hugeinvisiblepickup position="-160,40,17" triggerDistance="20" respawnTime="5" maxSpawnedItems="15" /><!--EasterEgg : invisible pickup is hidden inside the asteroid --> 57 53 </attached> 58 54 </MovableEntity> -
code/branches/presentation2012merge/data/levels/lastTeamStanding.oxw
r9316 r9319 48 48 </StaticEntity> 49 49 50 <PickupSpawner position="-160,60,17" triggerDistance="20" respawnTime="5" maxSpawnedItems="10"><!--EasterEgg--> 51 <pickup> 52 <InvisiblePickup template=hugeinvisiblepickup /> 53 </pickup> 54 </PickupSpawner> 50 <PickupSpawner pickup=hugeinvisiblepickup position="-160,60,17" triggerDistance="20" respawnTime="5" maxSpawnedItems="10" /><!--EasterEgg--> 55 51 <StaticEntity position="-160,60,28.4"><!--EasterEgg-Indicator--> 56 52 <attached> -
code/branches/presentation2012merge/data/levels/missionOne.oxw
r9271 r9319 1153 1153 1154 1154 <!-- @Objects: Pickup - find better place !! --> 1155 <PickupSpawner position="-48650,700,100" triggerDistance="70" respawnTime="30" maxSpawnedItems="1"> 1156 <pickup> 1157 <ShieldPickup template=hugeshieldpickup /> 1158 </pickup> 1159 </PickupSpawner> 1155 <PickupSpawner pickup=hugeshieldpickup position="-48650,700,100" triggerDistance="70" respawnTime="30" maxSpawnedItems="1" /> 1160 1156 1161 1157 -
code/branches/presentation2012merge/data/levels/pickups.oxw
r9318 r9319 37 37 <!-- Shield pickups --> 38 38 39 <PickupSpawner position="-25,-25,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 40 <pickup> 41 <ShieldPickup template=smallshieldpickup /> 42 </pickup> 43 </PickupSpawner> 44 45 <PickupSpawner position="0,-25,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 46 <pickup> 47 <ShieldPickup template=mediumshieldpickup /> 48 </pickup> 49 </PickupSpawner> 50 51 <PickupSpawner position="25,-25,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 52 <pickup> 53 <ShieldPickup template=hugeshieldpickup /> 54 </pickup> 55 </PickupSpawner> 39 <PickupSpawner pickup=smallshieldpickup position="-25,-25,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 40 <PickupSpawner pickup=mediumshieldpickup position="0,-25,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 41 <PickupSpawner pickup=hugeshieldpickup position="25,-25,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 56 42 57 43 <!-- Health pickups --> 58 44 59 <PickupSpawner position="-25,0,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10"> 60 <pickup> 61 <HealthPickup template=smallhealthpickup /> 62 </pickup> 63 </PickupSpawner> 64 65 <PickupSpawner position="0,0,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10"> 66 <pickup> 67 <HealthPickup template=mediumhealthpickup /> 68 </pickup> 69 </PickupSpawner> 70 71 <PickupSpawner position="25,0,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10"> 72 <pickup> 73 <HealthPickup template=hugehealthpickup /> 74 </pickup> 75 </PickupSpawner> 76 77 <PickupSpawner position="50,0,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10"> 78 <pickup> 79 <HealthPickup template=crazyhealthpickup /> 80 </pickup> 81 </PickupSpawner> 45 <PickupSpawner pickup=smallhealthpickup position="-25,0,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 46 <PickupSpawner pickup=mediumhealthpickup position="0,0,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 47 <PickupSpawner pickup=hugehealthpickup position="25,0,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 48 <PickupSpawner pickup=crazyhealthpickup position="50,0,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 82 49 83 50 <!-- Speed pickups --> 84 51 85 <PickupSpawner position="-25,25,-125" triggerDistance="10" respawnTime="10" maxSpawnedItems="99"> 86 <pickup> 87 <SpeedPickup template=smallspeedpickup /> 88 </pickup> 89 </PickupSpawner> 90 91 <PickupSpawner position="0,25,-125" triggerDistance="10" respawnTime="10" maxSpawnedItems="99"> 92 <pickup> 93 <SpeedPickup template=mediumspeedpickup /> 94 </pickup> 95 </PickupSpawner> 96 97 <PickupSpawner position="25,25,-125" triggerDistance="10" respawnTime="10" maxSpawnedItems="99"> 98 <pickup> 99 <SpeedPickup template=hugespeedpickup /> 100 </pickup> 101 </PickupSpawner> 102 103 <PickupSpawner position="50,25,-125" triggerDistance="10" respawnTime="10" maxSpawnedItems="99"> 104 <pickup> 105 <SpeedPickup template=smalljumppickup /> 106 </pickup> 107 </PickupSpawner> 52 <PickupSpawner pickup=smallspeedpickup position="-25,25,-125" triggerDistance="10" respawnTime="10" maxSpawnedItems="99" /> 53 <PickupSpawner pickup=mediumspeedpickup position="0,25,-125" triggerDistance="10" respawnTime="10" maxSpawnedItems="99" /> 54 <PickupSpawner pickup=hugespeedpickup position="25,25,-125" triggerDistance="10" respawnTime="10" maxSpawnedItems="99" /> 55 <PickupSpawner pickup=smalljumppickup position="50,25,-125" triggerDistance="10" respawnTime="10" maxSpawnedItems="99" /> 108 56 109 57 <!-- Invisible pickups --> 110 58 111 <PickupSpawner position="-25,50,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 112 <pickup> 113 <InvisiblePickup template=smallinvisiblepickup /> 114 </pickup> 115 </PickupSpawner> 116 117 <PickupSpawner position="0,50,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 118 <pickup> 119 <InvisiblePickup template=mediuminvisiblepickup /> 120 </pickup> 121 </PickupSpawner> 122 123 <PickupSpawner position="25,50,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 124 <pickup> 125 <InvisiblePickup template=hugeinvisiblepickup /> 126 </pickup> 127 </PickupSpawner> 59 <PickupSpawner pickup=smallinvisiblepickup position="-25,50,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 60 <PickupSpawner pickup=mediuminvisiblepickup position="0,50,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 61 <PickupSpawner pickup=hugeinvisiblepickup position="25,50,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 128 62 129 63 <!-- Meta pickups --> 130 64 131 <PickupSpawner position="-25,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 132 <pickup> 133 <MetaPickup representation="use" metaType="use" /> 134 </pickup> 135 </PickupSpawner> 136 137 <PickupSpawner position="0,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 138 <pickup> 139 <MetaPickup representation="drop" metaType="drop" /> 140 </pickup> 141 </PickupSpawner> 142 143 <PickupSpawner position="25,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 144 <pickup> 145 <MetaPickup metaType="destroy" /> 146 </pickup> 147 </PickupSpawner> 148 149 <PickupSpawner position="50,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 150 <pickup> 151 <MetaPickup metaType="destroyCarrier" /> 152 </pickup> 153 </PickupSpawner> 65 <Template name=usemetapickup baseclass=MetaPickup> 66 <MetaPickup representation="use" metaType="use" /> 67 </Template> 68 69 <Template name=dropmetapickup baseclass=MetaPickup> 70 <MetaPickup representation="drop" metaType="drop" /> 71 </Template> 72 73 <Template name=destroymetapickup baseclass=MetaPickup> 74 <MetaPickup metaType="destroy" /> 75 </Template> 76 77 <Template name=destroycarriermetapickup baseclass=MetaPickup> 78 <MetaPickup metaType="destroyCarrier" /> 79 </Template> 80 81 <PickupSpawner pickup=usemetapickup position="-25,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 82 <PickupSpawner pickup=dropmetapickup position="0,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 83 <PickupSpawner pickup=destroymetapickup position="25,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 84 <PickupSpawner pickup=destroycarriermetapickup position="50,75,-125" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 154 85 155 86 <!-- Pickup Collection pickups --> 156 87 157 <PickupSpawner position="-50,25,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10"> 158 <pickup> 159 <PickupCollection template=triplehealthspeedinvisibilitypickup /> 160 </pickup> 161 </PickupSpawner> 88 <PickupSpawner pickup=triplehealthspeedinvisibilitypickup position="-50,25,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 162 89 163 90 <!-- Drone pickup --> 164 91 165 <PickupSpawner position="-50,50,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10"> 166 <pickup> 167 <DronePickup template=dronepickup /> 168 </pickup> 169 </PickupSpawner> 92 <PickupSpawner pickup=dronepickup position="-50,50,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 170 93 171 94 <!-- DamageBoost pickup --> 172 95 173 <PickupSpawner position="-50,75,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10"> 174 <pickup> 175 <DamageBoostPickup template=smalldamageboostpickup /> 176 </pickup> 177 </PickupSpawner> 178 179 <PickupSpawner position="-50,100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10"> 180 <pickup> 181 <DamageBoostPickup template=mediumdamageboostpickup /> 182 </pickup> 183 </PickupSpawner> 184 185 <PickupSpawner position="-50,125,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10"> 186 <pickup> 187 <DamageBoostPickup template=largedamageboostpickup /> 188 </pickup> 189 </PickupSpawner> 190 96 <PickupSpawner pickup=smalldamageboostpickup position="-50,75,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 97 <PickupSpawner pickup=mediumdamageboostpickup position="-50,100,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 98 <PickupSpawner pickup=largedamageboostpickup position="-50,125,-125" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 191 99 192 100 <!-- Other pickups --> … … 201 109 /> 202 110 203 < PickupSpawner position="-50,0,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5">204 < pickup>205 <HealthPickup representation="MediumHealth" health=500 activationType=immediate healthRate=10 durationType=continuous />206 </pickup>207 < /PickupSpawner>111 <Template name=continuoushealthpickup baseclass=HealthPickup> 112 <HealthPickup representation="MediumHealth" health=500 activationType=immediate healthRate=10 durationType=continuous /> 113 </Template> 114 115 <PickupSpawner pickup=continuoushealthpickup position="-50,0,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" /> 208 116 209 <PickupSpawner position="-25,-50,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5"> 210 <pickup> 211 <ShrinkPickup template ="smallshrinkpickup"/> 212 </pickup> 213 </PickupSpawner> 214 215 <PickupSpawner position="0,-50,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5"> 216 <pickup> 217 <ShrinkPickup template ="mediumshrinkpickup"/> 218 </pickup> 219 </PickupSpawner> 220 221 <PickupSpawner position="25,-50,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5"> 222 <pickup> 223 <ShrinkPickup template ="hugeshrinkpickup"/> 224 </pickup> 225 </PickupSpawner> 117 <PickupSpawner pickup="smallshrinkpickup" position="-25,-50,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" /> 118 <PickupSpawner pickup="mediumshrinkpickup" position="0,-50,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" /> 119 <PickupSpawner pickup="hugeshrinkpickup" position="25,-50,-125" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" /> 226 120 227 121 <!-- @Objects: 4 boxes (uncontrolled pawns) --> -
code/branches/presentation2012merge/data/levels/portals.oxw
r9316 r9319 39 39 <PortalLink fromID="2" toID="1" /> 40 40 41 <!--PickupSpawner position="-200,0,0" triggerDistance="10" respawnTime="10" maxSpawnedItems="10"> 42 <pickup> 43 <DronePickup template=dronepickup /> 44 </pickup> 45 </PickupSpawner--> 41 <!--PickupSpawner pickup=dronepickup position="-200,0,0" triggerDistance="10" respawnTime="10" maxSpawnedItems="10" /--> 46 42 47 43 <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" /> -
code/branches/presentation2012merge/data/levels/presentation09b.oxw
r9318 r9319 94 94 </SpaceShip> 95 95 96 <PickupSpawner position="-3800, 2500, 1500" respawnTime="60" triggerDistance="20" maxSpawnedItems="5"> 97 <pickup> 98 <SpeedPickup template=smalljumppickup /> 99 </pickup> 100 </PickupSpawner> 96 <PickupSpawner pickup=smalljumppickup position="-3800, 2500, 1500" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" /> 101 97 102 98 <!-- PickupRepresentation for the pickup below, since it is not a standard pickup provided by pickups.oxi --> … … 109 105 /> 110 106 111 <PickupSpawner position="-4150,2750,1550" respawnTime="60" triggerDistance="20" maxSpawnedItems="5"> 112 <pickup> 113 <HealthPickup representation="MediumHealth" health=100 activationType=onUse durationType=once /> 114 </pickup> 115 </PickupSpawner> 116 117 <PickupSpawner position="2300, 4300, 2400" respawnTime="5" triggerDistance="20"> 118 <pickup> 119 <HealthPickup template=mediumhealthpickup /> 120 </pickup> 121 </PickupSpawner> 107 <Template name=onusehealthpickup baseclass=HealthPickup> 108 <HealthPickup representation="MediumHealth" health=100 activationType=onUse durationType=once /> 109 </Template> 110 111 <PickupSpawner pickup=onusehealthpickup position="-4150,2750,1550" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" /> 112 113 <PickupSpawner pickup=mediumhealthpickup position="2300, 4300, 2400" respawnTime="5" triggerDistance="20" /> 122 114 123 115 <Billboard position="-2500, 2400, 1500" material="Examples/Flare" /> -
code/branches/presentation2012merge/data/levels/presentationFS10.oxw
r9318 r9319 102 102 <?lua end ?> 103 103 104 <PickupSpawner position="500,-50,-500" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 105 <pickup> 106 <DronePickup template=dronepickup /> 107 </pickup> 108 </PickupSpawner> 104 <PickupSpawner pickup=dronepickup position="500,-50,-500" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 109 105 110 106 <!-- Shield pickups --> 111 107 112 <PickupSpawner position="-25,-50,-500" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 113 <pickup> 114 <ShieldPickup template=hugeshieldpickup /> 115 </pickup> 116 </PickupSpawner> 108 <PickupSpawner pickup=hugeshieldpickup position="-25,-50,-500" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 117 109 118 110 <!-- Health pickups --> 119 111 120 <PickupSpawner position="0,-75,-500" triggerDistance="10" respawnTime="30" maxSpawnedItems="10"> 121 <pickup> 122 <HealthPickup template=hugehealthpickup /> 123 </pickup> 124 </PickupSpawner> 112 <PickupSpawner pickup=hugehealthpickup position="0,-75,-500" triggerDistance="10" respawnTime="30" maxSpawnedItems="10" /> 125 113 126 114 <!-- Speed pickups --> 127 115 128 <PickupSpawner position="25,-50,-500" triggerDistance="10" respawnTime="10" maxSpawnedItems="99"> 129 <pickup> 130 <SpeedPickup template=hugespeedpickup /> 131 </pickup> 132 </PickupSpawner> 133 134 <PickupSpawner position="50,-50,-500" triggerDistance="10" respawnTime="10" maxSpawnedItems="99"> 135 <pickup> 136 <SpeedPickup template=smalljumppickup /> 137 </pickup> 138 </PickupSpawner> 116 <PickupSpawner pickup=hugespeedpickup position="25,-50,-500" triggerDistance="10" respawnTime="10" maxSpawnedItems="99" /> 117 <PickupSpawner pickup=smalljumppickup position="50,-50,-500" triggerDistance="10" respawnTime="10" maxSpawnedItems="99" /> 139 118 140 119 <!-- Invisible pickups --> 141 120 142 <PickupSpawner position="0,-50,-500" triggerDistance="10" respawnTime="5" maxSpawnedItems="10"> 143 <pickup> 144 <InvisiblePickup template=hugeinvisiblepickup /> 145 </pickup> 146 </PickupSpawner> 121 <PickupSpawner pickup=hugeinvisiblepickup position="0,-50,-500" triggerDistance="10" respawnTime="5" maxSpawnedItems="10" /> 147 122 148 123 <!-- PickupRepresentation for the pickup below, since it is not a standard pickup provided by pickups.oxi --> … … 155 130 /> 156 131 157 < PickupSpawner position="25,-75,-500" respawnTime="60" triggerDistance="20" maxSpawnedItems="5">158 < pickup>159 <HealthPickup representation="MediumHealth" health=50 activationType=onUse durationType=once />160 </pickup> 161 < /PickupSpawner>132 <Template name=onusehealthpickup baseclass=HealthPickup> 133 <HealthPickup representation="MediumHealth" health=50 activationType=onUse durationType=once /> 134 </Template> 135 136 <PickupSpawner pickup=onusehealthpickup position="25,-75,-500" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" /> 162 137 163 138 </Scene> -
code/branches/presentation2012merge/data/levels/presentationFS11.oxw
r9016 r9319 422 422 </SimpleNotification> 423 423 424 <PickupSpawner position="-72487,420,-63" respawnTime="10" triggerDistance="20" maxSpawnedItems="5" active="false"> 425 <pickup> 426 <ShrinkPickup template ="smallshrinkpickup"/> 427 </pickup> 424 <PickupSpawner pickup="smallshrinkpickup" position="-72487,420,-63" respawnTime="10" triggerDistance="20" maxSpawnedItems="5" active="false"> 428 425 <events> 429 426 <activity> -
code/branches/presentation2012merge/data/levels/presentationHS09.oxw
r9318 r9319 97 97 <Billboard material="Test/Fog" position="-3800, 2500, 1500" alpha="0.1" color="1, 1, 1, 0.1" scale="0.5" /> 98 98 99 <PickupSpawner position="-3800, 2500, 1500" respawnTime="60" triggerDistance="20" maxSpawnedItems="5"> 100 <pickup> 101 <SpeedPickup template=smalljumppickup /> 102 </pickup> 103 </PickupSpawner> 99 <PickupSpawner pickup=smalljumppickup position="-3800, 2500, 1500" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" /> 104 100 105 101 <!-- PickupRepresentation for the pickup below, since it is not a standard pickup provided by pickups.oxi --> … … 112 108 /> 113 109 114 <PickupSpawner position="-4150,2750,1550" respawnTime="60" triggerDistance="20" maxSpawnedItems="5"> 115 <pickup> 116 <HealthPickup representation="MediumHealth" health=100 activationType=onUse durationType=once /> 117 </pickup> 118 </PickupSpawner> 119 120 <PickupSpawner position="2300, 4300, 2400" respawnTime="5" triggerDistance="20"> 121 <pickup> 122 <HealthPickup template=mediumhealthpickup /> 123 </pickup> 124 </PickupSpawner> 110 <Template name=onusehealthpickup baseclass=HealthPickup> 111 <HealthPickup representation="MediumHealth" health=100 activationType=onUse durationType=once /> 112 </Template> 113 114 <PickupSpawner pickup=onusehealthpickup position="-4150,2750,1550" respawnTime="60" triggerDistance="20" maxSpawnedItems="5" /> 115 116 <PickupSpawner pickup=mediumhealthpickup position="2300, 4300, 2400" respawnTime="5" triggerDistance="20" /> 125 117 126 118 <Billboard position="-2500, 2400, 1500" material="Examples/Flare" /> -
code/branches/presentation2012merge/data/levels/surfaceRace.oxw
r9301 r9319 399 399 400 400 401 <PickupSpawner position="4000,8050,0" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8"> 402 <pickup> 403 <SpeedPickup template=smallspeedpickup /> 404 </pickup> 405 </PickupSpawner> 406 407 <PickupSpawner position="5500,8100,2000" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8"> 408 <pickup> 409 <SpeedPickup template=mediumspeedpickup /> 410 </pickup> 411 </PickupSpawner> 412 413 <PickupSpawner position="3000,8050,-4000" triggerDistance="40" respawnTime="60" maxSpawnedItems="5" scale="8"> 414 <pickup> 415 <ShrinkPickup template ="mediumshrinkpickup"/> 416 </pickup> 417 </PickupSpawner>> 401 <PickupSpawner pickup=smallspeedpickup position="4000,8050,0" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8" /> 402 <PickupSpawner pickup=mediumspeedpickup position="5500,8100,2000" triggerDistance="40" respawnTime="10" maxSpawnedItems="99" scale="8" /> 403 <PickupSpawner pickup="mediumshrinkpickup" position="3000,8050,-4000" triggerDistance="40" respawnTime="60" maxSpawnedItems="5" scale="8" /> 418 404 419 405 -
code/branches/presentation2012merge/data/levels/templates/pickupRepresentationTemplates.oxt
r9318 r9319 17 17 </Template> 18 18 19 <Template name=smallshieldpickup >19 <Template name=smallshieldpickup baseclass=ShieldPickup> 20 20 <ShieldPickup 21 21 representation = "smallshieldpickup" … … 44 44 </Template> 45 45 46 <Template name=mediumshieldpickup >46 <Template name=mediumshieldpickup baseclass=ShieldPickup> 47 47 <ShieldPickup 48 48 representation = "mediumshieldpickup" … … 72 72 </Template> 73 73 74 <Template name=hugeshieldpickup >74 <Template name=hugeshieldpickup baseclass=ShieldPickup> 75 75 <ShieldPickup 76 76 representation = "hugeshieldpickup" … … 101 101 </Template> 102 102 103 <Template name=smallhealthpickup >103 <Template name=smallhealthpickup baseclass=HealthPickup> 104 104 <HealthPickup 105 105 representation = "smallhealthpickup" … … 127 127 </Template> 128 128 129 <Template name=mediumhealthpickup >129 <Template name=mediumhealthpickup baseclass=HealthPickup> 130 130 <HealthPickup 131 131 representation = "mediumhealthpickup" … … 153 153 </Template> 154 154 155 <Template name=hugehealthpickup >155 <Template name=hugehealthpickup baseclass=HealthPickup> 156 156 <HealthPickup 157 157 representation = "hugehealthpickup" … … 179 179 </Template> 180 180 181 <Template name=crazyhealthpickup >181 <Template name=crazyhealthpickup baseclass=HealthPickup> 182 182 <HealthPickup 183 183 representation = "crazyhealthpickup" … … 241 241 </Template> 242 242 243 <Template name=smalldamageboostpickup >243 <Template name=smalldamageboostpickup baseclass=DamageBoostPickup> 244 244 <DamageBoostPickup 245 245 representation = "smalldamageboostpickup" … … 267 267 </Template> 268 268 269 <Template name=mediumdamageboostpickup >269 <Template name=mediumdamageboostpickup baseclass=DamageBoostPickup> 270 270 <DamageBoostPickup 271 271 representation = "mediumdamageboostpickup" … … 293 293 </Template> 294 294 295 <Template name=largedamageboostpickup >295 <Template name=largedamageboostpickup baseclass=DamageBoostPickup> 296 296 <DamageBoostPickup 297 297 representation = "largedamageboostpickup" … … 322 322 </Template> 323 323 324 <Template name=smallspeedpickup >324 <Template name=smallspeedpickup baseclass=SpeedPickup> 325 325 <SpeedPickup 326 326 representation = "smallspeedpickup" … … 349 349 </Template> 350 350 351 <Template name=mediumspeedpickup >351 <Template name=mediumspeedpickup baseclass=SpeedPickup> 352 352 <SpeedPickup 353 353 representation = "mediumspeedpickup" … … 376 376 </Template> 377 377 378 <Template name=hugespeedpickup >378 <Template name=hugespeedpickup baseclass=SpeedPickup> 379 379 <SpeedPickup 380 380 representation = "hugespeedpickup" … … 403 403 </Template> 404 404 405 <Template name=smalljumppickup >405 <Template name=smalljumppickup baseclass=SpeedPickup> 406 406 <SpeedPickup 407 407 representation = "smalljumppickup" … … 432 432 </Template> 433 433 434 <Template name=smallinvisiblepickup >434 <Template name=smallinvisiblepickup baseclass=InvisiblePickup> 435 435 <InvisiblePickup 436 436 representation = "smallinvisiblepickup" … … 457 457 </Template> 458 458 459 <Template name=mediuminvisiblepickup >459 <Template name=mediuminvisiblepickup baseclass=InvisiblePickup> 460 460 <InvisiblePickup 461 461 representation = "mediuminvisiblepickup" … … 482 482 </Template> 483 483 484 <Template name=hugeinvisiblepickup >484 <Template name=hugeinvisiblepickup baseclass=InvisiblePickup> 485 485 <InvisiblePickup 486 486 representation = "hugeinvisiblepickup" … … 507 507 </Template> 508 508 509 <Template name=smallshrinkpickup >509 <Template name=smallshrinkpickup baseclass=ShrinkPickup> 510 510 <ShrinkPickup 511 511 representation = "smallshrinkpickup" … … 533 533 </Template> 534 534 535 <Template name=mediumshrinkpickup >535 <Template name=mediumshrinkpickup baseclass=ShrinkPickup> 536 536 <ShrinkPickup 537 537 representation = "mediumshrinkpickup" … … 559 559 </Template> 560 560 561 <Template name=hugeshrinkpickup >561 <Template name=hugeshrinkpickup baseclass=ShrinkPickup> 562 562 <ShrinkPickup 563 563 representation = "hugeshrinkpickup" … … 589 589 </Template> 590 590 591 <Template name=triplehealthspeedinvisibilitypickup >591 <Template name=triplehealthspeedinvisibilitypickup baseclass=PickupCollection> 592 592 <PickupCollection 593 593 representation = "triplehealthspeedinvisibilitypickup" … … 651 651 </Template> 652 652 653 <Template name=dronepickup >653 <Template name=dronepickup baseclass=DronePickup> 654 654 <DronePickup representation=dronepickup droneTemplate=droneTemplate /> 655 655 </Template> -
code/branches/presentation2012merge/src/modules/pickup/CMakeLists.txt
r9318 r9319 1 1 SET_SOURCE_FILES(PICKUP_SRC_FILES 2 2 CollectiblePickup.cc 3 DroppedPickup.cc4 3 Pickup.cc 5 4 PickupCollection.cc -
code/branches/presentation2012merge/src/modules/pickup/Pickup.cc
r9318 r9319 37 37 #include "util/StringUtils.h" 38 38 39 #include " DroppedPickup.h"39 #include "PickupSpawner.h" 40 40 41 41 namespace orxonox … … 201 201 @brief 202 202 Facilitates the creation of a PickupSpawner upon dropping of the Pickupable. 203 This method must be implemented by any class directly inheriting from Pickupable. It is most easily done by just creating a new DroppedPickup, e.g.:204 DroppedPickup(BaseObject* creator, Pickupable* pickup, const Vector3& position);205 203 @return 206 204 Returns true if a spawner was created, false if not. … … 208 206 bool Pickup::createSpawner(void) 209 207 { 210 newDroppedPickup(this, this, this->getCarrier());208 PickupSpawner::createDroppedPickup(this, this, this->getCarrier()); 211 209 return true; 212 210 } -
code/branches/presentation2012merge/src/modules/pickup/PickupCollection.cc
r9318 r9319 38 38 39 39 #include "CollectiblePickup.h" 40 #include " DroppedPickup.h"40 #include "PickupSpawner.h" 41 41 42 42 #include "PickupCollection.h" … … 348 348 @brief 349 349 Facilitates the creation of a PickupSpawner upon dropping of the Pickupable. 350 This method must be implemented by any class directly inheriting from Pickupable. It is most easily done by just creating a new DroppedPickup, e.g.:351 DroppedPickup(BaseObject* creator, Pickupable* pickup, const Vector3& position);352 350 @return 353 351 Returns true if a spawner was created, false if not. … … 355 353 bool PickupCollection::createSpawner(void) 356 354 { 357 newDroppedPickup(this, this, this->getCarrier());355 PickupSpawner::createDroppedPickup(this, this, this->getCarrier()); 358 356 return true; 359 357 } -
code/branches/presentation2012merge/src/modules/pickup/PickupPrereqs.h
r9318 r9319 70 70 71 71 class CollectiblePickup; 72 class DroppedPickup;73 72 class Pickup; 74 73 class PickupCollection; -
code/branches/presentation2012merge/src/modules/pickup/PickupSpawner.cc
r9318 r9319 55 55 Pointer to the object which created this item. 56 56 */ 57 PickupSpawner::PickupSpawner(BaseObject* creator) : StaticEntity(creator), pickup_(NULL) 57 PickupSpawner::PickupSpawner(BaseObject* creator) : StaticEntity(creator), pickup_(NULL), representation_(NULL), pickupTemplate_(NULL) 58 58 { 59 59 RegisterObject(PickupSpawner); 60 60 61 61 this->initialize(); 62 }63 64 /**65 @brief66 Constructor, Creates a fully functional PickupSpawner.67 @param creator68 The creator of this PickupSpawner.69 @param pickup70 The Pickupable to be spawned by this PickupSpawner.71 @param triggerDistance72 The distance at which the PickupSpawner will trigger.73 @param respawnTime74 The minimum time between two spawns.75 @param maxSpawnedItems76 The maximum number of items spawned by this PickupSpawner.77 */78 PickupSpawner::PickupSpawner(BaseObject* creator, Pickupable* pickup, float triggerDistance, float respawnTime, int maxSpawnedItems) : StaticEntity(creator), pickup_(NULL)79 {80 RegisterObject(PickupSpawner);81 82 this->initialize();83 84 this->pickup_ = pickup;85 86 this->triggerDistance_ = triggerDistance;87 this->respawnTime_ = respawnTime;88 this->setMaxSpawnedItems(maxSpawnedItems);89 90 if(this->pickup_ == NULL)91 {92 orxout(internal_warning, context::pickups) << "A PickupSpawner was created without a valid Pickupable. This won't work." << endl;93 this->setActive(false);94 }95 else96 {97 PickupRepresentation* representation = PickupManager::getInstance().getRepresentation(this->pickup_->getRepresentationName());98 this->attach(representation->createSpawnerRepresentation(this));99 this->setActive(true);100 }101 62 } 102 63 … … 112 73 this->spawnsRemaining_ = INF; 113 74 this->selfDestruct_ = false; 75 76 this->setPickupable(NULL); 114 77 } 115 78 … … 122 85 if(this->isInitialized() && this->selfDestruct_ && this->pickup_ != NULL) 123 86 this->pickup_->destroy(); 87 } 88 89 /** 90 @brief 91 Factory method, Creates a fully functional PickupSpawner. 92 @param creator 93 The creator of this PickupSpawner. 94 @param pickup 95 The Pickupable to be spawned by this PickupSpawner. 96 @param carrier 97 The PickupCarrier that carried the input pickup before it was dropped. 98 @param triggerDistance 99 The distance at which the PickupSpawner will trigger. 100 */ 101 /*static*/ PickupSpawner* PickupSpawner::createDroppedPickup(BaseObject* creator, Pickupable* pickup, PickupCarrier* carrier, float triggerDistance) 102 { 103 PickupSpawner* spawner = new PickupSpawner(creator); 104 105 spawner->setPickupable(pickup); 106 spawner->setTriggerDistance(triggerDistance); 107 spawner->setMaxSpawnedItems(1); 108 109 spawner->setPosition(carrier->getCarrierPosition()); 110 spawner->block(carrier); 111 112 return spawner; 124 113 } 125 114 … … 136 125 SUPER(PickupSpawner, XMLPort, xmlelement, mode); 137 126 138 XMLPortObject(PickupSpawner, Pickupable, "pickup", setPickupable, getPickupable, xmlelement, mode); 139 127 XMLPortParam(PickupSpawner, "pickup", setPickupTemplateName, getPickupTemplateName, xmlelement, mode); 140 128 XMLPortParam(PickupSpawner, "triggerDistance", setTriggerDistance, getTriggerDistance, xmlelement, mode); 141 129 XMLPortParam(PickupSpawner, "respawnTime", setRespawnTime, getRespawnTime, xmlelement, mode); 142 130 XMLPortParam(PickupSpawner, "maxSpawnedItems", setMaxSpawnedItems, getMaxSpawnedItems, xmlelement, mode); 143 144 if(this->pickup_ == NULL)145 {146 orxout(internal_warning, context::pickups) << "A PickupSpawner was created without a valid Pickupable. This won't work." << endl;147 this->setActive(false);148 }149 else150 {151 PickupRepresentation* representation = PickupManager::getInstance().getRepresentation(this->pickup_->getRepresentationName());152 this->attach(representation->createSpawnerRepresentation(this));153 this->setActive(true);154 }155 }156 157 /**158 @brief159 Invoked when the activity has changed. Sets visibility of attached objects.160 */161 void PickupSpawner::changedActivity()162 {163 SUPER(PickupSpawner, changedActivity);164 165 if(GameMode::isMaster())166 this->setVisible(this->isActive());167 131 } 168 132 … … 199 163 200 164 Vector3 distance = it->getWorldPosition() - this->getWorldPosition(); 201 PickupCarrier* carrier = orxonox_cast<PickupCarrier*>(*it);165 PickupCarrier* carrier = static_cast<PickupCarrier*>(*it); 202 166 // If a PickupCarrier, that fits the target-range of the Pickupable spawned by this PickupSpawner, is in trigger-distance and the carrier is not blocked. 203 167 if(distance.length() < this->triggerDistance_ && carrier != NULL && this->blocked_.find(carrier) == this->blocked_.end()) … … 212 176 /** 213 177 @brief 178 Trigger the PickupSpawner. 179 Adds the pickup to the Pawn that triggered, sets the timer to re-activate and deactives the PickupSpawner. 180 @param carrier 181 Carrier which triggered the PickupSpawner. 182 */ 183 void PickupSpawner::trigger(PickupCarrier* carrier) 184 { 185 orxout(verbose, context::pickups) << "PickupSpawner (&" << this << ") triggered and active." << endl; 186 187 PickupCarrier* target = carrier->getTarget(this->pickup_); 188 189 this->block(carrier); 190 191 assert(target); 192 bool pickedUp = this->pickup_->pickup(target); 193 assert(pickedUp); 194 pickedUp = false; // To avoid compiler warning. 195 196 this->setPickupable(NULL); 197 this->decrementSpawnsRemaining(); 198 } 199 200 void PickupSpawner::setPickupTemplateName(const std::string& name) 201 { 202 Template* temp = Template::getTemplate(name); 203 if (temp) 204 this->setPickupTemplate(temp); 205 } 206 207 void PickupSpawner::setPickupTemplate(Template* temp) 208 { 209 this->pickupTemplate_ = temp; 210 this->pickupTemplateName_ = temp->getName(); 211 212 this->setPickupable(this->createPickup()); 213 } 214 215 /** 216 @brief 214 217 Sets the maximum number of spawned items. 215 218 @param items … … 233 236 this->spawnsRemaining_--; 234 237 238 this->setActive(false); 239 235 240 if(this->spawnsRemaining_ != 0 && this->respawnTime_ > 0) 236 241 { 237 242 this->startRespawnTimer(); 238 239 this->setActive(false);240 243 this->fireEvent(); 241 244 } … … 243 246 { 244 247 orxout(verbose, context::pickups) << "PickupSpawner (&" << this << ") empty, selfdestruct initialized." << endl; 245 this->setActive(false);246 248 this->destroy(); 247 249 } … … 255 257 { 256 258 this->respawnTimer_.setTimer(this->respawnTime_, false, createExecutor(createFunctor(&PickupSpawner::respawnTimerCallback, this))); 259 } 260 261 /** 262 @brief 263 Invoked by the timer, re-activates the PickupSpawner. 264 */ 265 void PickupSpawner::respawnTimerCallback() 266 { 267 orxout(verbose, context::pickups) << "PickupSpawner (&" << this << ") reactivated." << endl; 268 269 this->setPickupable(this->createPickup()); 270 } 271 272 /** 273 @brief 274 Creates a new Pickupable. 275 @return 276 The Pickupable created. 277 */ 278 Pickupable* PickupSpawner::createPickup(void) 279 { 280 if(this->spawnsRemaining_ == 0) 281 { 282 orxout(internal_error, context::pickups) << "Massive Error: PickupSpawner still alive until having spawned last item." << endl; 283 return NULL; 284 } 285 286 if (this->pickupTemplate_ != NULL) 287 { 288 Identifier* identifier = this->pickupTemplate_->getBaseclassIdentifier(); 289 if (identifier != NULL) 290 { 291 Pickupable* pickup = orxonox_cast<Pickupable*>(identifier->fabricate(this)); 292 orxonox_cast<BaseObject*>(pickup)->addTemplate(this->pickupTemplate_); 293 return pickup; 294 } 295 else 296 orxout(internal_error, context::pickups) << "No base class defined in pickup-template " << this->pickupTemplateName_ << endl; 297 } 298 299 return NULL; 257 300 } 258 301 … … 265 308 void PickupSpawner::setPickupable(Pickupable* pickup) 266 309 { 267 if(this->pickup_ != NULL) 268 { 269 orxout(internal_error, context::pickups) << "In PickupSpawner (&" << this << "): setPickupable called, with this->pickup_ already set." << endl; 270 return; 271 } 272 if(pickup == NULL) 273 { 274 orxout(internal_error, context::pickups) << "In PickupSpawner (&" << this << "): Argument of setPickupable is NULL." << endl; 275 return; 310 if (this->representation_ != NULL) 311 { 312 this->representation_->destroy(); 313 this->representation_ = NULL; 314 } 315 316 if (pickup != NULL) 317 { 318 if (this->pickup_ != NULL) 319 this->pickup_->destroy(); 320 321 PickupRepresentation* representation = PickupManager::getInstance().getRepresentation(pickup->getRepresentationName()); 322 this->representation_ = representation->createSpawnerRepresentation(this); 323 this->attach(this->representation_); 324 this->setActive(true); 325 } 326 else 327 { 328 this->setActive(false); 276 329 } 277 330 278 331 this->pickup_ = pickup; 279 332 } 280 281 /**282 @brief283 Get the Pickupable that is spawned by this PickupSpawner.284 @return285 Returns the Pickupable that is spawned by this PickupSpawner.286 */287 const Pickupable* PickupSpawner::getPickupable(void) const288 {289 return this->pickup_;290 }291 292 /**293 @brief294 Trigger the PickupSpawner.295 Adds the pickup to the Pawn that triggered, sets the timer to re-activate and deactives the PickupSpawner.296 @param pawn297 Pawn which triggered the PickupSpawner.298 */299 void PickupSpawner::trigger(Pawn* pawn)300 {301 if(this->isActive()) // Checks whether PickupSpawner is active.302 {303 orxout(verbose, context::pickups) << "PickupSpawner (&" << this << ") triggered and active." << endl;304 305 PickupCarrier* carrier = orxonox_cast<PickupCarrier*>(pawn);306 assert(carrier);307 308 // If the Pawn isn't a target of the Pickupable.309 if(!carrier->isTarget(this->pickup_))310 {311 orxout(verbose, context::pickups) << "PickupSpawner (&" << this << ") triggered but Pawn wasn't a target of the Pickupable." << endl;312 return;313 }314 315 PickupCarrier* target = carrier->getTarget(this->pickup_);316 Pickupable* pickup = this->getPickup();317 318 this->block(carrier);319 320 assert(pickup);321 assert(target);322 bool pickedUp = pickup->pickup(target);323 assert(pickedUp);324 pickedUp = false; // To avoid compiler warning.325 326 this->decrementSpawnsRemaining();327 }328 }329 330 /**331 @brief332 Creates a new Pickupable.333 @return334 The Pickupable created.335 */336 Pickupable* PickupSpawner::getPickup(void)337 {338 if(this->spawnsRemaining_ == 0)339 {340 orxout(internal_error, context::pickups) << "Massive Error: PickupSpawner still alive until having spawned last item." << endl;341 return NULL;342 }343 344 Pickupable* pickup = this->pickup_->clone();345 return pickup;346 }347 348 /**349 @brief350 Invoked by the timer, re-activates the PickupSpawner.351 */352 void PickupSpawner::respawnTimerCallback()353 {354 orxout(verbose, context::pickups) << "PickupSpawner (&" << this << ") reactivated." << endl;355 356 this->setActive(true);357 }358 333 } -
code/branches/presentation2012merge/src/modules/pickup/PickupSpawner.h
r7549 r9319 78 78 public: 79 79 PickupSpawner(BaseObject* creator); //!< Default Constructor. 80 PickupSpawner(BaseObject* creator, Pickupable* pickup, float triggerDistance, float respawnTime, int maxSpawnedItems); //!< Constructor.81 80 virtual ~PickupSpawner(); //!< Destructor. 82 81 82 static PickupSpawner* createDroppedPickup(BaseObject* creator, Pickupable* pickup, PickupCarrier* carrier, float triggerDistance = 10.0); 83 83 84 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a PickupSpawner through XML. 84 virtual void changedActivity(); //!< Invoked when activity has changed (set visibilty).85 85 virtual void tick(float dt); //!< Tick, checks if any Pawn is close enough to trigger. 86 86 … … 103 103 inline int getMaxSpawnedItems(void) const 104 104 { return this->maxSpawnedItems_; } 105 /** 106 @brief Returns the name of the template which is used to create a pickup for this spawner. 107 */ 108 inline const std::string& getPickupTemplateName() const 109 { return this->pickupTemplateName_; } 110 /** 111 @brief Returns the template which is used to create a pickup for this spawner. 112 */ 113 inline Template* getPickupTemplate() const 114 {return this->pickupTemplate_; } 105 115 106 protected: 116 private: 117 void initialize(void); 118 119 void trigger(PickupCarrier* carrier); //!< Method called when a carrier is close enough. 120 void respawnTimerCallback(); //!< Method called when the timer runs out. 121 107 122 void decrementSpawnsRemaining(void); //!< Decrements the number of remaining spawns. 108 123 void startRespawnTimer(void); //!< Invoked by the timer, re-activates the PickupSpawner. … … 128 143 inline void setRespawnTime(float time) 129 144 { this->respawnTime_ = time; } 145 130 146 void setMaxSpawnedItems(int items); //!< Sets the maximum number of spawned items. 131 147 132 virtual Pickupable* getPickup(void); //!< Creates a new Pickupable. 148 void setPickupTemplateName(const std::string& name); 149 void setPickupTemplate(Template* temp); 133 150 151 Pickupable* createPickup(void); //!< Creates a new Pickupable. 134 152 void setPickupable(Pickupable* pickup); //!< Sets a Pickupable for the PickupSpawner to spawn. 135 const Pickupable* getPickupable(void) const; //!< Get the Pickupable that is spawned by this PickupSpawner.136 153 137 154 Pickupable* pickup_; //!< The pickup to be spawned. 138 139 private: 140 void initialize(void); 141 142 void trigger(Pawn* pawn); //!< Method called when a Pawn is close enough. 143 void respawnTimerCallback(); //!< Method called when the timer runs out. 155 StaticEntity* representation_; //!< The active representation of the spawner. 156 std::string pickupTemplateName_; //!< The name of the pickup template. 157 Template* pickupTemplate_; //!< The template to be used to create a pickupable. 144 158 145 159 int maxSpawnedItems_; //!< Maximum number of items spawned by this PickupSpawner. -
code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.h
r9318 r9319 171 171 /** 172 172 @brief Facilitates the creation of a PickupSpawner upon dropping of the Pickupable. 173 This method must be implemented by any class directly inheriting from Pickupable. It is most easily done by just creating a new DroppedPickup, e.g.: 174 DroppedPickup(BaseObject* creator, Pickupable* pickup, PickupCarrier* carrier, float triggerDistance); 173 This method must be implemented by any class directly inheriting from Pickupable. 175 174 @return Returns true if a spawner was created, false if not. 176 175 */
Note: See TracChangeset
for help on using the changeset viewer.