[Orxonox-commit 3887] r8561 - in code/branches/presentation: . data/gui/layouts data/gui/scripts data/levels src/modules src/modules/docking src/modules/objects/triggers src/orxonox/controllers src/orxonox/infos
dafrick at orxonox.net
dafrick at orxonox.net
Tue May 24 16:44:40 CEST 2011
Author: dafrick
Date: 2011-05-24 16:44:39 +0200 (Tue, 24 May 2011)
New Revision: 8561
Added:
code/branches/presentation/data/gui/layouts/DockingDialog.layout
code/branches/presentation/data/gui/scripts/DockingDialog.lua
code/branches/presentation/data/levels/docking.oxw
code/branches/presentation/src/modules/docking/
code/branches/presentation/src/modules/docking/CMakeLists.txt
code/branches/presentation/src/modules/docking/Dock.cc
code/branches/presentation/src/modules/docking/Dock.h
code/branches/presentation/src/modules/docking/DockToShip.cc
code/branches/presentation/src/modules/docking/DockToShip.h
code/branches/presentation/src/modules/docking/DockingAnimation.cc
code/branches/presentation/src/modules/docking/DockingAnimation.h
code/branches/presentation/src/modules/docking/DockingController.cc
code/branches/presentation/src/modules/docking/DockingController.h
code/branches/presentation/src/modules/docking/DockingEffect.cc
code/branches/presentation/src/modules/docking/DockingEffect.h
code/branches/presentation/src/modules/docking/DockingPrecompiledHeaders.h
code/branches/presentation/src/modules/docking/DockingPrereqs.h
code/branches/presentation/src/modules/docking/DockingTarget.cc
code/branches/presentation/src/modules/docking/DockingTarget.h
code/branches/presentation/src/modules/docking/MoveToDockingTarget.cc
code/branches/presentation/src/modules/docking/MoveToDockingTarget.h
Removed:
code/branches/presentation/src/modules/docking/CMakeLists.txt
code/branches/presentation/src/modules/docking/Dock.cc
code/branches/presentation/src/modules/docking/Dock.h
code/branches/presentation/src/modules/docking/DockToShip.cc
code/branches/presentation/src/modules/docking/DockToShip.h
code/branches/presentation/src/modules/docking/DockingAnimation.cc
code/branches/presentation/src/modules/docking/DockingAnimation.h
code/branches/presentation/src/modules/docking/DockingController.cc
code/branches/presentation/src/modules/docking/DockingController.h
code/branches/presentation/src/modules/docking/DockingEffect.cc
code/branches/presentation/src/modules/docking/DockingEffect.h
code/branches/presentation/src/modules/docking/DockingPrecompiledHeaders.h
code/branches/presentation/src/modules/docking/DockingPrereqs.h
code/branches/presentation/src/modules/docking/DockingTarget.cc
code/branches/presentation/src/modules/docking/DockingTarget.h
code/branches/presentation/src/modules/docking/MoveToDockingTarget.cc
code/branches/presentation/src/modules/docking/MoveToDockingTarget.h
Modified:
code/branches/presentation/
code/branches/presentation/src/modules/CMakeLists.txt
code/branches/presentation/src/modules/objects/triggers/MultiTrigger.cc
code/branches/presentation/src/orxonox/controllers/ArtificialController.cc
code/branches/presentation/src/orxonox/controllers/ArtificialController.h
code/branches/presentation/src/orxonox/infos/PlayerInfo.cc
code/branches/presentation/src/orxonox/infos/PlayerInfo.h
Log:
Merging dockingsystem2 branch to presentation branch.
Property changes on: code/branches/presentation
___________________________________________________________________
Modified: svn:mergeinfo
- /code/branches/ai:6592-7033
/code/branches/buildsystem:1874-2276,2278-2400
/code/branches/buildsystem2:2506-2658
/code/branches/buildsystem3:2662-2708
/code/branches/ceguilua:1802-1808
/code/branches/chat:6527-6797
/code/branches/chat2:6836-6910
/code/branches/console:5941-6104
/code/branches/consolecommands2:6451-7178
/code/branches/consolecommands3:7178-7283
/code/branches/core3:1572-1739
/code/branches/core4:3221-3224,3227,3234-3238,3242,3244-3250,3252-3254,3256,3259-3261,3264-3265,3268-3275,3277-3278,3280,3284-3285,3287,3289-3294,3305,3309-3310
/code/branches/core5:5768-5928,6009
/code/branches/data_cleanup:7537-7686
/code/branches/doc:7290-7400
/code/branches/dynamicmatch:6584-7030
/code/branches/fps:6591-7072
/code/branches/gamestate:6430-6572,6621-6661
/code/branches/gamestates2:6594-6745
/code/branches/gametypes:2826-3031
/code/branches/gcc43:1580
/code/branches/gui:1635-1723,2795-2894
/code/branches/hudelements:6584-6941
/code/branches/ingamemenu:6000-6023
/code/branches/input:1629-1636
/code/branches/ipv6:7293-7458
/code/branches/kicklib:7940-8096,8098-8277
/code/branches/kicklib2:8282-8350
/code/branches/lastmanstanding:7479-7644
/code/branches/lastmanstanding3:7903-8175
/code/branches/libraries:5612-5692
/code/branches/libraries2:5703-5737
/code/branches/lod:6586-6911
/code/branches/lodfinal:2372-2411
/code/branches/mac_osx:7789-8128,8135
/code/branches/map:2801-3086,3089
/code/branches/masterserver:7502-7738
/code/branches/menu:5941-6146,6148,7536-7687
/code/branches/miniprojects:2754-2824
/code/branches/netp2:2835-2988
/code/branches/netp3:2988-3082
/code/branches/netp6:3214-3302
/code/branches/network:2356
/code/branches/network2:6434-6465
/code/branches/network3:7196-7344
/code/branches/network4:7497-7755
/code/branches/network5:7757-7781
/code/branches/network6:7823-8315
/code/branches/network64:2210-2355
/code/branches/notifications:7314-7401
/code/branches/objecthierarchy:1911-2085,2100,2110-2169
/code/branches/objecthierarchy2:2171-2479
/code/branches/ois_update:7506-7788
/code/branches/overlay:2117-2385
/code/branches/particles:2829-3085
/code/branches/particles2:6050-6106,6109
/code/branches/pch:3113-3194
/code/branches/physics:1912-2055,2107-2439
/code/branches/physics_merge:2436-2457
/code/branches/pickup:8145-8555
/code/branches/pickup2:5942-6405
/code/branches/pickup3:6418-6523
/code/branches/pickup4:6594-6710
/code/branches/pickups:1926-2086,2127,2827-2915
/code/branches/pickups2:2107-2497,2915-3071
/code/branches/png2:7262-7263
/code/branches/portals:8087-8455
/code/branches/ppspickups1:6552-6708
/code/branches/ppspickups2:6527-6532,6554-6709
/code/branches/ppspickups3:6757-6997
/code/branches/ppspickups4:7003-7089
/code/branches/presentation:2369-2652,2654-2660,7736-7786
/code/branches/presentation2:6106-6416,7787-7800
/code/branches/presentation3:6913-7162
/code/branches/questsystem:1894-2088
/code/branches/questsystem2:2107-2259
/code/branches/questsystem5:2776-2905
/code/branches/releasetodo:7614-7647
/code/branches/resource:3327-3366
/code/branches/resource2:3372-5694
/code/branches/rocket:6523-6950
/code/branches/rocket2:6953-6970
/code/branches/script_trigger:1295-1953,1955
/code/branches/skybox2:6559-6989
/code/branches/sound:2829-3010
/code/branches/sound3:5941-6102
/code/branches/spaceboundaries:8085-8457
/code/branches/steering:5949-6091
/code/branches/tetris:8100-8107
/code/branches/usability:7915-8078
/code/branches/weapon:1925-2094
/code/branches/weapon2:2107-2488
/code/branches/weapons:2897-3051
/code/branches/weaponsystem:2742-2890
+ /code/branches/ai:6592-7033
/code/branches/buildsystem:1874-2276,2278-2400
/code/branches/buildsystem2:2506-2658
/code/branches/buildsystem3:2662-2708
/code/branches/ceguilua:1802-1808
/code/branches/chat:6527-6797
/code/branches/chat2:6836-6910
/code/branches/console:5941-6104
/code/branches/consolecommands2:6451-7178
/code/branches/consolecommands3:7178-7283
/code/branches/core3:1572-1739
/code/branches/core4:3221-3224,3227,3234-3238,3242,3244-3250,3252-3254,3256,3259-3261,3264-3265,3268-3275,3277-3278,3280,3284-3285,3287,3289-3294,3305,3309-3310
/code/branches/core5:5768-5928,6009
/code/branches/data_cleanup:7537-7686
/code/branches/doc:7290-7400
/code/branches/dockingsystem:8101-8192
/code/branches/dockingsystem2:8196-8560
/code/branches/dynamicmatch:6584-7030
/code/branches/fps:6591-7072
/code/branches/gamestate:6430-6572,6621-6661
/code/branches/gamestates2:6594-6745
/code/branches/gametypes:2826-3031
/code/branches/gcc43:1580
/code/branches/gui:1635-1723,2795-2894
/code/branches/hudelements:6584-6941
/code/branches/ingamemenu:6000-6023
/code/branches/input:1629-1636
/code/branches/ipv6:7293-7458
/code/branches/kicklib:7940-8096,8098-8277
/code/branches/kicklib2:8282-8350
/code/branches/lastmanstanding:7479-7644
/code/branches/lastmanstanding3:7903-8175
/code/branches/libraries:5612-5692
/code/branches/libraries2:5703-5737
/code/branches/lod:6586-6911
/code/branches/lodfinal:2372-2411
/code/branches/mac_osx:7789-8128,8135
/code/branches/map:2801-3086,3089
/code/branches/masterserver:7502-7738
/code/branches/menu:5941-6146,6148,7536-7687
/code/branches/miniprojects:2754-2824
/code/branches/netp2:2835-2988
/code/branches/netp3:2988-3082
/code/branches/netp6:3214-3302
/code/branches/network:2356
/code/branches/network2:6434-6465
/code/branches/network3:7196-7344
/code/branches/network4:7497-7755
/code/branches/network5:7757-7781
/code/branches/network6:7823-8315
/code/branches/network64:2210-2355
/code/branches/notifications:7314-7401
/code/branches/objecthierarchy:1911-2085,2100,2110-2169
/code/branches/objecthierarchy2:2171-2479
/code/branches/ois_update:7506-7788
/code/branches/overlay:2117-2385
/code/branches/particles:2829-3085
/code/branches/particles2:6050-6106,6109
/code/branches/pch:3113-3194
/code/branches/physics:1912-2055,2107-2439
/code/branches/physics_merge:2436-2457
/code/branches/pickup:8145-8555
/code/branches/pickup2:5942-6405
/code/branches/pickup3:6418-6523
/code/branches/pickup4:6594-6710
/code/branches/pickups:1926-2086,2127,2827-2915
/code/branches/pickups2:2107-2497,2915-3071
/code/branches/png2:7262-7263
/code/branches/portals:8087-8455
/code/branches/ppspickups1:6552-6708
/code/branches/ppspickups2:6527-6532,6554-6709
/code/branches/ppspickups3:6757-6997
/code/branches/ppspickups4:7003-7089
/code/branches/presentation:2369-2652,2654-2660,7736-7786
/code/branches/presentation2:6106-6416,7787-7800
/code/branches/presentation3:6913-7162
/code/branches/questsystem:1894-2088
/code/branches/questsystem2:2107-2259
/code/branches/questsystem5:2776-2905
/code/branches/releasetodo:7614-7647
/code/branches/resource:3327-3366
/code/branches/resource2:3372-5694
/code/branches/rocket:6523-6950
/code/branches/rocket2:6953-6970
/code/branches/script_trigger:1295-1953,1955
/code/branches/skybox2:6559-6989
/code/branches/sound:2829-3010
/code/branches/sound3:5941-6102
/code/branches/spaceboundaries:8085-8457
/code/branches/steering:5949-6091
/code/branches/tetris:8100-8107
/code/branches/usability:7915-8078
/code/branches/weapon:1925-2094
/code/branches/weapon2:2107-2488
/code/branches/weapons:2897-3051
/code/branches/weaponsystem:2742-2890
Copied: code/branches/presentation/data/gui/layouts/DockingDialog.layout (from rev 8560, code/branches/dockingsystem2/data/gui/layouts/DockingDialog.layout)
===================================================================
--- code/branches/presentation/data/gui/layouts/DockingDialog.layout (rev 0)
+++ code/branches/presentation/data/gui/layouts/DockingDialog.layout 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<GUILayout >
+ <Window Type="MenuWidgets/StaticImage" Name="orxonox/DockingBackground" >
+ <Property Name="FrameEnabled" Value="False" />
+ <Property Name="InheritsAlpha" Value="False" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1,0},{1,0}}" />
+ <Property Name="BackgroundEnabled" Value="False" />
+ <Window Type="MenuWidgets/StaticText" Name="orxonox/DockingTitle" >
+ <Property Name="Text" Value="Docking" />
+ <Property Name="Alpha" Value="0.8" />
+ <Property Name="InheritsAlpha" Value="False" />
+ <Property Name="HorzFormatting" Value="HorzCentred" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="VertFormatting" Value="TopAligned" />
+ <Property Name="UnifiedAreaRect" Value="{{0.25,0},{0.2875,0},{0.75,0},{0.7,0}}" />
+ <Window Type="MenuWidgets/Listbox" Name="orxonox/DockingDocks" >
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.15,0},{0.95,0},{0.85,0}}" />
+ </Window>
+ </Window>
+ <Window Type="MenuWidgets/Button" Name="orxonox/DockingDockButton" >
+ <Property Name="Text" Value="Dock" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.2875,0},{0.725,0},{0.4875,0},{0.775,0}}" />
+ <Event Name="Clicked" Function="DockingDialog.dockButton_clicked"/>
+ </Window>
+ <Window Type="MenuWidgets/Button" Name="orxonox/DockingCancelButton" >
+ <Property Name="Text" Value="Cancel" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0.725,0},{0.7125,0},{0.775,0}}" />
+ <Event Name="Clicked" Function="DockingDialog.cancelButton_clicked"/>
+ </Window>
+ </Window>
+</GUILayout>
Copied: code/branches/presentation/data/gui/scripts/DockingDialog.lua (from rev 8560, code/branches/dockingsystem2/data/gui/scripts/DockingDialog.lua)
===================================================================
--- code/branches/presentation/data/gui/scripts/DockingDialog.lua (rev 0)
+++ code/branches/presentation/data/gui/scripts/DockingDialog.lua 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,66 @@
+-- DockingDialog.lua
+
+local P = createMenuSheet("DockingDialog")
+
+P.docks = {}
+
+function P.onLoad()
+
+ --button are arranged in a 1x2 matrix
+ P:setButton(1, 1, {
+ ["button"] = winMgr:getWindow("orxonox/DockingDockButton"),
+ ["callback"] = P.dockButton_clicked
+ })
+
+ P:setButton(1, 2, {
+ ["button"] = winMgr:getWindow("orxonox/DockingCancelButton"),
+ ["callback"] = P.cancelButton_clicked
+ })
+
+end
+
+function P.onShow()
+ orxonox.execute("setPause 1")
+ P.update()
+end
+
+function P.onHide()
+ orxonox.execute("setPause 0")
+end
+
+function P.update()
+ -- update dock list
+ P.docks = {}
+ local docks = orxonox.Dock:getNumberOfActiveDocks()
+ for i = 0, docks-1 do
+ table.insert(P.docks, orxonox.Dock:getActiveDockAtIndex(i))
+ end
+
+ local listbox = CEGUI.toListbox(winMgr:getWindow("orxonox/DockingDocks"))
+ listbox:resetList()
+
+ for k in pairs(P.docks) do
+ local item = CEGUI.createListboxTextItem("Dock " .. k)
+ item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
+ listbox:addItem(item)
+ end
+end
+
+function P.dockButton_clicked(e)
+ local listbox = CEGUI.toListbox(winMgr:getWindow("orxonox/DockingDocks"))
+ local choice = listbox:getFirstSelectedItem()
+ if choice ~= nil then
+ local index = listbox:getItemIndex(choice)
+ local dock = P.docks[index+1]
+ if dock ~= nil then
+ dock:dock()
+ end
+ end
+ hideMenuSheet(P.name)
+end
+
+function P.cancelButton_clicked(e)
+ hideMenuSheet(P.name)
+end
+
+return P
Copied: code/branches/presentation/data/levels/docking.oxw (from rev 8560, code/branches/dockingsystem2/data/levels/docking.oxw)
===================================================================
--- code/branches/presentation/data/levels/docking.oxw (rev 0)
+++ code/branches/presentation/data/levels/docking.oxw 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,209 @@
+<LevelInfo
+ name = "Transporter"
+ description = "Level with a Transporter. Demonstrates the docking system."
+ tags = ""
+/>
+
+<?lua
+ include("HUDTemplates3.oxo")
+ include("stats.oxo")
+ include("templates/spaceshipAssff.oxt")
+ include("templates/lodInformation.oxt")
+?>
+
+<Level
+ name = "Transporter"
+ description = "Docking example level"
+>
+ <templates>
+ <Template link="lodtemplate_default" />
+ </templates>
+
+ <Scene
+ ambientlight = "0.5, 0.5, 0.5"
+ skybox = "Orxonox/skypanoramagen1"
+ >
+
+ <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" />
+
+ <?lua for i = 1, 10, 1 do ?>
+ <SpawnPoint position="<?lua print(math.random() * 200 - 100) ?>,<?lua print(math.random() * 200 - 100) ?>,<?lua print(math.random() * 200 - 100) ?>" lookat="0,0,0" spawnclass="SpaceShip" pawndesign="spaceshipassff" />
+ <?lua end ?>
+
+
+
+ <SpaceShip
+ position = "280, 150, 115"
+ orientation = "0.5, 0.5, 0.5, 0.5"
+ hudtemplate = "spaceshiphud"
+ camerapositiontemplate = "spaceshipassffcameras"
+ engine = "spaceshipassffengine"
+ spawnparticlesource = "Orxonox/fairytwirl"
+ spawnparticleduration = "3"
+ explosionchunks = "6"
+
+ health = "100"
+ maxhealth = "200"
+ initialhealth = "100"
+
+ primaryThrust = "100;"
+ auxilaryThrust = "30;"
+ rotationThrust = "25;"
+
+ collisionType = "dynamic"
+ mass = "100"
+ linearDamping = "0.7"
+ angularDamping = "0.9999999"
+ >
+ <attached>
+ <DistanceTriggerBeacon name="bcnSpaceShip" />
+ <DockingTarget name="spaceShip" />
+
+ <Model position="0,0,0" yaw="90" pitch="-90" roll="0" scale="4" mesh="assff.mesh" />
+ <BlinkingBillboard position="17,-1.5,0" material="Examples/Flare" colour="1.0, 0.5, 0.3" amplitude="0.1" frequency="0.5" quadratic="1" />
+ <BlinkingBillboard position="-17,-1.5,0" material="Examples/Flare" colour="0.5, 1.0, 0.3" amplitude="0.1" frequency="0.5" phase="180" quadratic="1" />
+ <DistanceTriggerBeacon name="PlayerDistanceTrigger" />
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="0,0,0" halfExtents="10, 3, 5" />
+ <BoxCollisionShape position="13,-1.3,0" halfExtents="3, 1, 2" />
+ <BoxCollisionShape position="-13,-1.3,0" halfExtents="3, 1, 2" />
+ <BoxCollisionShape position="0,0,7" halfExtents="3, 2, 2" />
+ <BoxCollisionShape position="0,0.1,-11" halfExtents="2.2, 1.8, 6" />
+ <BoxCollisionShape position="0,0.1,-19" halfExtents="1.4, 1, 2" />
+ </collisionShapes>
+<?lua
+ include("includes/weaponSettingsAssff.oxi")
+?>
+ </SpaceShip>
+
+
+
+
+ <Destroyer
+ position = "100,150,100"
+ collisionType = "dynamic"
+ mass = "100000"
+ velocity = "0,0,0"
+ angularDamping = "0.9999999"
+ health = "10000"
+ maxhealth = "10000"
+ initialhealth = "10000"
+ >
+
+ <attached>
+
+ <DistanceTriggerBeacon name="bcnDestroyer" />
+ <DockingTarget name="destroyer" />
+
+
+ <Dock orientation="0.5, 0.5, 0.5, 0.5">
+ <animations>
+ <MoveToDockingTarget target="destroyer" position="10,150,40" />
+ </animations>
+ <effects>
+ <DockToShip target="spaceShip" />
+ </effects>
+ <events>
+ <execute>
+ <EventListener event="dockMe" />
+ </execute>
+ </events>
+ <attached>
+ <DistanceTrigger position="0,0,-200" distance="30" target="Pawn" beaconMode="exclude" targetname="bcnDestroyer" name="dockMe" />
+ <Billboard position="0,0,-200" material="Examples/Flare" colour="1.0, 0, 0" />
+ </attached>
+ </Dock>
+
+
+ <TeamSpawnPoint team="1" position="150,0,7" direction="-1,0,0" roll="90" yaw="0" spawnclass="SpaceShip" pawndesign="spaceshipassff" />
+ <TeamSpawnPoint team="1" position="0,0,7" lookat="-1,0,0" roll="90" yaw="0" spawnclass="SpaceShip" pawndesign="spaceshipassff" />
+ <TeamSpawnPoint team="1" position="-50,0,7" lookat="-1,0,0" roll="90" yaw="0" spawnclass="SpaceShip" pawndesign="spaceshipassff" />
+ <TeamSpawnPoint team="1" position="100,0,7" lookat="-1,0,0" roll="90" yaw="0" spawnclass="SpaceShip" pawndesign="spaceshipassff" />
+ <TeamSpawnPoint team="1" position="50,0,7" lookat="-1,0,0" roll="90" yaw="0" spawnclass="SpaceShip" pawndesign="spaceshipassff" />
+ <?lua for i = 1, 100, 1 do ?>
+ <TeamSpawnPoint
+ team="0"
+ position="<?lua print((math.random() * 500 + 500) * (math.floor(math.random() + 0.5) * 2 - 1)) ?>,<?lua print((math.random() * 500 + 500) * (math.floor(math.random() + 0.5) * 2 - 1)) ?>,<?lua print((math.random() * 500 + 500) * (math.floor(math.random() + 0.5) * 2 - 1)) ?>"
+ lookat="0,0,0"
+ spawnclass="SpaceShip"
+ pawndesign="spaceshipassff"
+ />
+ <?lua end ?>
+
+ <Model mesh="Carrier.mesh" scale="5" />
+ <Backlight
+ mainstate="activity"
+ active="false"
+ scale="0.4"
+ name="bltest"
+ position=" 7.6, 0, 6"
+ colour="0.2, 0.65, 1.0, 1.0"
+ width="15"
+ length="1500"
+ lifetime="2"
+ elements="50"
+ trailmaterial="Trail/backlighttrail"
+ turnontime="1"
+ turnofftime="1"
+ material="Flares/ThrusterFlare1"
+ />
+ <Backlight
+ scale="1"
+ position=" 169, 75, -15"
+ colour="1, 0.85, 0.5, 0.5"
+ width="40"
+ length="1000"
+ lifetime="5"
+ elements="15"
+ trailmaterial="Trail/backlighttrail"
+ material="Examples/Flare"
+ />
+ <Backlight
+ scale="1"
+ position=" 169, -75, -15"
+ colour="1, 0.85, 0.5, 0.5"
+ width="40"
+ length="1000"
+ lifetime="5"
+ elements="15"
+ trailmaterial="Trail/backlighttrail"
+ material="Examples/Flare"
+ />
+ <?lua for i=0,8,1 do ?>
+ <BlinkingBillboard
+ position="<?lua print(200-270/8*i)?> ,15,2"
+ material="Examples/Flare"
+ colour="1.0, 0.5, 0.3"
+ phase="<?lua print(-360/8*i)?>"
+ amplitude="0.1"
+ frequency="0.5"
+ quadratic="1"
+ />
+
+ <BlinkingBillboard
+ position="<?lua print(200-270/8*i)?>,-15,2"
+ material="Examples/Flare"
+ colour="1.0, 0.5, 0.3"
+ phase="<?lua print(-360/8*i)?>"
+ amplitude="0.1"
+ frequency="0.5"
+ quadratic="1"
+ />
+ <?lua end ?>
+
+ </attached>
+ <collisionShapes>
+ <BoxCollisionShape position="70,0,-25" halfExtents="150, 50, 25" />
+ <BoxCollisionShape position="95,75,-16" halfExtents="70, 10, 12" />
+ <BoxCollisionShape position="95,-75,-16" halfExtents="70, 10, 12" />
+ <BoxCollisionShape position="77,47,30" halfExtents="110, 2, 30" />
+ <BoxCollisionShape position="77,-47,30" halfExtents="110, 2, 30" />
+ <BoxCollisionShape position="77,0,50" halfExtents="110, 45, 6" />
+ <BoxCollisionShape position="167,0,70" halfExtents="17, 20, 20" />
+ </collisionShapes>
+
+ </Destroyer>
+
+ </Scene>
+</Level>
Modified: code/branches/presentation/src/modules/CMakeLists.txt
===================================================================
--- code/branches/presentation/src/modules/CMakeLists.txt 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/CMakeLists.txt 2011-05-24 14:44:39 UTC (rev 8561)
@@ -34,3 +34,4 @@
ADD_SUBDIRECTORY(portals)
ADD_SUBDIRECTORY(questsystem)
ADD_SUBDIRECTORY(weapons)
+ADD_SUBDIRECTORY(docking)
Deleted: code/branches/presentation/src/modules/docking/CMakeLists.txt
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/CMakeLists.txt 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/CMakeLists.txt 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,21 +0,0 @@
-SET_SOURCE_FILES(DOCKING_SRC_FILES
- DockingTarget.cc
- DockingEffect.cc
- DockingAnimation.cc
- DockToShip.cc
- MoveToDockingTarget.cc
- DockingController.cc
- Dock.cc
-)
-
-ORXONOX_ADD_LIBRARY(docking
- MODULE
- FIND_HEADER_FILES
- TOLUA_FILES
- Dock.h
- PCH_FILE
- DockingPrecompiledHeaders.h
- LINK_LIBRARIES
- orxonox
- SOURCE_FILES ${DOCKING_SRC_FILES}
-)
Copied: code/branches/presentation/src/modules/docking/CMakeLists.txt (from rev 8560, code/branches/dockingsystem2/src/modules/docking/CMakeLists.txt)
===================================================================
--- code/branches/presentation/src/modules/docking/CMakeLists.txt (rev 0)
+++ code/branches/presentation/src/modules/docking/CMakeLists.txt 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,21 @@
+SET_SOURCE_FILES(DOCKING_SRC_FILES
+ DockingTarget.cc
+ DockingEffect.cc
+ DockingAnimation.cc
+ DockToShip.cc
+ MoveToDockingTarget.cc
+ DockingController.cc
+ Dock.cc
+)
+
+ORXONOX_ADD_LIBRARY(docking
+ MODULE
+ FIND_HEADER_FILES
+ TOLUA_FILES
+ Dock.h
+ PCH_FILE
+ DockingPrecompiledHeaders.h
+ LINK_LIBRARIES
+ orxonox
+ SOURCE_FILES ${DOCKING_SRC_FILES}
+)
Deleted: code/branches/presentation/src/modules/docking/Dock.cc
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/Dock.cc 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/Dock.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,280 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file Dock.cc
- @brief Docking system main class
-*/
-
-#include "Dock.h"
-
-#include "core/CoreIncludes.h"
-#include "core/LuaState.h"
-#include "core/GUIManager.h"
-#include "infos/HumanPlayer.h"
-#include "worldentities/pawns/Pawn.h"
-#include "interfaces/PlayerTrigger.h"
-#include "core/command/ConsoleCommand.h"
-
-#include "ToluaBindDocking.h"
-
-namespace orxonox
-{
- // Register tolua_open function when loading the library
- DeclareToluaInterface(Docking);
-
- CreateFactory(Dock);
-
- SetConsoleCommand("Dock", "dock", &Dock::cmdDock).addShortcut().setAsInputCommand();
- SetConsoleCommand("Dock", "undock", &Dock::cmdUndock).addShortcut().setAsInputCommand();
-
- Dock::Dock(BaseObject* creator) : StaticEntity(creator)
- {
- RegisterObject(Dock);
- }
-
- Dock::~Dock()
- {
- }
-
-
- void Dock::XMLPort(Element& xmlelement, XMLPort::Mode mode)
- {
- SUPER(Dock, XMLPort, xmlelement, mode);
-
- XMLPortObject(Dock, DockingEffect, "effects", addEffect, getEffect, xmlelement, mode);
- XMLPortObject(Dock, DockingAnimation, "animations", addAnimation, getAnimation, xmlelement, mode);
- XMLPortEventSink(Dock, BaseObject, "execute", execute, xmlelement, mode);
- }
-
- void Dock::XMLEventPort(Element& xmlelement, XMLPort::Mode mode)
- {
- SUPER(Dock, XMLEventPort, xmlelement, mode);
-
- XMLPortEventSink(Dock, BaseObject, "execute", execute, xmlelement, mode);
- }
-
-
- bool Dock::execute(bool bTriggered, BaseObject* trigger)
- {
- PlayerTrigger* pTrigger = orxonox_cast<PlayerTrigger*>(trigger);
- Pawn* pawn = NULL;
-
- // Check whether it is a player trigger and extract pawn from it
- if(pTrigger != NULL)
- {
- if(!pTrigger->isForPlayer()) { // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
- COUT(4) << "Docking:execute PlayerTrigger was not triggered by a player.." << std::endl;
- return false;
- }
- pawn = pTrigger->getTriggeringPlayer();
- }
- else
- {
- COUT(4) << "Docking::execute Not a player trigger, can't extract pawn from it.." << std::endl;
- return false;
- }
- if(pawn == NULL)
- {
- COUT(4) << "Docking::execute Can't retrieve Pawn from Trigger. (" << trigger->getIdentifier()->getName() << ")" << std::endl;
- return false;
- }
-
- // Extract the PlayerInfo from the Pawn.
- PlayerInfo* player = pawn->getPlayer();
- if(player == NULL)
- {
- COUT(2) << "Docking::execute The PlayerInfo* is NULL." << std::endl;
- return false;
- }
-
- if(bTriggered)
- {
- // Add player to this Docks candidates
- candidates.insert(player);
-
- // Show docking dialog
- GUIManager::showGUI("DockingDialog");
- }
- else
- {
- // Remove player from candidates list
- candidates.erase(player);
- }
-
- return true;
- }
-
-
- void Dock::cmdDock()
- {
- PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
- for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
- {
- if(it->dock(player))
- break;
- }
- }
-
- void Dock::cmdUndock()
- {
- PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
- for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
- {
- if(it->undock(player))
- break;
- }
- }
-
-
- bool Dock::dock(PlayerInfo* player)
- {
- // Check if player is a candidate
- if(candidates.find(player) == candidates.end())
- {
- COUT(2) << "Dock::dock Player is not a candidate!" << std::endl;
- return false;
- }
-
- candidates.erase(player);
- docked.insert(player);
-
- if (animations.empty())
- return dockingAnimationFinished(player);
- else
- DockingAnimation::invokeAnimation(true, player, animations);
-
- return true;
- }
-
- bool Dock::dockingAnimationFinished(PlayerInfo* player)
- {
- if(docked.find(player) == docked.end())
- {
- COUT(2) << "Dock::dockingAnimationFinished Player is not currently docked." << std::endl;
- return false;
- }
-
- DockingEffect::invokeEffect(true, player, effects);
- return true;
- }
-
- bool Dock::undock(PlayerInfo* player)
- {
- // Check if player is docked to this Dock
- if(docked.find(player) == docked.end())
- {
- COUT(2) << "Dock::undock Player is not docked to this Dock." << std::endl;
- return false;
- }
-
- docked.erase(player);
- candidates.insert(player);
-
- DockingEffect::invokeEffect(false, player, effects);
-
- if (animations.empty())
- return undockingAnimationFinished(player);
- else
- DockingAnimation::invokeAnimation(false, player, animations);
-
- return true;
- }
-
- bool Dock::undockingAnimationFinished(PlayerInfo* player) {
- COUT(4) << "Dock::undockingAnimationFinished executed" << std::endl;
- return true;
- }
-
-
- unsigned int Dock::getNumberOfActiveDocks()
- {
- int i = 0;
- PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
- for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
- {
- if(it->candidates.find(player) != it->candidates.end())
- i++;
- }
- return i;
- }
-
- Dock* Dock::getActiveDockAtIndex(unsigned int index)
- {
- PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
- for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
- {
- if(it->candidates.find(player) != it->candidates.end())
- {
- if(index == 0)
- return *it;
- index--;
- }
- }
- return NULL;
- }
-
-
- bool Dock::addEffect(DockingEffect* effect)
- {
- assert(effect);
- effects.push_back(effect);
- return true;
- }
-
- const DockingEffect* Dock::getEffect(unsigned int i) const
- {
- for (std::list<DockingEffect*>::const_iterator effect = this->effects.begin(); effect != this->effects.end(); ++effect)
- {
- if(i == 0)
- return *effect;
- i--;
- }
- return NULL;
- }
-
- bool Dock::addAnimation(DockingAnimation* animation)
- {
- assert(animation);
- animation->setParent(this);
- animations.push_back(animation);
- return true;
- }
-
- const DockingAnimation* Dock::getAnimation(unsigned int i) const
- {
- for (std::list<DockingAnimation*>::const_iterator animation = this->animations.begin(); animation != this->animations.end(); ++animation)
- {
- if(i == 0)
- return *animation;
- i--;
- }
- return NULL;
- }
-}
-
Copied: code/branches/presentation/src/modules/docking/Dock.cc (from rev 8560, code/branches/dockingsystem2/src/modules/docking/Dock.cc)
===================================================================
--- code/branches/presentation/src/modules/docking/Dock.cc (rev 0)
+++ code/branches/presentation/src/modules/docking/Dock.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,280 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file Dock.cc
+ @brief Docking system main class
+*/
+
+#include "Dock.h"
+
+#include "core/CoreIncludes.h"
+#include "core/LuaState.h"
+#include "core/GUIManager.h"
+#include "infos/HumanPlayer.h"
+#include "worldentities/pawns/Pawn.h"
+#include "interfaces/PlayerTrigger.h"
+#include "core/command/ConsoleCommand.h"
+
+#include "ToluaBindDocking.h"
+
+namespace orxonox
+{
+ // Register tolua_open function when loading the library
+ DeclareToluaInterface(Docking);
+
+ CreateFactory(Dock);
+
+ SetConsoleCommand("Dock", "dock", &Dock::cmdDock).addShortcut().setAsInputCommand();
+ SetConsoleCommand("Dock", "undock", &Dock::cmdUndock).addShortcut().setAsInputCommand();
+
+ Dock::Dock(BaseObject* creator) : StaticEntity(creator)
+ {
+ RegisterObject(Dock);
+ }
+
+ Dock::~Dock()
+ {
+ }
+
+
+ void Dock::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+ {
+ SUPER(Dock, XMLPort, xmlelement, mode);
+
+ XMLPortObject(Dock, DockingEffect, "effects", addEffect, getEffect, xmlelement, mode);
+ XMLPortObject(Dock, DockingAnimation, "animations", addAnimation, getAnimation, xmlelement, mode);
+ XMLPortEventSink(Dock, BaseObject, "execute", execute, xmlelement, mode);
+ }
+
+ void Dock::XMLEventPort(Element& xmlelement, XMLPort::Mode mode)
+ {
+ SUPER(Dock, XMLEventPort, xmlelement, mode);
+
+ XMLPortEventSink(Dock, BaseObject, "execute", execute, xmlelement, mode);
+ }
+
+
+ bool Dock::execute(bool bTriggered, BaseObject* trigger)
+ {
+ PlayerTrigger* pTrigger = orxonox_cast<PlayerTrigger*>(trigger);
+ Pawn* pawn = NULL;
+
+ // Check whether it is a player trigger and extract pawn from it
+ if(pTrigger != NULL)
+ {
+ if(!pTrigger->isForPlayer()) { // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
+ COUT(4) << "Docking:execute PlayerTrigger was not triggered by a player.." << std::endl;
+ return false;
+ }
+ pawn = pTrigger->getTriggeringPlayer();
+ }
+ else
+ {
+ COUT(4) << "Docking::execute Not a player trigger, can't extract pawn from it.." << std::endl;
+ return false;
+ }
+ if(pawn == NULL)
+ {
+ COUT(4) << "Docking::execute Can't retrieve Pawn from Trigger. (" << trigger->getIdentifier()->getName() << ")" << std::endl;
+ return false;
+ }
+
+ // Extract the PlayerInfo from the Pawn.
+ PlayerInfo* player = pawn->getPlayer();
+ if(player == NULL)
+ {
+ COUT(2) << "Docking::execute The PlayerInfo* is NULL." << std::endl;
+ return false;
+ }
+
+ if(bTriggered)
+ {
+ // Add player to this Docks candidates
+ candidates.insert(player);
+
+ // Show docking dialog
+ GUIManager::showGUI("DockingDialog");
+ }
+ else
+ {
+ // Remove player from candidates list
+ candidates.erase(player);
+ }
+
+ return true;
+ }
+
+
+ void Dock::cmdDock()
+ {
+ PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
+ for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
+ {
+ if(it->dock(player))
+ break;
+ }
+ }
+
+ void Dock::cmdUndock()
+ {
+ PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
+ for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
+ {
+ if(it->undock(player))
+ break;
+ }
+ }
+
+
+ bool Dock::dock(PlayerInfo* player)
+ {
+ // Check if player is a candidate
+ if(candidates.find(player) == candidates.end())
+ {
+ COUT(2) << "Dock::dock Player is not a candidate!" << std::endl;
+ return false;
+ }
+
+ candidates.erase(player);
+ docked.insert(player);
+
+ if (animations.empty())
+ return dockingAnimationFinished(player);
+ else
+ DockingAnimation::invokeAnimation(true, player, animations);
+
+ return true;
+ }
+
+ bool Dock::dockingAnimationFinished(PlayerInfo* player)
+ {
+ if(docked.find(player) == docked.end())
+ {
+ COUT(2) << "Dock::dockingAnimationFinished Player is not currently docked." << std::endl;
+ return false;
+ }
+
+ DockingEffect::invokeEffect(true, player, effects);
+ return true;
+ }
+
+ bool Dock::undock(PlayerInfo* player)
+ {
+ // Check if player is docked to this Dock
+ if(docked.find(player) == docked.end())
+ {
+ COUT(2) << "Dock::undock Player is not docked to this Dock." << std::endl;
+ return false;
+ }
+
+ docked.erase(player);
+ candidates.insert(player);
+
+ DockingEffect::invokeEffect(false, player, effects);
+
+ if (animations.empty())
+ return undockingAnimationFinished(player);
+ else
+ DockingAnimation::invokeAnimation(false, player, animations);
+
+ return true;
+ }
+
+ bool Dock::undockingAnimationFinished(PlayerInfo* player) {
+ COUT(4) << "Dock::undockingAnimationFinished executed" << std::endl;
+ return true;
+ }
+
+
+ unsigned int Dock::getNumberOfActiveDocks()
+ {
+ int i = 0;
+ PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
+ for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
+ {
+ if(it->candidates.find(player) != it->candidates.end())
+ i++;
+ }
+ return i;
+ }
+
+ Dock* Dock::getActiveDockAtIndex(unsigned int index)
+ {
+ PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
+ for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
+ {
+ if(it->candidates.find(player) != it->candidates.end())
+ {
+ if(index == 0)
+ return *it;
+ index--;
+ }
+ }
+ return NULL;
+ }
+
+
+ bool Dock::addEffect(DockingEffect* effect)
+ {
+ assert(effect);
+ effects.push_back(effect);
+ return true;
+ }
+
+ const DockingEffect* Dock::getEffect(unsigned int i) const
+ {
+ for (std::list<DockingEffect*>::const_iterator effect = this->effects.begin(); effect != this->effects.end(); ++effect)
+ {
+ if(i == 0)
+ return *effect;
+ i--;
+ }
+ return NULL;
+ }
+
+ bool Dock::addAnimation(DockingAnimation* animation)
+ {
+ assert(animation);
+ animation->setParent(this);
+ animations.push_back(animation);
+ return true;
+ }
+
+ const DockingAnimation* Dock::getAnimation(unsigned int i) const
+ {
+ for (std::list<DockingAnimation*>::const_iterator animation = this->animations.begin(); animation != this->animations.end(); ++animation)
+ {
+ if(i == 0)
+ return *animation;
+ i--;
+ }
+ return NULL;
+ }
+}
+
Deleted: code/branches/presentation/src/modules/docking/Dock.h
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/Dock.h 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/Dock.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,100 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file Dock.h
- @brief Definition of Dock class
- @ingroup Docking
-*/
-
-#ifndef _Dock_H__
-#define _Dock_H__
-
-#include <set>
-
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "core/EventIncludes.h"
-
-#include "worldentities/StaticEntity.h"
-#include "controllers/HumanController.h"
-
-#include "DockingEffect.h"
-#include "DockingAnimation.h"
-#include "DockingPrereqs.h"
-
-namespace orxonox // tolua_export
-{ // tolua_export
-
- class _DockingExport Dock // tolua_export
- : public StaticEntity
- { // tolua_export
- public:
- Dock(BaseObject* creator);
- virtual ~Dock();
-
- // Trigger interface
- bool execute(bool bTriggered, BaseObject* trigger);
-
- // XML interface
- virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
- virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
-
- // XML functions
- bool addEffect(DockingEffect* effect); //!< Add a DockingEffect to the Dock.
- const DockingEffect* getEffect(unsigned int index) const; //!< Get the DockingEffect at a given index.
- bool addAnimation(DockingAnimation* animation); //!< Add a DockingAnimation to the Dock.
- const DockingAnimation* getAnimation(unsigned int index) const; //!< Get the DockingAnimation at a given index.
-
- // Docking/undocking logic, checks conditions and invokes the DockingAnimations
- bool dock(PlayerInfo* player); //!< Returns true if given player docked successfully (player must be a candidate)
- bool undock(PlayerInfo* player); //!< Undocks a player (player must be docked)
-
- // Animation logic
- bool dockingAnimationFinished(PlayerInfo* player); //!< Called when a docking animation finished
- bool undockingAnimationFinished(PlayerInfo* player); //!< Called when a undocking animation finished
-
- // LUA interface
- void dock() { this->dock(HumanController::getLocalControllerSingleton()->getPlayer()); } // tolua_export
- static unsigned int getNumberOfActiveDocks(); // tolua_export
- static Dock* getActiveDockAtIndex(unsigned int index); // tolua_export
-
- // Console commands
- static void cmdDock();
- static void cmdUndock();
-
- private:
- std::set<PlayerInfo*> candidates; //!< A set of all players which are allowed to dock using the console command.
- std::set<PlayerInfo*> docked; //!< A set of all docked players
-
- std::list<DockingEffect*> effects; //!< The list of DockingEffects to be executed when a player docks.
- std::list<DockingAnimation*> animations; //!< The list of DockingAnimations to be executed before a player docks
- }; // tolua_export
-} // tolua_export
-
-#endif /* _Dock_H__ */
Copied: code/branches/presentation/src/modules/docking/Dock.h (from rev 8560, code/branches/dockingsystem2/src/modules/docking/Dock.h)
===================================================================
--- code/branches/presentation/src/modules/docking/Dock.h (rev 0)
+++ code/branches/presentation/src/modules/docking/Dock.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,100 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file Dock.h
+ @brief Definition of Dock class
+ @ingroup Docking
+*/
+
+#ifndef _Dock_H__
+#define _Dock_H__
+
+#include <set>
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "core/EventIncludes.h"
+
+#include "worldentities/StaticEntity.h"
+#include "controllers/HumanController.h"
+
+#include "DockingEffect.h"
+#include "DockingAnimation.h"
+#include "DockingPrereqs.h"
+
+namespace orxonox // tolua_export
+{ // tolua_export
+
+ class _DockingExport Dock // tolua_export
+ : public StaticEntity
+ { // tolua_export
+ public:
+ Dock(BaseObject* creator);
+ virtual ~Dock();
+
+ // Trigger interface
+ bool execute(bool bTriggered, BaseObject* trigger);
+
+ // XML interface
+ virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+ virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
+
+ // XML functions
+ bool addEffect(DockingEffect* effect); //!< Add a DockingEffect to the Dock.
+ const DockingEffect* getEffect(unsigned int index) const; //!< Get the DockingEffect at a given index.
+ bool addAnimation(DockingAnimation* animation); //!< Add a DockingAnimation to the Dock.
+ const DockingAnimation* getAnimation(unsigned int index) const; //!< Get the DockingAnimation at a given index.
+
+ // Docking/undocking logic, checks conditions and invokes the DockingAnimations
+ bool dock(PlayerInfo* player); //!< Returns true if given player docked successfully (player must be a candidate)
+ bool undock(PlayerInfo* player); //!< Undocks a player (player must be docked)
+
+ // Animation logic
+ bool dockingAnimationFinished(PlayerInfo* player); //!< Called when a docking animation finished
+ bool undockingAnimationFinished(PlayerInfo* player); //!< Called when a undocking animation finished
+
+ // LUA interface
+ void dock() { this->dock(HumanController::getLocalControllerSingleton()->getPlayer()); } // tolua_export
+ static unsigned int getNumberOfActiveDocks(); // tolua_export
+ static Dock* getActiveDockAtIndex(unsigned int index); // tolua_export
+
+ // Console commands
+ static void cmdDock();
+ static void cmdUndock();
+
+ private:
+ std::set<PlayerInfo*> candidates; //!< A set of all players which are allowed to dock using the console command.
+ std::set<PlayerInfo*> docked; //!< A set of all docked players
+
+ std::list<DockingEffect*> effects; //!< The list of DockingEffects to be executed when a player docks.
+ std::list<DockingAnimation*> animations; //!< The list of DockingAnimations to be executed before a player docks
+ }; // tolua_export
+} // tolua_export
+
+#endif /* _Dock_H__ */
Deleted: code/branches/presentation/src/modules/docking/DockToShip.cc
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockToShip.cc 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockToShip.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,101 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file DockToShip.cc
- @brief Implementation of the DockToShip class.
-*/
-
-#include "DockingEffect.h"
-#include "DockToShip.h"
-#include "core/CoreIncludes.h"
-
-namespace orxonox
-{
- CreateFactory(DockToShip);
-
- DockToShip::DockToShip(BaseObject* creator) : DockingEffect(creator)
- {
- RegisterObject(DockToShip);
- COUT(4) << "DockToShip instance created.." << endl;
- }
-
- DockToShip::~DockToShip()
- {
-
- }
-
-
- void DockToShip::XMLPort(Element& xmlelement, XMLPort::Mode mode) {
- SUPER(DockToShip, XMLPort, xmlelement, mode);
-
- XMLPortParam(DockToShip, "target", setTargetId, getTargetId, xmlelement, mode);
- }
-
- void DockToShip::setTargetId(const std::string& str) {
- this->target = str;
- }
-
- const std::string& DockToShip::getTargetId() const {
- return this->target;
- }
-
-
- bool DockToShip::docking(PlayerInfo* player)
- {
- COUT(4) << "DockToShip::attach" << endl;
-
- DockingTarget *target = DockingEffect::findTarget(this->target);
- if (target == NULL) {
- COUT(0) << "Can't retrieve target for '" << this->target << "'.." << std::endl;
- return false;
- }
-
- ControllableEntity *dockTo = (ControllableEntity*) target->getParent();
- if (dockTo == NULL) {
- COUT(2) << "Parent is not a ControllableEntity.." << std::endl;
- return false;
- }
-
- // Make sure target isn't removed when undocking
- dockTo->setDestroyWhenPlayerLeft(false);
- player->startTemporaryControl(dockTo);
-
- return true;
- }
-
- bool DockToShip::release(PlayerInfo* player)
- {
- COUT(4) << "DockToShip::release" << endl;
-
- player->stopTemporaryControl();
-
- return true;
- }
-}
-
Copied: code/branches/presentation/src/modules/docking/DockToShip.cc (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockToShip.cc)
===================================================================
--- code/branches/presentation/src/modules/docking/DockToShip.cc (rev 0)
+++ code/branches/presentation/src/modules/docking/DockToShip.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,101 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file DockToShip.cc
+ @brief Implementation of the DockToShip class.
+*/
+
+#include "DockingEffect.h"
+#include "DockToShip.h"
+#include "core/CoreIncludes.h"
+
+namespace orxonox
+{
+ CreateFactory(DockToShip);
+
+ DockToShip::DockToShip(BaseObject* creator) : DockingEffect(creator)
+ {
+ RegisterObject(DockToShip);
+ COUT(4) << "DockToShip instance created.." << endl;
+ }
+
+ DockToShip::~DockToShip()
+ {
+
+ }
+
+
+ void DockToShip::XMLPort(Element& xmlelement, XMLPort::Mode mode) {
+ SUPER(DockToShip, XMLPort, xmlelement, mode);
+
+ XMLPortParam(DockToShip, "target", setTargetId, getTargetId, xmlelement, mode);
+ }
+
+ void DockToShip::setTargetId(const std::string& str) {
+ this->target = str;
+ }
+
+ const std::string& DockToShip::getTargetId() const {
+ return this->target;
+ }
+
+
+ bool DockToShip::docking(PlayerInfo* player)
+ {
+ COUT(4) << "DockToShip::attach" << endl;
+
+ DockingTarget *target = DockingEffect::findTarget(this->target);
+ if (target == NULL) {
+ COUT(0) << "Can't retrieve target for '" << this->target << "'.." << std::endl;
+ return false;
+ }
+
+ ControllableEntity *dockTo = (ControllableEntity*) target->getParent();
+ if (dockTo == NULL) {
+ COUT(2) << "Parent is not a ControllableEntity.." << std::endl;
+ return false;
+ }
+
+ // Make sure target isn't removed when undocking
+ dockTo->setDestroyWhenPlayerLeft(false);
+ player->startTemporaryControl(dockTo);
+
+ return true;
+ }
+
+ bool DockToShip::release(PlayerInfo* player)
+ {
+ COUT(4) << "DockToShip::release" << endl;
+
+ player->stopTemporaryControl();
+
+ return true;
+ }
+}
+
Deleted: code/branches/presentation/src/modules/docking/DockToShip.h
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockToShip.h 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockToShip.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,74 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file DockToShip.h
- @brief DockingEffect which transfers control from spaceship to docked ship ASDF
- @ingroup Docking
-*/
-
-#ifndef _DockToShip_H__
-#define _DockToShip_H__
-
-#include "DockingPrereqs.h"
-#include "DockToShip.h"
-
-#include "worldentities/ControllableEntity.h"
-
-
-namespace orxonox
-{
-
- /**
- @brief
- Allows players to dock onto a ship
-
- @author
- Sven Stucki
-
- @ingroup Docking
- */
- class _DockingExport DockToShip : public DockingEffect
- {
- public:
- DockToShip(BaseObject* creator);
- virtual ~DockToShip();
-
- virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
- void setTargetId(const std::string& str);
- const std::string& getTargetId() const;
-
- virtual bool docking(PlayerInfo* player); //!< Called when docking starts
- virtual bool release(PlayerInfo* player); //!< Called when player wants undock
- private:
- std::string target;
- };
-
-}
-
-#endif /* _DockToShip_H__ */
Copied: code/branches/presentation/src/modules/docking/DockToShip.h (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockToShip.h)
===================================================================
--- code/branches/presentation/src/modules/docking/DockToShip.h (rev 0)
+++ code/branches/presentation/src/modules/docking/DockToShip.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,74 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file DockToShip.h
+ @brief DockingEffect which transfers control from spaceship to docked ship ASDF
+ @ingroup Docking
+*/
+
+#ifndef _DockToShip_H__
+#define _DockToShip_H__
+
+#include "DockingPrereqs.h"
+#include "DockToShip.h"
+
+#include "worldentities/ControllableEntity.h"
+
+
+namespace orxonox
+{
+
+ /**
+ @brief
+ Allows players to dock onto a ship
+
+ @author
+ Sven Stucki
+
+ @ingroup Docking
+ */
+ class _DockingExport DockToShip : public DockingEffect
+ {
+ public:
+ DockToShip(BaseObject* creator);
+ virtual ~DockToShip();
+
+ virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+ void setTargetId(const std::string& str);
+ const std::string& getTargetId() const;
+
+ virtual bool docking(PlayerInfo* player); //!< Called when docking starts
+ virtual bool release(PlayerInfo* player); //!< Called when player wants undock
+ private:
+ std::string target;
+ };
+
+}
+
+#endif /* _DockToShip_H__ */
Deleted: code/branches/presentation/src/modules/docking/DockingAnimation.cc
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockingAnimation.cc 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockingAnimation.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,69 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file DockingAnimation.cc
- @brief Implementation of the DockingAnimation class.
-*/
-
-#include "DockingAnimation.h"
-
-#include "DockingEffect.h" // For DockingEffect::findTarget
-
-namespace orxonox
-{
- DockingAnimation::DockingAnimation(BaseObject* creator) : BaseObject(creator)
- {
- RegisterObject(DockingAnimation);
- }
-
- DockingAnimation::~DockingAnimation()
- {
-
- }
-
- bool DockingAnimation::invokeAnimation(bool dock, PlayerInfo* player, std::list<DockingAnimation*> &animations)
- {
- bool check = true;
-
- for (std::list<DockingAnimation*>::iterator animation = animations.begin(); animation != animations.end(); animation++)
- {
- if(dock)
- check &= (*animation)->docking(player);
- else
- check &= (*animation)->release(player);
- }
-
- return check;
- }
-
- DockingTarget *DockingAnimation::findTarget(std::string name) {
- return DockingEffect::findTarget(name);
- }
-}
-
Copied: code/branches/presentation/src/modules/docking/DockingAnimation.cc (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockingAnimation.cc)
===================================================================
--- code/branches/presentation/src/modules/docking/DockingAnimation.cc (rev 0)
+++ code/branches/presentation/src/modules/docking/DockingAnimation.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,69 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file DockingAnimation.cc
+ @brief Implementation of the DockingAnimation class.
+*/
+
+#include "DockingAnimation.h"
+
+#include "DockingEffect.h" // For DockingEffect::findTarget
+
+namespace orxonox
+{
+ DockingAnimation::DockingAnimation(BaseObject* creator) : BaseObject(creator)
+ {
+ RegisterObject(DockingAnimation);
+ }
+
+ DockingAnimation::~DockingAnimation()
+ {
+
+ }
+
+ bool DockingAnimation::invokeAnimation(bool dock, PlayerInfo* player, std::list<DockingAnimation*> &animations)
+ {
+ bool check = true;
+
+ for (std::list<DockingAnimation*>::iterator animation = animations.begin(); animation != animations.end(); animation++)
+ {
+ if(dock)
+ check &= (*animation)->docking(player);
+ else
+ check &= (*animation)->release(player);
+ }
+
+ return check;
+ }
+
+ DockingTarget *DockingAnimation::findTarget(std::string name) {
+ return DockingEffect::findTarget(name);
+ }
+}
+
Deleted: code/branches/presentation/src/modules/docking/DockingAnimation.h
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockingAnimation.h 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockingAnimation.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,84 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file DockingAnimation.h
- @brief Definition of the DockingAnimation class.
- @ingroup Docking
-*/
-
-#ifndef _DockingAnimation_H__
-#define _DockingAnimation_H__
-
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-
-#include "infos/PlayerInfo.h"
-
-#include "DockingPrereqs.h"
-#include "DockingTarget.h"
-#include "Dock.h"
-
-
-#include <list>
-#include "core/BaseObject.h"
-
-namespace orxonox
-{
-
- /**
- @brief
- Base class for docking animations used by @ref orxonox::Docking "Docks".
-
- @author
- Sven Stucki
-
- @ingroup Docking
- */
- class _DockingExport DockingAnimation : public BaseObject
- {
- public:
- DockingAnimation(BaseObject* creator);
- virtual ~DockingAnimation();
-
- virtual bool docking(PlayerInfo* player) = 0; //!< Called when a player starts docking
- virtual bool release(PlayerInfo* player) = 0; //!< Called when player wants to undock
-
- static bool invokeAnimation(bool dock, PlayerInfo* player, std::list<DockingAnimation*> &animations); //!< Invokes calls the docking or release method of all list entries
- static DockingTarget *findTarget(std::string name); //!< Iterates through all DockingTarget objects to find the one with name=target
-
- void setParent(Dock *parent) { this->parent = parent; }
-
- protected:
- Dock *parent;
- std::set<PlayerInfo*> animations; //!< Contains a list of currently running animations
- };
-
-}
-
-#endif /* _DockingAnimation_H__ */
Copied: code/branches/presentation/src/modules/docking/DockingAnimation.h (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockingAnimation.h)
===================================================================
--- code/branches/presentation/src/modules/docking/DockingAnimation.h (rev 0)
+++ code/branches/presentation/src/modules/docking/DockingAnimation.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,84 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file DockingAnimation.h
+ @brief Definition of the DockingAnimation class.
+ @ingroup Docking
+*/
+
+#ifndef _DockingAnimation_H__
+#define _DockingAnimation_H__
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+
+#include "infos/PlayerInfo.h"
+
+#include "DockingPrereqs.h"
+#include "DockingTarget.h"
+#include "Dock.h"
+
+
+#include <list>
+#include "core/BaseObject.h"
+
+namespace orxonox
+{
+
+ /**
+ @brief
+ Base class for docking animations used by @ref orxonox::Docking "Docks".
+
+ @author
+ Sven Stucki
+
+ @ingroup Docking
+ */
+ class _DockingExport DockingAnimation : public BaseObject
+ {
+ public:
+ DockingAnimation(BaseObject* creator);
+ virtual ~DockingAnimation();
+
+ virtual bool docking(PlayerInfo* player) = 0; //!< Called when a player starts docking
+ virtual bool release(PlayerInfo* player) = 0; //!< Called when player wants to undock
+
+ static bool invokeAnimation(bool dock, PlayerInfo* player, std::list<DockingAnimation*> &animations); //!< Invokes calls the docking or release method of all list entries
+ static DockingTarget *findTarget(std::string name); //!< Iterates through all DockingTarget objects to find the one with name=target
+
+ void setParent(Dock *parent) { this->parent = parent; }
+
+ protected:
+ Dock *parent;
+ std::set<PlayerInfo*> animations; //!< Contains a list of currently running animations
+ };
+
+}
+
+#endif /* _DockingAnimation_H__ */
Deleted: code/branches/presentation/src/modules/docking/DockingController.cc
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockingController.cc 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockingController.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,129 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-#include "DockingController.h"
-
-#include <cmath>
-
-#include "infos/PlayerInfo.h"
-#include "worldentities/ControllableEntity.h"
-#include "Dock.h"
-
-namespace orxonox
-{
- CreateFactory(DockingController);
-
- DockingController::DockingController(BaseObject* creator) : ArtificialController(creator)
- {
- RegisterObject(DockingController);
- }
-
- DockingController::~DockingController()
- {
-
- }
-
- void DockingController::tick(float dt)
- {
- ControllableEntity* entity = this->getControllableEntity();
- if (!entity)
- return;
-
- float distance = (dock->getWorldPosition() - entity->getPosition()).length();
- Vector2 coord = get2DViewdirection( // I don't understand this too
- entity->getPosition(),
- entity->getOrientation() * WorldEntity::FRONT,
- entity->getOrientation() * WorldEntity::UP,
- dock->getWorldPosition()
- );
-
- // adjust direction of spaceship
- if (distance > 10)
- {
- entity->rotateYaw(-1.0f * 0.8f * sgn(coord.x) * coord.x*coord.x);
- entity->rotatePitch(0.8f * sgn(coord.y) * coord.y*coord.y);
- }
-
- /*// adjust speed
- if (distance < 200 && entity->getVelocity().squaredLength() > dock->getVelocity().squaredLength())
- entity->moveFrontBack(0.2f);
- else
- entity->moveFrontBack(0.8f);*/
-
- entity->moveFrontBack(0.5f * log(distance/10.0f));
-
- if (distance < 20)
- this->positionReached();
-
- SUPER(DockingController, tick, dt);
- }
-
- void DockingController::takeControl(bool docking)
- {
- this->docking = docking;
-
- entity = player->getControllableEntity();
- assert(entity);
-
- if (docking)
- {
- COUT(4) << "DockingController::takeControl Taking over control." << std::endl;
-
- entity->setDestroyWhenPlayerLeft(false);
- player->pauseControl();
- entity->setController(this);
- this->setControllableEntity(entity);
- }
- }
-
- void DockingController::positionReached()
- {
- COUT(4) << "DockingController::positionReached() called." << std::endl;
-
- assert(this->player);
- assert(this->dock);
-
- // stop spaceship
- entity->setPosition(dock->getWorldPosition());
- entity->setVelocity(0, 0, 0);
- entity->setOrientation(dock->getWorldOrientation());
-
- // give control back to player
- player->startControl(entity);
- this->setActive(false);
- this->controllableEntity_ = NULL;
-
- if (docking)
- dock->dockingAnimationFinished(player);
- /*else
- dock->undockingAnimationFinished(player);*/
-
- this->destroy();
- }
-}
-
Copied: code/branches/presentation/src/modules/docking/DockingController.cc (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockingController.cc)
===================================================================
--- code/branches/presentation/src/modules/docking/DockingController.cc (rev 0)
+++ code/branches/presentation/src/modules/docking/DockingController.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,129 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+#include "DockingController.h"
+
+#include <cmath>
+
+#include "infos/PlayerInfo.h"
+#include "worldentities/ControllableEntity.h"
+#include "Dock.h"
+
+namespace orxonox
+{
+ CreateFactory(DockingController);
+
+ DockingController::DockingController(BaseObject* creator) : ArtificialController(creator)
+ {
+ RegisterObject(DockingController);
+ }
+
+ DockingController::~DockingController()
+ {
+
+ }
+
+ void DockingController::tick(float dt)
+ {
+ ControllableEntity* entity = this->getControllableEntity();
+ if (!entity)
+ return;
+
+ float distance = (dock->getWorldPosition() - entity->getPosition()).length();
+ Vector2 coord = get2DViewdirection( // I don't understand this too
+ entity->getPosition(),
+ entity->getOrientation() * WorldEntity::FRONT,
+ entity->getOrientation() * WorldEntity::UP,
+ dock->getWorldPosition()
+ );
+
+ // adjust direction of spaceship
+ if (distance > 10)
+ {
+ entity->rotateYaw(-1.0f * 0.8f * sgn(coord.x) * coord.x*coord.x);
+ entity->rotatePitch(0.8f * sgn(coord.y) * coord.y*coord.y);
+ }
+
+ /*// adjust speed
+ if (distance < 200 && entity->getVelocity().squaredLength() > dock->getVelocity().squaredLength())
+ entity->moveFrontBack(0.2f);
+ else
+ entity->moveFrontBack(0.8f);*/
+
+ entity->moveFrontBack(0.5f * log(distance/10.0f));
+
+ if (distance < 20)
+ this->positionReached();
+
+ SUPER(DockingController, tick, dt);
+ }
+
+ void DockingController::takeControl(bool docking)
+ {
+ this->docking = docking;
+
+ entity = player->getControllableEntity();
+ assert(entity);
+
+ if (docking)
+ {
+ COUT(4) << "DockingController::takeControl Taking over control." << std::endl;
+
+ entity->setDestroyWhenPlayerLeft(false);
+ player->pauseControl();
+ entity->setController(this);
+ this->setControllableEntity(entity);
+ }
+ }
+
+ void DockingController::positionReached()
+ {
+ COUT(4) << "DockingController::positionReached() called." << std::endl;
+
+ assert(this->player);
+ assert(this->dock);
+
+ // stop spaceship
+ entity->setPosition(dock->getWorldPosition());
+ entity->setVelocity(0, 0, 0);
+ entity->setOrientation(dock->getWorldOrientation());
+
+ // give control back to player
+ player->startControl(entity);
+ this->setActive(false);
+ this->controllableEntity_ = NULL;
+
+ if (docking)
+ dock->dockingAnimationFinished(player);
+ /*else
+ dock->undockingAnimationFinished(player);*/
+
+ this->destroy();
+ }
+}
+
Deleted: code/branches/presentation/src/modules/docking/DockingController.h
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockingController.h 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockingController.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,67 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-#ifndef _DockingController_H__
-#define _DockingController_H__
-
-#include "DockingPrereqs.h"
-
-#include "infos/PlayerInfo.h"
-#include "controllers/ArtificialController.h"
-#include "tools/interfaces/Tickable.h"
-#include "DockingController.h"
-
-namespace orxonox
-{
- class _OrxonoxExport DockingController : public ArtificialController, public Tickable
- {
- public:
- DockingController(BaseObject* creator);
- virtual ~DockingController();
-
- virtual void tick(float dt);
-
- void takeControl(bool docking);
-
- void setDock(Dock* dock) { this->dock = dock; }
- void setPlayer(PlayerInfo* player) { this->player = player; }
-
- protected:
- virtual void positionReached();
-
- private:
- bool docking;
-
- Dock* dock;
- PlayerInfo* player;
-
- ControllableEntity* entity;
- };
-}
-
-#endif /* _DockingController_H__ */
Copied: code/branches/presentation/src/modules/docking/DockingController.h (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockingController.h)
===================================================================
--- code/branches/presentation/src/modules/docking/DockingController.h (rev 0)
+++ code/branches/presentation/src/modules/docking/DockingController.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,67 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+#ifndef _DockingController_H__
+#define _DockingController_H__
+
+#include "DockingPrereqs.h"
+
+#include "infos/PlayerInfo.h"
+#include "controllers/ArtificialController.h"
+#include "tools/interfaces/Tickable.h"
+#include "DockingController.h"
+
+namespace orxonox
+{
+ class _OrxonoxExport DockingController : public ArtificialController, public Tickable
+ {
+ public:
+ DockingController(BaseObject* creator);
+ virtual ~DockingController();
+
+ virtual void tick(float dt);
+
+ void takeControl(bool docking);
+
+ void setDock(Dock* dock) { this->dock = dock; }
+ void setPlayer(PlayerInfo* player) { this->player = player; }
+
+ protected:
+ virtual void positionReached();
+
+ private:
+ bool docking;
+
+ Dock* dock;
+ PlayerInfo* player;
+
+ ControllableEntity* entity;
+ };
+}
+
+#endif /* _DockingController_H__ */
Deleted: code/branches/presentation/src/modules/docking/DockingEffect.cc
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockingEffect.cc 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockingEffect.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,73 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file DockingEffect.cc
- @brief Implementation of the DockingEffect class.
-*/
-
-#include "DockingEffect.h"
-
-namespace orxonox
-{
- DockingEffect::DockingEffect(BaseObject* creator) : BaseObject(creator)
- {
- RegisterObject(DockingEffect);
- }
-
- DockingEffect::~DockingEffect()
- {
-
- }
-
- bool DockingEffect::invokeEffect(bool dock, PlayerInfo* player, std::list<DockingEffect*> & effects)
- {
- bool check = true;
-
- for (std::list<DockingEffect*>::iterator effect = effects.begin(); effect != effects.end(); effect++)
- {
- if (dock)
- check &= (*effect)->docking(player);
- else
- check &= (*effect)->release(player);
- }
-
- return check;
- }
-
- DockingTarget *DockingEffect::findTarget(std::string name) {
- for (ObjectList<DockingTarget>::iterator it = ObjectList<DockingTarget>::begin();
- it != ObjectList<DockingTarget>::end(); ++it)
- {
- if ((*it)->getName().compare(name) == 0)
- return (*it);
- }
- return NULL;
- }
-}
-
Copied: code/branches/presentation/src/modules/docking/DockingEffect.cc (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockingEffect.cc)
===================================================================
--- code/branches/presentation/src/modules/docking/DockingEffect.cc (rev 0)
+++ code/branches/presentation/src/modules/docking/DockingEffect.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,73 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file DockingEffect.cc
+ @brief Implementation of the DockingEffect class.
+*/
+
+#include "DockingEffect.h"
+
+namespace orxonox
+{
+ DockingEffect::DockingEffect(BaseObject* creator) : BaseObject(creator)
+ {
+ RegisterObject(DockingEffect);
+ }
+
+ DockingEffect::~DockingEffect()
+ {
+
+ }
+
+ bool DockingEffect::invokeEffect(bool dock, PlayerInfo* player, std::list<DockingEffect*> & effects)
+ {
+ bool check = true;
+
+ for (std::list<DockingEffect*>::iterator effect = effects.begin(); effect != effects.end(); effect++)
+ {
+ if (dock)
+ check &= (*effect)->docking(player);
+ else
+ check &= (*effect)->release(player);
+ }
+
+ return check;
+ }
+
+ DockingTarget *DockingEffect::findTarget(std::string name) {
+ for (ObjectList<DockingTarget>::iterator it = ObjectList<DockingTarget>::begin();
+ it != ObjectList<DockingTarget>::end(); ++it)
+ {
+ if ((*it)->getName().compare(name) == 0)
+ return (*it);
+ }
+ return NULL;
+ }
+}
+
Deleted: code/branches/presentation/src/modules/docking/DockingEffect.h
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockingEffect.h 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockingEffect.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,76 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file DockingEffect.h
- @brief Definition of the DockingEffect class.
- @ingroup Docking
-*/
-
-#ifndef _DockingEffect_H__
-#define _DockingEffect_H__
-
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-
-#include "infos/PlayerInfo.h"
-
-#include "DockingPrereqs.h"
-#include "DockingTarget.h"
-
-#include <list>
-#include "core/BaseObject.h"
-
-namespace orxonox
-{
-
- /**
- @brief
- Handles DockingEffects for @ref orxonox::Docking "Docks".
-
- @author
- Sven Stucki
-
- @ingroup Docking
- */
- class _DockingExport DockingEffect : public BaseObject
- {
- public:
- DockingEffect(BaseObject* creator);
- virtual ~DockingEffect();
-
- virtual bool docking(PlayerInfo* player) = 0; //!< Called when player docked
- virtual bool release(PlayerInfo* player) = 0; //!< Called when player wants to undock
-
- static bool invokeEffect(bool dock, PlayerInfo* player, std::list<DockingEffect*> & effects); //!< Invokes the event specific method of all DockingEffects in the list
- static DockingTarget *findTarget(std::string name); //!< Iterates through all DockingTarget objects to find the one with name=target
- };
-
-}
-
-#endif /* _DockingEffect_H__ */
Copied: code/branches/presentation/src/modules/docking/DockingEffect.h (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockingEffect.h)
===================================================================
--- code/branches/presentation/src/modules/docking/DockingEffect.h (rev 0)
+++ code/branches/presentation/src/modules/docking/DockingEffect.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,76 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file DockingEffect.h
+ @brief Definition of the DockingEffect class.
+ @ingroup Docking
+*/
+
+#ifndef _DockingEffect_H__
+#define _DockingEffect_H__
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+
+#include "infos/PlayerInfo.h"
+
+#include "DockingPrereqs.h"
+#include "DockingTarget.h"
+
+#include <list>
+#include "core/BaseObject.h"
+
+namespace orxonox
+{
+
+ /**
+ @brief
+ Handles DockingEffects for @ref orxonox::Docking "Docks".
+
+ @author
+ Sven Stucki
+
+ @ingroup Docking
+ */
+ class _DockingExport DockingEffect : public BaseObject
+ {
+ public:
+ DockingEffect(BaseObject* creator);
+ virtual ~DockingEffect();
+
+ virtual bool docking(PlayerInfo* player) = 0; //!< Called when player docked
+ virtual bool release(PlayerInfo* player) = 0; //!< Called when player wants to undock
+
+ static bool invokeEffect(bool dock, PlayerInfo* player, std::list<DockingEffect*> & effects); //!< Invokes the event specific method of all DockingEffects in the list
+ static DockingTarget *findTarget(std::string name); //!< Iterates through all DockingTarget objects to find the one with name=target
+ };
+
+}
+
+#endif /* _DockingEffect_H__ */
Deleted: code/branches/presentation/src/modules/docking/DockingPrecompiledHeaders.h
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockingPrecompiledHeaders.h 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockingPrecompiledHeaders.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,53 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Reto Grieder
- * Co-authors:
- * ...
- *
- */
-
-/**
- at file
- at brief
-*/
-
-#include "OrxonoxConfig.h"
-
-///////////////////////////////////////////
-///// Stable Headers /////
-///////////////////////////////////////////
-
-#include <LinearMath/btTransform.h>
-
-///////////////////////////////////////////
-///// All Rebuild Headers /////
-///////////////////////////////////////////
-
-#include "core/BaseObject.h"
-#include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-
-
-// Just in case some header included windows.h
-#undef min
-#undef max
Copied: code/branches/presentation/src/modules/docking/DockingPrecompiledHeaders.h (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockingPrecompiledHeaders.h)
===================================================================
--- code/branches/presentation/src/modules/docking/DockingPrecompiledHeaders.h (rev 0)
+++ code/branches/presentation/src/modules/docking/DockingPrecompiledHeaders.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,53 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Reto Grieder
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ at file
+ at brief
+*/
+
+#include "OrxonoxConfig.h"
+
+///////////////////////////////////////////
+///// Stable Headers /////
+///////////////////////////////////////////
+
+#include <LinearMath/btTransform.h>
+
+///////////////////////////////////////////
+///// All Rebuild Headers /////
+///////////////////////////////////////////
+
+#include "core/BaseObject.h"
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+
+
+// Just in case some header included windows.h
+#undef min
+#undef max
Deleted: code/branches/presentation/src/modules/docking/DockingPrereqs.h
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockingPrereqs.h 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockingPrereqs.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,76 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Damian 'Mozork' Frick
- * Co-authors:
- * ...
- *
- */
-
-/**
- at file
- at brief
- Shared library macros, enums, constants and forward declarations for the questsystem module
-*/
-
-#ifndef _DockingPrereqs_H__
-#define _DockingPrereqs_H__
-
-#include "OrxonoxConfig.h"
-#include "OrxonoxPrereqs.h"
-
-//-----------------------------------------------------------------------
-// Shared library settings
-//-----------------------------------------------------------------------
-
-#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(Docking_STATIC_BUILD)
-# ifdef Docking_SHARED_BUILD
-# define _DockingExport __declspec(dllexport)
-# else
-# if defined( __MINGW32__ )
-# define _DockingExport
-# else
-# define _DockingExport __declspec(dllimport)
-# endif
-# endif
-#elif defined ( ORXONOX_GCC_VISIBILITY )
-# define _DockingExport __attribute__ ((visibility("default")))
-#else
-# define _DockingExport
-#endif
-
-//-----------------------------------------------------------------------
-// Forward declarations
-//-----------------------------------------------------------------------
-
-namespace orxonox
-{
- class Dock;
- class DockingAnimation;
- class DockingController;
- class DockingTarget;
- class DockingEffect;
- class DockToShip;
- class MoveToDockingTarget;
-}
-
-#endif /* _DockingPrereqs_H__ */
Copied: code/branches/presentation/src/modules/docking/DockingPrereqs.h (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockingPrereqs.h)
===================================================================
--- code/branches/presentation/src/modules/docking/DockingPrereqs.h (rev 0)
+++ code/branches/presentation/src/modules/docking/DockingPrereqs.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,76 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Damian 'Mozork' Frick
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ at file
+ at brief
+ Shared library macros, enums, constants and forward declarations for the questsystem module
+*/
+
+#ifndef _DockingPrereqs_H__
+#define _DockingPrereqs_H__
+
+#include "OrxonoxConfig.h"
+#include "OrxonoxPrereqs.h"
+
+//-----------------------------------------------------------------------
+// Shared library settings
+//-----------------------------------------------------------------------
+
+#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(Docking_STATIC_BUILD)
+# ifdef Docking_SHARED_BUILD
+# define _DockingExport __declspec(dllexport)
+# else
+# if defined( __MINGW32__ )
+# define _DockingExport
+# else
+# define _DockingExport __declspec(dllimport)
+# endif
+# endif
+#elif defined ( ORXONOX_GCC_VISIBILITY )
+# define _DockingExport __attribute__ ((visibility("default")))
+#else
+# define _DockingExport
+#endif
+
+//-----------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------
+
+namespace orxonox
+{
+ class Dock;
+ class DockingAnimation;
+ class DockingController;
+ class DockingTarget;
+ class DockingEffect;
+ class DockToShip;
+ class MoveToDockingTarget;
+}
+
+#endif /* _DockingPrereqs_H__ */
Deleted: code/branches/presentation/src/modules/docking/DockingTarget.cc
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockingTarget.cc 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockingTarget.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,69 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file DockingTarget.cc
- @brief Docking system main class
-*/
-
-#include "DockingTarget.h"
-#include "core/XMLPort.h"
-
-
-namespace orxonox
-{
- CreateFactory(DockingTarget);
-
- DockingTarget::DockingTarget(BaseObject* creator) : StaticEntity(creator)
- {
- RegisterObject(DockingTarget);
- }
-
- DockingTarget::~DockingTarget()
- {
- }
-
-
- void DockingTarget::XMLPort(Element& xmlelement, XMLPort::Mode mode)
- {
- SUPER(DockingTarget, XMLPort, xmlelement, mode);
- XMLPortParam(DockingTarget, "name", setName, getName, xmlelement, mode);
-
- COUT(4) << "DockingTarget with name '" << this->getName() << "' created.." << std::endl;
- }
-
-
- void DockingTarget::setName(const std::string& str) {
- this->name = str;
- }
-
- const std::string& DockingTarget::getName() const {
- return this->name;
- }
-}
-
Copied: code/branches/presentation/src/modules/docking/DockingTarget.cc (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockingTarget.cc)
===================================================================
--- code/branches/presentation/src/modules/docking/DockingTarget.cc (rev 0)
+++ code/branches/presentation/src/modules/docking/DockingTarget.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,69 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file DockingTarget.cc
+ @brief Docking system main class
+*/
+
+#include "DockingTarget.h"
+#include "core/XMLPort.h"
+
+
+namespace orxonox
+{
+ CreateFactory(DockingTarget);
+
+ DockingTarget::DockingTarget(BaseObject* creator) : StaticEntity(creator)
+ {
+ RegisterObject(DockingTarget);
+ }
+
+ DockingTarget::~DockingTarget()
+ {
+ }
+
+
+ void DockingTarget::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+ {
+ SUPER(DockingTarget, XMLPort, xmlelement, mode);
+ XMLPortParam(DockingTarget, "name", setName, getName, xmlelement, mode);
+
+ COUT(4) << "DockingTarget with name '" << this->getName() << "' created.." << std::endl;
+ }
+
+
+ void DockingTarget::setName(const std::string& str) {
+ this->name = str;
+ }
+
+ const std::string& DockingTarget::getName() const {
+ return this->name;
+ }
+}
+
Deleted: code/branches/presentation/src/modules/docking/DockingTarget.h
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/DockingTarget.h 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/DockingTarget.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,71 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file DockingTarget.h
- @brief Definition of the DockingTarget class.
- @ingroup Docking
-*/
-
-#ifndef _DockingTarget_H__
-#define _DockingTarget_H__
-
-#include "DockingPrereqs.h"
-
-#include "core/BaseObject.h"
-#include "worldentities/StaticEntity.h"
-
-namespace orxonox
-{
- /**
- @brief
- DockingTargets for @ref orxonox::Docking "Docks".
-
- @author
- Sven Stucki
-
- @ingroup Docking
- */
- class _DockingExport DockingTarget : public StaticEntity
- {
- private:
- std::string name;
-
- public:
- DockingTarget(BaseObject* creator);
- virtual ~DockingTarget();
-
- virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-
- virtual void setName(const std::string& str);
- virtual const std::string& getName() const;
- };
-
-}
-
-#endif /* _DockingTarget_H__ */
Copied: code/branches/presentation/src/modules/docking/DockingTarget.h (from rev 8560, code/branches/dockingsystem2/src/modules/docking/DockingTarget.h)
===================================================================
--- code/branches/presentation/src/modules/docking/DockingTarget.h (rev 0)
+++ code/branches/presentation/src/modules/docking/DockingTarget.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,71 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file DockingTarget.h
+ @brief Definition of the DockingTarget class.
+ @ingroup Docking
+*/
+
+#ifndef _DockingTarget_H__
+#define _DockingTarget_H__
+
+#include "DockingPrereqs.h"
+
+#include "core/BaseObject.h"
+#include "worldentities/StaticEntity.h"
+
+namespace orxonox
+{
+ /**
+ @brief
+ DockingTargets for @ref orxonox::Docking "Docks".
+
+ @author
+ Sven Stucki
+
+ @ingroup Docking
+ */
+ class _DockingExport DockingTarget : public StaticEntity
+ {
+ private:
+ std::string name;
+
+ public:
+ DockingTarget(BaseObject* creator);
+ virtual ~DockingTarget();
+
+ virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+
+ virtual void setName(const std::string& str);
+ virtual const std::string& getName() const;
+ };
+
+}
+
+#endif /* _DockingTarget_H__ */
Deleted: code/branches/presentation/src/modules/docking/MoveToDockingTarget.cc
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/MoveToDockingTarget.cc 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/MoveToDockingTarget.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,74 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file MoveToDockingTarget.h
- @brief Definition of the MoveToDockingTarget class.
- @ingroup Docking
-*/
-
-#include "MoveToDockingTarget.h"
-
-#include "core/XMLPort.h"
-
-namespace orxonox
-{
- CreateFactory(MoveToDockingTarget);
-
- MoveToDockingTarget::MoveToDockingTarget(BaseObject *creator) : DockingAnimation(creator)
- {
- RegisterObject(MoveToDockingTarget);
- }
-
- MoveToDockingTarget::~MoveToDockingTarget() {
-
- }
-
- bool MoveToDockingTarget::docking(PlayerInfo *player)
- {
- assert(parent);
-
- DockingController *dockingController = new DockingController(this);
- dockingController->setDock(parent);
- dockingController->setPlayer(player);
- dockingController->takeControl(true);
-
- return true;
- }
-
- bool MoveToDockingTarget::release(PlayerInfo *player)
- {
- //TODO: Investigate strange things...
- parent->detach((WorldEntity*)player->getControllableEntity());
-
- parent->undockingAnimationFinished(player);
- return true;
- }
-
-}
-
Copied: code/branches/presentation/src/modules/docking/MoveToDockingTarget.cc (from rev 8560, code/branches/dockingsystem2/src/modules/docking/MoveToDockingTarget.cc)
===================================================================
--- code/branches/presentation/src/modules/docking/MoveToDockingTarget.cc (rev 0)
+++ code/branches/presentation/src/modules/docking/MoveToDockingTarget.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,74 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file MoveToDockingTarget.h
+ @brief Definition of the MoveToDockingTarget class.
+ @ingroup Docking
+*/
+
+#include "MoveToDockingTarget.h"
+
+#include "core/XMLPort.h"
+
+namespace orxonox
+{
+ CreateFactory(MoveToDockingTarget);
+
+ MoveToDockingTarget::MoveToDockingTarget(BaseObject *creator) : DockingAnimation(creator)
+ {
+ RegisterObject(MoveToDockingTarget);
+ }
+
+ MoveToDockingTarget::~MoveToDockingTarget() {
+
+ }
+
+ bool MoveToDockingTarget::docking(PlayerInfo *player)
+ {
+ assert(parent);
+
+ DockingController *dockingController = new DockingController(this);
+ dockingController->setDock(parent);
+ dockingController->setPlayer(player);
+ dockingController->takeControl(true);
+
+ return true;
+ }
+
+ bool MoveToDockingTarget::release(PlayerInfo *player)
+ {
+ //TODO: Investigate strange things...
+ parent->detach((WorldEntity*)player->getControllableEntity());
+
+ parent->undockingAnimationFinished(player);
+ return true;
+ }
+
+}
+
Deleted: code/branches/presentation/src/modules/docking/MoveToDockingTarget.h
===================================================================
--- code/branches/dockingsystem2/src/modules/docking/MoveToDockingTarget.h 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/docking/MoveToDockingTarget.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -1,67 +0,0 @@
-/*
- * ORXONOX - the hottest 3D action shooter ever to exist
- * > www.orxonox.net <
- *
- *
- * License notice:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Author:
- * Sven Stucki
- * Co-authors:
- * ...
- *
- */
-
-/**
- @file MoveToDockingTarget.h
- @brief Definition of the MoveToDockingTarget class.
- @ingroup Docking
-*/
-
-#ifndef _MoveToDockingTarget_H__
-#define _MoveToDockingTarget_H__
-
-#include "DockingPrereqs.h"
-#include "DockingAnimation.h"
-#include "DockingController.h"
-#include "Dock.h"
-
-namespace orxonox
-{
-
- /**
- @brief
- Base class for docking animations used by @ref orxonox::Docking "Docks".
-
- @author
- Sven Stucki
-
- @ingroup Docking
- */
- class _DockingExport MoveToDockingTarget : public DockingAnimation
- {
- public:
- MoveToDockingTarget(BaseObject* creator);
- virtual ~MoveToDockingTarget();
-
- virtual bool docking(PlayerInfo* player); //!< Called when a player starts docking
- virtual bool release(PlayerInfo* player); //!< Called when player wants to undock
- };
-
-}
-
-#endif /* _MoveToDockingTarget_H__ */
Copied: code/branches/presentation/src/modules/docking/MoveToDockingTarget.h (from rev 8560, code/branches/dockingsystem2/src/modules/docking/MoveToDockingTarget.h)
===================================================================
--- code/branches/presentation/src/modules/docking/MoveToDockingTarget.h (rev 0)
+++ code/branches/presentation/src/modules/docking/MoveToDockingTarget.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -0,0 +1,67 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Sven Stucki
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file MoveToDockingTarget.h
+ @brief Definition of the MoveToDockingTarget class.
+ @ingroup Docking
+*/
+
+#ifndef _MoveToDockingTarget_H__
+#define _MoveToDockingTarget_H__
+
+#include "DockingPrereqs.h"
+#include "DockingAnimation.h"
+#include "DockingController.h"
+#include "Dock.h"
+
+namespace orxonox
+{
+
+ /**
+ @brief
+ Base class for docking animations used by @ref orxonox::Docking "Docks".
+
+ @author
+ Sven Stucki
+
+ @ingroup Docking
+ */
+ class _DockingExport MoveToDockingTarget : public DockingAnimation
+ {
+ public:
+ MoveToDockingTarget(BaseObject* creator);
+ virtual ~MoveToDockingTarget();
+
+ virtual bool docking(PlayerInfo* player); //!< Called when a player starts docking
+ virtual bool release(PlayerInfo* player); //!< Called when player wants to undock
+ };
+
+}
+
+#endif /* _MoveToDockingTarget_H__ */
Modified: code/branches/presentation/src/modules/objects/triggers/MultiTrigger.cc
===================================================================
--- code/branches/presentation/src/modules/objects/triggers/MultiTrigger.cc 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/modules/objects/triggers/MultiTrigger.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -311,7 +311,6 @@
this->targetMask_.exclude(Class(TriggerBase), true);
// We only want WorldEntities
- //TODO: Really?
ClassTreeMask WEMask;
WEMask.include(Class(WorldEntity));
this->targetMask_ *= WEMask;
Modified: code/branches/presentation/src/orxonox/controllers/ArtificialController.cc
===================================================================
--- code/branches/presentation/src/orxonox/controllers/ArtificialController.cc 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/orxonox/controllers/ArtificialController.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -380,6 +380,11 @@
this->getControllableEntity()->moveFrontBack(1.2f*SPEED_MASTER + distance/300.0f);
}
}
+
+ if (distance < 10)
+ {
+ this->positionReached();
+ }
}
void ArtificialController::moveToTargetPosition()
@@ -387,7 +392,6 @@
this->moveToPosition(this->targetPosition_);
}
-
/**
@brief Unregisters a slave from its master. Initiated by a slave.
*/
Modified: code/branches/presentation/src/orxonox/controllers/ArtificialController.h
===================================================================
--- code/branches/presentation/src/orxonox/controllers/ArtificialController.h 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/orxonox/controllers/ArtificialController.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -96,6 +96,8 @@
void moveToPosition(const Vector3& target);
void moveToTargetPosition();
+ virtual void positionReached() {}
+
void removeFromFormation();
void unregisterSlave();
void searchNewMaster();
Modified: code/branches/presentation/src/orxonox/infos/PlayerInfo.cc
===================================================================
--- code/branches/presentation/src/orxonox/infos/PlayerInfo.cc 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/orxonox/infos/PlayerInfo.cc 2011-05-24 14:44:39 UTC (rev 8561)
@@ -50,7 +50,6 @@
this->controller_ = 0;
this->controllableEntity_ = 0;
this->controllableEntityID_ = OBJECTID_UNKNOWN;
- this->oldControllableEntity_ = 0;
this->gtinfo_ = 0;
this->gtinfoID_ = OBJECTID_UNKNOWN;
@@ -150,8 +149,9 @@
if (!entity || entity == this->controllableEntity_)
return;
- if (this->oldControllableEntity_)
+ while (this->previousControllableEntity_.size() > 0)
this->stopTemporaryControl();
+
if (this->controllableEntity_)
this->stopControl();
@@ -175,10 +175,8 @@
{
if (!entity)
return;
-
- assert( this->oldControllableEntity_==0 );
-
- this->oldControllableEntity_ = this->controllableEntity_;
+
+ this->previousControllableEntity_.push_back(WeakPtr<ControllableEntity>(this->controllableEntity_));
this->controllableEntity_ = entity;
this->controllableEntityID_ = entity->getObjectID();
@@ -193,7 +191,7 @@
void PlayerInfo::stopControl()
{
- if ( this->oldControllableEntity_ )
+ while ( this->previousControllableEntity_.size() > 0)
this->stopTemporaryControl();
ControllableEntity* entity = this->controllableEntity_;
@@ -214,21 +212,36 @@
this->changedControllableEntity();
}
+ void PlayerInfo::pauseControl()
+ {
+ ControllableEntity* entity = this->controllableEntity_;
+
+ if (!entity)
+ return;
+
+ this->controllableEntity_->getController()->setActive(false);
+ //this->controllableEntity_->getController()->setControllableEntity(NULL);
+ this->controllableEntity_->setController(0);
+ }
+
void PlayerInfo::stopTemporaryControl()
{
ControllableEntity* entity = this->controllableEntity_;
- assert( this->controllableEntity_ && this->oldControllableEntity_ );
- if( !entity || !this->oldControllableEntity_ )
+ assert(this->controllableEntity_ != NULL);
+ if( !entity || this->previousControllableEntity_.size() == 0 )
return;
this->controllableEntity_->setController(0);
- this->controllableEntity_ = this->oldControllableEntity_;
+// this->controllableEntity_ = this->previousControllableEntity_.back();
+ do {
+ this->controllableEntity_ = this->previousControllableEntity_.back();
+ } while(this->controllableEntity_ == NULL && this->previousControllableEntity_.size() > 0);
this->controllableEntityID_ = this->controllableEntity_->getObjectID();
- this->oldControllableEntity_ = 0;
+ this->previousControllableEntity_.pop_back();
- if ( this->controllableEntity_ && this->controller_)
+ if ( this->controllableEntity_ != NULL && this->controller_ != NULL)
this->controller_->setControllableEntity(this->controllableEntity_);
if ( GameMode::isMaster() )
Modified: code/branches/presentation/src/orxonox/infos/PlayerInfo.h
===================================================================
--- code/branches/presentation/src/orxonox/infos/PlayerInfo.h 2011-05-24 14:33:48 UTC (rev 8560)
+++ code/branches/presentation/src/orxonox/infos/PlayerInfo.h 2011-05-24 14:44:39 UTC (rev 8561)
@@ -67,6 +67,7 @@
void startControl(ControllableEntity* entity);
void stopControl();
+ void pauseControl();
void startTemporaryControl(ControllableEntity* entity);
void stopTemporaryControl();
@@ -97,7 +98,7 @@
bool bReadyToSpawn_;
Controller* controller_;
ControllableEntity* controllableEntity_;
- ControllableEntity* oldControllableEntity_;
+ std::vector< WeakPtr<ControllableEntity> > previousControllableEntity_; //!< List of the previous ControllableEntities if repeatedly startTemporary control was called. The ControllableEntity at the back is the most recent.
unsigned int controllableEntityID_;
const GametypeInfo* gtinfo_;
More information about the Orxonox-commit
mailing list